全新重構,探尋 24 歲 QQ 大重構背后的思考

在瞬息萬變的互聯網行業中,年過二十四的 QQ 堪稱超長壽的產品,見證了中國互聯網崛起的完整歷程。然而,如今這個元老級產品經歷了一次從內到外徹底的重構。

在這次重構中,QQ 選擇了 Electron 作為 UI 跨平臺開發框架。盡管 Electron 被 Slack、Visual Studio Code 和 Discord 等大型產品廣泛使用,但也引發了一些網友的擔憂,例如內存占用、安裝包體積和啟動速度等方面的問題。

好奇于 QQ 的決策,于是我們采訪了 QQ 技術團隊,窺探這次變革的脈絡,揭示出那些潛藏在背后的思考。

一、QQ 重構背后的思考:24 歲的 QQ 有什么樣的技術債

QQ 的第一個版本發布于 1998 年,在 Windows 技術棧的基礎上用純原生的方式開發,在當時互聯網帶寬非常小的情況下,QQ 將安裝包控制在了只有 200K 左右。2007 年后智能手機開始露出苗頭,騰訊行動得比較早,部分前端技術開發開始轉型到了移動端,在桌面端, QQ 隨著業務和組織的發展,針對三大操作系統陸續組建了三支不同的研發團隊,各自負責自己的一套代碼。

三端不同代碼,老產品歷史包袱,加上移動時代研發人員的轉型,導致桌面 QQ 維護成本很高。QQ 技術團隊介紹,拿之前的桌面 QQ 為例,WindowsQQ 以前的 UI 框架用的是騰訊自研的 GF 框架,10 多年了,GF 這個框架文檔還不全,新加入這個項目的團隊人員,要基于這個基礎框架去做一些事情,是效率很低的一件事情,慢慢的就沒有人愿意去用這個框架了。簡而言之,就是技術債。

舊版的桌面端 QQ,Windows 的功能最豐富?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40125.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40125.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40125.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Go版]算法通關村第十一關青銅——理解位運算的規則

目錄 數字在計算機中的表示:機器數、真值對機器數進一步細化:原碼、反碼、補碼為何會有原碼、反碼和補碼為何計算機中的按位運算使用的是補碼?位運算規則與、或、異或和取反移位運算移位運算與乘除法的關系位運算常用技巧?? 操作某個位的數…

Unity用NPOI創建Exect表,保存數據,和修改刪除數據。以及打包后的坑——無法打開新創建的Exect表

先說坑花了一下午才找到解決方法解決, 在Unity編輯模式下點擊物體創建對應的表,獲取物體名字與在InputText填寫的注釋數據。然后保存。創建Exect表可以打開,打包PC后,點擊物體創建的表,打不開文件破損 解決方法&#…

大數據培訓前景怎么樣?企業需求量大嗎

大數據行業對大家來說并不陌生,大數據行業市場人才需求量大,越早入行越有優勢,發展機會和上升空間等大。不少人通過大數據培訓來提升自己的經驗和自身技術能力,以此來獲得更好的就業機會。 2023大數據培訓就業前景怎么樣呢?企業需…

ubuntu18 下更改 mysql 數據目錄

一、修改步驟 更改 MySQL 的數據目錄需要注意以下幾個步驟: 停止 MySQL 服務 在 Ubuntu 中,你可以使用以下命令停止 MySQL 服務: sudo systemctl stop mysql 復制現有數據 假設你的新的數據目錄是 /new/dir/mysql,你應該使用 rsy…

區間覆蓋 線段覆蓋 二分

4195. 線段覆蓋 - AcWing題庫 P2082 區間覆蓋&#xff08;加強版&#xff09; - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 做法&#xff1a; void solve() {int n; cin>>n;vector<array<LL,2>> seg(n);for(auto &t: seg) cin>>t[0]>>…

從視覺裝備到智能駕駛,天準科技能否打造第二增長極?

智能網聯汽車已經成為了上市公司跨界布局的熱門賽道。 天準科技是工業視覺智能裝備領域的龍頭企業&#xff0c;主要客戶包括蘋果、三星等企業。招股說明書顯示&#xff0c;2016年至2018年&#xff0c;天準科技來源于蘋果公司及其供應商的收入合計占比達到49.98%、67.99%及76.0…

Spark操作Hive表冪等性探索

前言 旁邊的實習生一邊敲著鍵盤一邊很不開心的說:做數據開發真麻煩,數據bug排查太繁瑣了,我今天數據跑的有問題,等我處理完問題重新跑了代碼,發現報表的數據很多重復,準備全部刪了重新跑。 我:你的數據操作具備冪等性嗎? 實習生:啥是冪等性?數倉中的表還要考慮冪等…

JVS開源基礎框架:平臺基本信息介紹

JVS是面向軟件開發團隊可以快速實現應用的基礎開發腳手架&#xff0c;主要定位于企業信息化通用底座&#xff0c;采用微服務分布式框架&#xff0c;提供豐富的基礎功能&#xff0c;集成眾多業務引擎&#xff0c;它靈活性強&#xff0c;界面化配置對開發者友好&#xff0c;底層容…

互聯網賬號被封禁解決辦法,以qq為例

百度搜索&#xff1a;互聯網信息服務投訴平臺 電腦端瀏覽器&#xff1a;打開 ts.isc.org.cn 推薦使用360極速瀏覽器 谷歌瀏覽器 提交完成后&#xff0c;將投訴碼保存&#xff0c;可以在“查詢評價”處用投訴碼查詢進度

windows安裝go,以及配置工作區,配置vscode開發環境

下載安裝go 我安裝在D:\go路徑下配置環境變量 添加GOROOT value為D:\go修改path 添加%GOROOT%\bin添加GOPATH value為%USERPROFILE%\go 其中GOPATH 是我們自己開發的工作區&#xff0c;其中包含三個folder bin,pkg,以及src&#xff0c;其中src為我們編寫代碼的位置 配置vscod…

Vue路由守衛

目錄 一、全局路由守衛二、獨享路由守衛三、組件內路由守衛 一、全局路由守衛 作用全局 router.beforeEach全局前置路由守衛—初始化的時候被調用、每次路由切換之前被調用router.afterEach全局后置路由守衛—初始化的時候被調用、每次路由切換之后被調用 配置 // 該文件專…

git使用規范

Git規范&#xff08;公司使用gitlab&#xff09; 版本規范 前端項目使用語義化版本進行發布: 版本格式&#xff1a;主版本號.次版本號.修訂號&#xff0c;版本號遞增規則如下&#xff1a; 主版本號&#xff1a;當你做了不兼容的 API 修改&#xff0c;次版本號&#xff1a;當…

uniapp 使用 uni push 2.0 推送消息

因為之前使用uni push 1.0&#xff0c;開通賬號和配置廠商就不寫了。只說一點&#xff0c;配置廠商很重要&#xff0c;不然收不到離線推送的消息。那么就直接開始咯&#xff01;&#xff01;&#xff01; 一、創建并關聯云服務空間 1.創建云服務空間&#xff0c;右鍵項目【創…

Java進階(3)——手動實現ArrayList 源碼的初步理解分析 數組插入數據和刪除數據的問題

目錄 引出手動實現ArrayList定義接口MyList<T>寫ArrayList的實現類增加元素刪除元素 寫測試類進行測試數組插入數據? 總結 引出 1.ArrayList的結構分析&#xff0c;可迭代接口&#xff0c;是List的實現&#xff1b; 2.數組增加元素和刪除元素的分析&#xff0c;何時擴容…

利用HTTP代理實現請求路由

嘿&#xff0c;大家好&#xff01;作為一名專業的爬蟲程序員&#xff0c;我知道構建一個高效的分布式爬蟲系統是一個相當復雜的任務。在這個過程中&#xff0c;實現請求的路由是非常關鍵的。今天&#xff0c;我將和大家分享一些關于如何利用HTTP代理實現請求路由的實用技巧&…

數據結構----哈夫曼樹

這里寫目錄標題 基本概念引子基本概念各種路徑長度各種帶權路徑長度結點的帶權路徑長度樹的帶權路徑長度哈夫曼樹 哈夫曼樹的構造理論基礎構造思想總結 哈夫曼樹的實現哈夫曼編碼前綴編碼哈夫曼編碼的思想案例代碼實現 編碼與解碼 基本概念 引子 哈夫曼樹就是尋找構造最優二叉…

Docker容器基礎

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、Docker概述1、docker是什么2、Docker的設計宗旨3、容器在內核中支持2種重要技術&#xff1a; 三、Docker的核心概念四、Docker相關命令1.安裝依賴包2.設置阿里云…

無線測溫產品在半導體制造項目的應用

摘 要&#xff1a;半導體被譽為“制造業的大腦”&#xff0c;在關系國家安全和國民經濟命脈的主要行業和關鍵領域占據支配地位&#xff0c;是國民經濟的重要支柱。 隨著數字技術的發展和數字經濟在國民經濟中所占比重越來越高&#xff0c;半導體產業的重要性還會進一步提升。安…

C++QT教程3——手冊4.11.1自帶教程(筆記)——創建一個QT快速應用

文章目錄 創建一個QT快速應用創建項目創建主視圖添加應用邏輯為視圖添加動畫素材文件 參考文章 創建一個QT快速應用 本教程使用內置的QML類型&#xff0c;介紹了Qt Quick的基本概念。有關可以選擇的用戶界面選項的更多信息&#xff0c;請參閱用戶界面。 本教程描述了如何使用…

部署mysql到win10電腦上

中間出現了很多問題&#xff0c; 記錄一下 我這邊是去官網下載的 &#xff0c;鏈接&#xff1a;https://dev.mysql.com/downloads/mysql/ 我這邊選了不是最新版本的MySQL&#xff0c;因為第一次安裝8.1.0版本的&#xff0c;死活運行不起來&#xff0c;直接卸載安重裝了&#x…