2011年,微信剛發(fā)布時,確實是名副其實的小而美。除了收發(fā)信息、設(shè)置昵稱頭像以及導(dǎo)入通訊錄,微信不提供任何其他功能。
然而,時間過去了十二年,微信已經(jīng)不滿足于做一個即時通訊App,而是成為了陣容龐大的“微信OS”,存儲占用直逼3A游戲大作。
微信的開發(fā)人員并沒有設(shè)法去減少存儲占用,而是不斷地在既有的應(yīng)用架構(gòu)里堆更多的新代碼。畢竟,手機存儲寸土寸金,你不占就要被別的App吃掉。
隨著功能越來越臃腫,“微信OS”對手機性能的要求也越來越高。黑馬拿出四年前的手機安裝最新版微信,甚至無法完成登錄加載。
也許是開發(fā)組實在忍受不了,也許是騰訊突然良心發(fā)現(xiàn),最近,他們終于重構(gòu)了自己的軟件——但重構(gòu)的不是微信,而是QQ NT。
這是舊版QQ的界面,從上世紀(jì)的OICQ至今一直都保持著兩套界面,一套是聯(lián)系人/消息列表,一套是聊天對話框。
如你所見,這個菜單邏輯,放在2023年的今天,簡直可以說無比抽象與炸裂。
首先,聯(lián)系人列表頂部和底部的icon設(shè)計風(fēng)格并不統(tǒng)一,并且在這個界面,竟然有兩個二級菜單按鈕。
右上方的三個點,按照我們?nèi)祟惖恼UJ(rèn)知,應(yīng)該是軟件設(shè)置入口。然而,QQ反其道而行之,在這里面放的是各種功能導(dǎo)航。真正的設(shè)置,藏在了左下方的三條杠。
但對于這次大升級,黑馬只想銳評一句,這不就是微信PC版的設(shè)計理念嗎?微信都用了八百年了,怎么換到你QQ就憋了這么久呢?
其實吧,在代碼界,有個很出名的叫法是“屎山”。它的意思大概就是,前人留下的代碼已經(jīng)年久失修了,但你必須在這座危樓上繼續(xù)建新的房子,而且你不知道樓下哪一塊墻在承重,只能在這個坑上繼續(xù)蓋坑。
如果你試圖拆掉其中一些代碼,整個程序就跑不動了,因為你根本不知道是哪里錯了,所以才被稱為“屎山”。
PC版微信發(fā)布時間較晚,因此可以從零開始開發(fā),但QQ已經(jīng)連續(xù)更新二十多年了,它的年齡可能比在座的某些讀者都大。騰訊的程序員想改,也只是心有余而力不足。
既然改不了,那就推倒重來,重構(gòu)一個新的要比改“屎山”容易多了。于是,便有了QQ NT架構(gòu)。
這是QQ NT的架構(gòu)技術(shù)圖,它的后端采用了C++編寫,桌面端的前端采用了Electron技術(shù)。
如果看不懂,也沒關(guān)系,我們只需要知道C++是一種跨平臺可用的語言,一套代碼只需稍加修改,就可以從Android端拿到iOS端復(fù)用。
而這個Electron,就大有來頭了。如果你知道B站PC版客戶端,那你一定聽說過它就是一個瀏覽器這個說法。
這是因為,Electron本身集成了Chromium,而Chromium不僅是Chrome瀏覽器的內(nèi)核,還被各大國產(chǎn)瀏覽器軟件廣泛使用。
此外,像飛書、迅雷等軟件,前端都是用Electron開發(fā)的。所以說,裝上了新版QQ,你的電腦里就又多了一個“Chrome”。
首先,新版QQ的安裝包大小就有明顯瘦身,比起舊版QQ,QQ NT的安裝包少了將近40MB。
在99+的群聊中爬樓,加載速度也有了巨大的提升。基本上點一下爬樓的箭頭,界面就會立即跳轉(zhuǎn)到最早未讀消息。在舊版,還需要等QQ思索一下在哪,然后停一下,再思索一下在哪。相比之下,QQ NT體驗提升明顯。
更重要的是,QQ NT終于原生支持了夜間模式,甚至還能夠跟隨系統(tǒng)變換,極其先進(jìn)!
此外,QQ NT還增加了重構(gòu)的主題自定義功能,預(yù)設(shè)的幾個主題配色還都挺好看。不過,騰訊畢竟是騰訊,這個功能要開SVIP才能用。對于普通用戶,只有一次十分鐘的試用時長。試用之后,說不定腦子一熱,就給騰訊氪金了。
前面有提到,QQ NT的前端是用Electron開發(fā)的。但是,Electron有個缺點,就是非常吃內(nèi)存。比如B站客戶端,僅僅是打開首頁,就會有7個進(jìn)程,吃掉600多MB內(nèi)存。
還真沒有。QQ NT內(nèi)存占用一般穩(wěn)定在260MB左右,相比舊版會稍多一點,但比起B(yǎng)站動輒600MB的占用來講,已經(jīng)是史詩級優(yōu)化了。
但是,黑馬發(fā)現(xiàn),在部分場景下,QQ NT的內(nèi)存占用會突然飆升到580MB。
總的來說,QQ NT的重構(gòu)還是比較優(yōu)秀的,在保留既有核心功能的情況下,去除了很多用戶不常用、不愛用的附加功能。
對于騰訊來說,這無疑屬于一種“讓利”行為。去除掉這些附加功能,就意味著QQ放棄了桌面端的流量收入。但是,好像這才是一個通訊軟件本來就該有的樣子,我不需要什么資訊、視頻、購物功能,這些功能在其他App上的體驗反而更好。
2011年,微信剛發(fā)布時,確實是名副其實的小而美。除了收發(fā)信息、設(shè)置昵稱頭像以及導(dǎo)入通訊錄,微信不提供任何其他功能。
然而,時間過去了十二年,微信已經(jīng)不滿足于做一個即時通訊App,而是成為了陣容龐大的“微信OS”,存儲占用直逼3A游戲大作。
微信的開發(fā)人員并沒有設(shè)法去減少存儲占用,而是不斷地在既有的應(yīng)用架構(gòu)里堆更多的新代碼。畢竟,手機存儲寸土寸金,你不占就要被別的App吃掉。
隨著功能越來越臃腫,“微信OS”對手機性能的要求也越來越高。黑馬拿出四年前的手機安裝最新版微信,甚至無法完成登錄加載。
也許是開發(fā)組實在忍受不了,也許是騰訊突然良心發(fā)現(xiàn),最近,他們終于重構(gòu)了自己的軟件——但重構(gòu)的不是微信,而是QQ NT。
這是舊版QQ的界面,從上世紀(jì)的OICQ至今一直都保持著兩套界面,一套是聯(lián)系人/消息列表,一套是聊天對話框。
如你所見,這個菜單邏輯,放在2023年的今天,簡直可以說無比抽象與炸裂。
首先,聯(lián)系人列表頂部和底部的icon設(shè)計風(fēng)格并不統(tǒng)一,并且在這個界面,竟然有兩個二級菜單按鈕。
右上方的三個點,按照我們?nèi)祟惖恼UJ(rèn)知,應(yīng)該是軟件設(shè)置入口。然而,QQ反其道而行之,在這里面放的是各種功能導(dǎo)航。真正的設(shè)置,藏在了左下方的三條杠。
但對于這次大升級,黑馬只想銳評一句,這不就是微信PC版的設(shè)計理念嗎?微信都用了八百年了,怎么換到你QQ就憋了這么久呢?
其實吧,在代碼界,有個很出名的叫法是“屎山”。它的意思大概就是,前人留下的代碼已經(jīng)年久失修了,但你必須在這座危樓上繼續(xù)建新的房子,而且你不知道樓下哪一塊墻在承重,只能在這個坑上繼續(xù)蓋坑。
如果你試圖拆掉其中一些代碼,整個程序就跑不動了,因為你根本不知道是哪里錯了,所以才被稱為“屎山”。
PC版微信發(fā)布時間較晚,因此可以從零開始開發(fā),但QQ已經(jīng)連續(xù)更新二十多年了,它的年齡可能比在座的某些讀者都大。騰訊的程序員想改,也只是心有余而力不足。
既然改不了,那就推倒重來,重構(gòu)一個新的要比改“屎山”容易多了。于是,便有了QQ NT架構(gòu)。
這是QQ NT的架構(gòu)技術(shù)圖,它的后端采用了C++編寫,桌面端的前端采用了Electron技術(shù)。
如果看不懂,也沒關(guān)系,我們只需要知道C++是一種跨平臺可用的語言,一套代碼只需稍加修改,就可以從Android端拿到iOS端復(fù)用。
而這個Electron,就大有來頭了。如果你知道B站PC版客戶端,那你一定聽說過它就是一個瀏覽器這個說法。
這是因為,Electron本身集成了Chromium,而Chromium不僅是Chrome瀏覽器的內(nèi)核,還被各大國產(chǎn)瀏覽器軟件廣泛使用。
此外,像飛書、迅雷等軟件,前端都是用Electron開發(fā)的。所以說,裝上了新版QQ,你的電腦里就又多了一個“Chrome”。
首先,新版QQ的安裝包大小就有明顯瘦身,比起舊版QQ,QQ NT的安裝包少了將近40MB。
在99+的群聊中爬樓,加載速度也有了巨大的提升?;旧宵c一下爬樓的箭頭,界面就會立即跳轉(zhuǎn)到最早未讀消息。在舊版,還需要等QQ思索一下在哪,然后停一下,再思索一下在哪。相比之下,QQ NT體驗提升明顯。
更重要的是,QQ NT終于原生支持了夜間模式,甚至還能夠跟隨系統(tǒng)變換,極其先進(jìn)!
此外,QQ NT還增加了重構(gòu)的主題自定義功能,預(yù)設(shè)的幾個主題配色還都挺好看。不過,騰訊畢竟是騰訊,這個功能要開SVIP才能用。對于普通用戶,只有一次十分鐘的試用時長。試用之后,說不定腦子一熱,就給騰訊氪金了。
前面有提到,QQ NT的前端是用Electron開發(fā)的。但是,Electron有個缺點,就是非常吃內(nèi)存。比如B站客戶端,僅僅是打開首頁,就會有7個進(jìn)程,吃掉600多MB內(nèi)存。
還真沒有。QQ NT內(nèi)存占用一般穩(wěn)定在260MB左右,相比舊版會稍多一點,但比起B(yǎng)站動輒600MB的占用來講,已經(jīng)是史詩級優(yōu)化了。
但是,黑馬發(fā)現(xiàn),在部分場景下,QQ NT的內(nèi)存占用會突然飆升到580MB。
總的來說,QQ NT的重構(gòu)還是比較優(yōu)秀的,在保留既有核心功能的情況下,去除了很多用戶不常用、不愛用的附加功能。
對于騰訊來說,這無疑屬于一種“讓利”行為。去除掉這些附加功能,就意味著QQ放棄了桌面端的流量收入。但是,好像這才是一個通訊軟件本來就該有的樣子,我不需要什么資訊、視頻、購物功能,這些功能在其他App上的體驗反而更好。