IT之家 12 月 8 日消息,IT之家此前報道過《QQ 項目組:基于 Electron 技術(shù) 的 Windows 內(nèi)測版本預(yù)計將于明年推出》,現(xiàn)在騰訊客戶端工程師(知乎 ID:MagiLu)對大家比較關(guān)注的一些問題進(jìn)行了解答。
以下為回答原文:
基于 Electron 技術(shù)的 Windows 版 QQ 內(nèi)測版本預(yù)計 2023 年推出,該版本有哪些新功能?
感謝大家對新版桌面 QQ NT 的使用和關(guān)注,今年 QQ 團(tuán)隊啟動了 QQ 的架構(gòu)升級計劃,第一站就是解決目前桌面端迭代慢的問題,我們使用新架構(gòu)從前到后對 QQ 代碼進(jìn)行了重構(gòu),而其中選擇使用 Electron 作為新版 QQ 桌面端 UI 跨平臺解決方案,是基于提升研發(fā)效率、框架成熟度、團(tuán)隊技術(shù)及人才積累等幾個方面綜合考慮的結(jié)果。
1. 新版 QQ 使用跨平臺方案的背景
由于歷史原因,QQ 最先有 Windows 版本,然后有了 Mac 和 Linux 版本,三端最早都是獨立的團(tuán)隊和獨立的代碼實現(xiàn),Windows 功能最豐富全面,Mac 主打創(chuàng)新體驗,功能相對較少,Linux 最簡陋,隨著移動互聯(lián)網(wǎng)的洗禮,各種組織架構(gòu)調(diào)整、人才流動和業(yè)務(wù)興替,當(dāng)前的桌面端 QQ 處于一個比較臃腫、難以維護(hù)、缺少更新迭代的狀態(tài)。
隨著遠(yuǎn)程辦公和遠(yuǎn)程教育的普及,桌面端又開始回到大家的視野,有旺盛的需求,但要同時維護(hù) QQ 的 Windows / Mac / Linux 三個桌面端,并確保每個端都保持快速、高質(zhì)量的迭代,顯然是一件高成本、高投入、難度大的事。在這樣的背景下,要把 QQ 桌面端重新打磨好,我們就需要盡可能多的復(fù)用代碼,實現(xiàn)一套代碼、多端運(yùn)行、體驗統(tǒng)一,提升研發(fā)效率,持續(xù)提升客戶端性能和用戶的產(chǎn)品體驗,同時滿足 Windows / Mac / Linux 三大桌面平臺用戶的需求。于是,跨平臺的復(fù)用方案就變成了我們自然而然的選擇。
2.跨平臺方案的選擇
首先,我們希望最后選擇的跨平臺方案應(yīng)該是成熟足夠、低開發(fā)和使用成本的,不需要為了使用框架本身,還需要投入額外巨大的人力成本。這個其實在 React Native、Flutter、Tauri 等跨平臺框架的使用過程中,我們都遇到過類似的問題,除了功能開發(fā),為了把框架生態(tài)、周邊、工具鏈建設(shè)好,還需要投入巨大的額外成本,Qt 也有類似的問題。而使用 Electron,對于 Web 前端開發(fā)同學(xué),基本上是 0 成本,現(xiàn)有的 Web 前端的大部分基建都可以直接復(fù)用,而且使用 Web 開發(fā) UI 的效率,在主流技術(shù)棧里算是很高的了。并且這幾年主流的桌面端應(yīng)用基本都選擇了 Electron,如 VScode、Discord、Slack、Skype、Whatsapp、Figma 等等(https://www.electronjs.org/ apps),新的桌面應(yīng)用基本上也是首選 Electron,另外,Electron 版本的迭代速度和社區(qū)氛圍都很在線。
其次,技術(shù)選型是否適合當(dāng)前團(tuán)隊也是一個考慮點,團(tuán)隊是否有相關(guān)的技術(shù)積累,是否有人才儲備來持續(xù)投入這個技術(shù)棧也非常重要。Qt 的確在性能上是一個很好的選擇,但目前團(tuán)隊對 Qt 沒有太多積累,基建基本沒有,而且市場上相關(guān)人才其實比較匱乏,招聘就更難了,而當(dāng)前 QQ 團(tuán)隊 Web 前端團(tuán)隊積累是比較充分的,可以比較好的權(quán)衡質(zhì)量、性能和效率。
最后,Electron 只是目前新版 QQ 桌面 UI 跨平臺的部分,在總體項目中占比較小,并不是 WebQQ 或者網(wǎng)頁版 QQ 或者內(nèi)嵌瀏覽器,新版 QQ 其實基于 NT 架構(gòu)進(jìn)行了完整的重構(gòu)和重寫,基本構(gòu)思如下圖,可以看到核心的 QQ 邏輯還是運(yùn)行在 C++ 這一層。
3.Electron 應(yīng)用的內(nèi)存占用
至于大家關(guān)心的 Electron 應(yīng)用的內(nèi)存問題,并非不能被優(yōu)化和解決。由于一般 Web 應(yīng)用的短周期使用路徑,往往不太關(guān)注內(nèi)存使用。而使用 QQ 中群聊和圖文消息比較多情況,也會給內(nèi)存帶來不小的考驗。但是當(dāng)我們沉下心來,充分細(xì)致地針對每種場景進(jìn)行分析,再結(jié)合定制深度優(yōu)化 Electron 和與 Native 通信層面的優(yōu)化,內(nèi)存可以被很好控制,剩下的不過是再把一些內(nèi)存泄漏的場景找出來而已。目前階段,我們基本上一到兩周就會出一個新版本,比如今天灰度的 Mac 版本,在內(nèi)存占用方面就做了非常大的優(yōu)化,有興趣的同學(xué)可以使用最新版本,可以長時間運(yùn)行跟老版本做個對比,已經(jīng)得到明顯的優(yōu)化,而且優(yōu)化還在持續(xù)中,敬請期待。
4.用戶體驗和反饋
新的 Mac 版 QQ 上線以來,其實我們一邊不斷迭代新功能,一邊持續(xù)性能優(yōu)化,過程中也收到很多不錯的內(nèi)測反饋和好評,也給了我們不少信心去選擇并堅持這個技術(shù)路線。
最后,新版 LinuxQQ 已經(jīng)在內(nèi)測中,很快將和大家見面。能夠快速推出功能齊全的 Linux 版 QQ,也是得益于所選方案給帶來的迭代效率明顯提升。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。