設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

微信員工:原生鴻蒙是一套新的技術(shù)框架,意味著 App 要完全重寫

2025/1/9 21:34:25 來源:IT之家 作者:歸瀧(實(shí)習(xí)) 責(zé)編:歸瀧
感謝IT之家網(wǎng)友 雨雪載途 的線索投遞!

IT之家 1 月 9 日消息,微信純血鴻蒙版 App 今日正式登陸手機(jī)端華為應(yīng)用市場(App Gallery),版本號為 1.0.3.42。

騰訊 WXG(微信事業(yè)群)員工 @客村小蔣 今日發(fā)布長文總結(jié)了微信純血鴻蒙版 App 上架歷程,IT之家附原文如下:

今天,微信鴻蒙原生版正式上架應(yīng)用商店了。

有些話,想說一說,給這段時間做一個總結(jié)。

現(xiàn)在講究零幀起手,也就是要講就講最關(guān)鍵的,不要前面各種鋪墊,最后夾帶私貨。

但身份和視角的問題,我今天要說的,可能都是私貨。

負(fù)責(zé)鴻蒙微信開發(fā)的大哥,是老廣研,當(dāng)年開發(fā)微信 1.0 的那批成員中的一位。

也就是說,他在鵝廠的時間,比微信的歷史都久。

當(dāng)年的 1.0,大哥負(fù)責(zé)搞塞班(Symbian)微信,曾經(jīng)的諾基亞,從品牌到份額,應(yīng)該是遠(yuǎn)超今天的蘋果的。

但作為一個開放度遠(yuǎn)不如現(xiàn)在的 iOS 和 Android 的“原始操作系統(tǒng)”,在塞班上做東西,是刀耕火種。

大哥帶著團(tuán)隊肯鉆研,硬在塞班上手搓出了朋友圈、公眾號。

沒有想到,諾基亞這樣的巨人的轟然倒塌,完全不以人的意志為轉(zhuǎn)移。

之后大哥帶著團(tuán)隊做智能手表、車機(jī),包括最早的 Linux PC 端的微信。

不同品牌、不同終端,比手機(jī)更碎片化的生態(tài),非常需要一個跨平臺的內(nèi)核,把最重要、最基礎(chǔ)的能力搭成可復(fù)用的基建。

剛好和團(tuán)隊一起看了當(dāng)時熱映的《阿麗塔:戰(zhàn)斗天使》,大哥說我們剛立項(xiàng)的跨平臺內(nèi)核,就叫“阿麗塔內(nèi)核”吧。

阿麗塔,又帥又能打。

阿麗塔內(nèi)核,也成了微信跨平臺開發(fā)的基建。

微信鴻蒙版,也受益于此。

這樣的履歷,其實(shí)冥冥中有注定。

2024 年 3 月 21 日,一份簡單又正式的通知來了,大家已經(jīng)決定了,鴻蒙微信,你牽頭來搞。

1、搭基建:第一天開始,鴻蒙微信就是按照“三峽大壩”建的

原生鴻蒙(HarmonyOS NEXT)完全是一套新的技術(shù)框架,編程語言是獨(dú)特的 ArkTS 語言,這意味著所有的 App 都要完全重寫。”

這句話,我經(jīng)常會跟不同的朋友說起。

不過,對微信團(tuán)隊來說,學(xué)習(xí)新的編程語言,可能是整個適配工作中,最不算困難的事情之一。

在一個全新的平臺上,做一款要支撐海量用戶、高并發(fā)的通訊需求,同時有支付、小程序、視頻平臺等多個大功能模塊的應(yīng)用,還要滿足極高頻使用下的穩(wěn)定性,是更大的挑戰(zhàn)。

這也是我全篇最大的私貨,我可能會反復(fù)提起。

也有人說,原生鴻蒙在 2024 年 10 月才開始公測,怎么就海量用戶了?

我記得原生鴻蒙有一次發(fā)布會用的主題叫,“待到山花爛漫時”,信念的力量,很強(qiáng)大。

微信的技術(shù)團(tuán)隊,依靠的則是對技術(shù)的狂熱信念。

iOS、安卓微信多年的捶打,他們早已把一些信念根植于團(tuán)隊中:比如大系統(tǒng)小做、讓一切可擴(kuò)展、必須有基礎(chǔ)組件、灰度發(fā)布、精細(xì)監(jiān)控、迅速響應(yīng),一切都是保證系統(tǒng)在穩(wěn)定的前提下,能夠敏捷響應(yīng)產(chǎn)品需求。

微信原生鴻蒙團(tuán)隊,剛開始組建,就有一個堪比 iOS、安卓客戶端開發(fā)團(tuán)隊的規(guī)模。

“今天是這些人做鴻蒙微信,幾年以后,還應(yīng)該是這些人在做。”大哥的 leader,另一個我非常敬重的技術(shù)大哥說到。

2、搭基建,修 bug,是一種修行

阿麗塔內(nèi)核,在開發(fā)鴻蒙微信的過程中,居功至偉。

但這只是基建的第一步。

萬丈高樓,第一天就要把地基打得足夠深、足夠牢。

第二步,還需要設(shè)計好鴻蒙微信客戶端的架構(gòu)、編寫好各個模塊的文檔,讓后續(xù)第二三階段的業(yè)務(wù)進(jìn)場后能夠高效進(jìn)行開發(fā)。

這一步極其有難度,不僅要快速滿足業(yè)務(wù)訴求,還需要考慮業(yè)務(wù)之間的解耦,并具備長期的高可擴(kuò)展性。

也就是說,讓微信各個相互依存的模塊,又在技術(shù)上盡量減少對彼此的依賴,避免因某個模塊的故障影響其他功能。同時,有一個擴(kuò)展性極高的框架。

也是這個時間,大哥帶著團(tuán)隊開展了頻率極高的對內(nèi)對外溝通。

對外,和華為的技術(shù)團(tuán)隊進(jìn)行了頻率極高的線上線下交流;對內(nèi),push 各個業(yè)務(wù)團(tuán)隊將各自的基礎(chǔ)庫移植進(jìn)來。

從搭基建一直到今天,修 bug 都是一個始終伴隨開發(fā)過程的動作。

有一個經(jīng)典的氣死程序員的問題,“程序員為什么要一直寫 bug ,不能一次性寫好嗎?”

程序員們也進(jìn)行了各種“狡辯”,從類比答題、園丁和雜草、奇葩顧客買肉夾饃,到賭氣只要產(chǎn)品經(jīng)理永遠(yuǎn)不加新功能就不會有 bug。

其實(shí)核心就幾個點(diǎn):需求經(jīng)常會變、系統(tǒng)太復(fù)雜、意外情況多、時間和成本有限,以及“人”,總是會出錯的。

鴻蒙遇上微信,這樣的問題就會加倍,兩個高速前進(jìn)、互相影響的復(fù)雜系統(tǒng),讓修 bug 就像一場修行。

6 月,在適配鴻蒙 NEXT.0.0.6x 的某個版本過程中,出現(xiàn)了一個經(jīng)常導(dǎo)致開發(fā)中的微信閃退的 bug。

n

兩個團(tuán)隊一起排查了一周多都毫無進(jìn)展,大哥睡覺時,腦子里都在想這個 bug。

最后甚至是靠靈光一閃,從系統(tǒng)的一個底層 API 中發(fā)現(xiàn)了問題:同樣的代碼邏輯,在 iOS 上和安卓上都沒問題,但在鴻蒙上就會遇到問題。

發(fā)現(xiàn)問題后,就能快速解決了。

幾個月后,我第一次聽說這段經(jīng)歷時,居然回憶起了小時候看的愛迪生試驗(yàn)燈絲的故事。

3、邀請內(nèi)測、上架嘗鮮

2024 年的十一假期,鴻蒙微信開發(fā)團(tuán)隊的全部人都加了七天班。

10 月 8 日,也就是原生鴻蒙正式公測的這天,鴻蒙微信也開始邀請內(nèi)測。

10 月 12 日,微信測試版上架鴻蒙應(yīng)用商店的“應(yīng)用嘗鮮”專區(qū),用戶可以搶先下載測試。

但如果從一個普通鴻蒙用戶的角度,從 10 月 12 日到 11 月 6 日的不到一個月的時間里,因?yàn)橐皳尅蔽⑿?,可能是最痛苦的日子?/p>

有幾個問題,一直縈繞在這段時間,前前后后做過一些解釋,這次放在一起講一講,盡量讓大家了解來龍去脈。

1)為什么要用限量內(nèi)測方式,不直接給所有人下載?

回到我開頭的私貨:在一個全新的平臺上,做一款要支撐海量用戶、高并發(fā)的通訊需求,同時有支付、小程序、視頻平臺等多個大功能模塊的應(yīng)用,還要滿足極高頻使用下的穩(wěn)定性,是很大的挑戰(zhàn)。

所以,用內(nèi)測 → 找 bug → 修 bug → 加大內(nèi)測的方式,是一個更符合軟件開發(fā)規(guī)律的方式。

在原生鴻蒙上,很多 App 也采用了類似的方式。

2)為什么不能公布一個固定的時間,要不定時地放,甚至有時候深夜放?

再回顧下前面的一個私貨:兩個高速前進(jìn)、互相影響的復(fù)雜系統(tǒng),讓開發(fā)就像一場修行。

舉一個我深度圍觀的例子:

某天晚上的 19:20 左右,項(xiàng)目組微信支付團(tuán)隊發(fā)現(xiàn),即將要上架的最新嘗鮮版的微信,小部分用戶的轉(zhuǎn)賬入口出現(xiàn) bug,點(diǎn)擊后無反應(yīng)。

微信支付團(tuán)隊和項(xiàng)目組基礎(chǔ)技術(shù)團(tuán)隊開始同步排查問題。

20:15,客服團(tuán)隊同步后臺客訴情況。

20:57,微信支付團(tuán)隊初步定位,有問題的代碼是今日合入導(dǎo)致的,疑似是 LiteApp(跨端的框架,微信轉(zhuǎn)賬是鴻蒙第一個使用這個框架的功能)的問題。

21:31,進(jìn)一步定位到問題,在某些比較極端的情況下,LiteApp 的文件緩存寫入被系統(tǒng)提示權(quán)限不足,聯(lián)系華為技術(shù)團(tuán)隊一起定位。

21:47,支付技術(shù)團(tuán)隊完成問題修復(fù),合入后,提交版本給測試團(tuán)隊。

22:32,支付技術(shù)團(tuán)隊復(fù)盤問題,提出后續(xù)改進(jìn)措施:測試、開發(fā)嚴(yán)謹(jǐn)度提升。

22:41,微信基礎(chǔ)技術(shù)團(tuán)隊向華為應(yīng)用商店提審新版本內(nèi)測包。

22:54,向華為應(yīng)用商店提審嘗鮮版。

23:30,最新嘗鮮版微信通過審核,上架嘗鮮專區(qū),轉(zhuǎn)賬問題修復(fù)。

3)為什么那段時間,一邊搶不到,一邊有人在二手平臺上賣安裝包?

看到售賣安裝包的鏈接,我們也很震驚,立刻找了華為一起排查原因,簡單來說,是因?yàn)閼?yīng)用商店沒有做嚴(yán)格的鑒權(quán),有人用技術(shù)手段從商店里抓了安裝包來安裝,甚至教這種辦法牟利。很快,華為也修復(fù)解決了這個問題。

4)為什么老是瞬間就搶光?

有一段時間,實(shí)際登錄微信的名額,遠(yuǎn)遠(yuǎn)低于放量的名額。再次排查發(fā)現(xiàn),有人用類似搶票軟件的“腳本”,去刷應(yīng)用商店的放量,也因此觸發(fā)了商店的安全機(jī)制,攔截了大部分的需求。

5)那為什么不能提前收集愿意參加內(nèi)測的用戶名單,給他們定向發(fā)測試版就好了,其他人用穩(wěn)定版,不就不用一次次地?fù)屃耍?/p>

這確實(shí)也是我們更希望的方式。大家“搶”微信,更本質(zhì)的原因是需要用微信。

但當(dāng)時有幾個客觀的限制條件:一個穩(wěn)定的、必須的基礎(chǔ)功能都具備的版本,需要多次的迭代;鴻蒙對一個 App 內(nèi)測名額的上限,有比較大的限制,一個新功能穩(wěn)定性的測試,需要的用戶量級要遠(yuǎn)超于此。

4、“大家的鍵盤都被敲冒煙了”

這段時間,我也獲得了屌毛的美名。

當(dāng)然,我理解,這更多是情緒的宣泄。

我不是開發(fā)人員,但從深度圍觀中,能感受到兩個團(tuán)隊的不易。

有一次在微博開玩笑,“我之前說開發(fā)同事鍵盤都敲冒煙了,其實(shí)不夸張。從開發(fā)同事的反饋里,我能感受到鴻蒙開發(fā)同學(xué)的鍵盤應(yīng)該也不好受?!?/p>

轉(zhuǎn)天剛好是 10 月 24 日,程序員節(jié),華為終端的 CTO 李小龍先生轉(zhuǎn)了這條微博,寫到:

今天是 1024 程序員節(jié),我們要致敬廣大鴻蒙開發(fā)者朋友們,同時也感謝廣大用戶為我們反饋問題,大家的寶貴意見對鴻蒙生態(tài)的完善與提升很有幫助。如 @客村小蔣 所說,盡快發(fā)現(xiàn)問題、修復(fù)問題,給廣大用戶帶來極致體驗(yàn),是各廠商和鴻蒙的共同目標(biāo)。構(gòu)建鴻蒙生態(tài)是一個艱巨的任務(wù),即使已經(jīng)取得了一些進(jìn)展,但還是面臨著很多挑戰(zhàn)。華為與國內(nèi)上萬家生態(tài)伙伴、數(shù)十萬人共同投入,展現(xiàn)了強(qiáng)大的合作力量。現(xiàn)在每天都有大量鴻蒙原生應(yīng)用上架,且迭代飛速,有些甚至每天迭代一個版本。兩天前 HarmonyOS NEXT 正式發(fā)布,我們也會和各廠商、廣大開發(fā)者一起繼續(xù)努力,也希望更多的用戶升級、體驗(yàn),反饋意見

5、穩(wěn)定版本不限量下載,測試版同步進(jìn)行

11 月 6 日,經(jīng)過一個月的高速迭代,基礎(chǔ)功能有所完善的穩(wěn)定版本有了。

和華為團(tuán)隊進(jìn)行了一個極其高效的線上會議后,內(nèi)測名額的上限也有了大幅提升。

收集愿意參加內(nèi)測的用戶名單,給他們定向發(fā)測試版,其他人用穩(wěn)定版的方案,終于可行。

之后就是持續(xù)的:新的測試版邀請內(nèi)測 → 抓 bug → 修 bug → 擴(kuò)大測試 → 更新穩(wěn)定版 → ……

直到今天的正式版上線,開發(fā)、產(chǎn)品、測試、生態(tài)合作…… 所有參與到這個項(xiàng)目里的團(tuán)隊,都未有一天松懈。

正式版,是一個新的繼續(xù)向前的開始。

6、被誤解是表達(dá)者的宿命,但不該是建造者的

我的微博簡介里原來有一句話,叫“制造熵減,嘗試努力消除一些誤解”。

很裝 x。

“熵減”是“熵增”的反義詞。啥叫“熵增”,我的理解就是世界是一個巨大的,不斷從有序向無序轉(zhuǎn)化的混沌體。

被誤解,是任何一個系統(tǒng)或者物體的宿命。

但是,如果不斷有外力來施加影響,起碼是能減緩有序向無序轉(zhuǎn)化的速度的。

后來請教了我的朋友里,最有文化的一位哈佛博后,他告訴我,“熵減”可能無法制造,更好的說法,或許是“驅(qū)動熵減”。

現(xiàn)實(shí)里我雖然內(nèi)向,在網(wǎng)上卻是個愛說話的人,盡管被叫成叼毛,但很高興應(yīng)該還是有一些朋友因?yàn)橛辛烁嗟牧私?,有了新的判斷?/p>

不然應(yīng)該不會同時有那么多人叫我靚仔

現(xiàn)在回憶起來輕松很多,但在需要“搶”微信的那段時間里,

我個人被罵的程度,也是我從來沒有經(jīng)歷過的,

嚴(yán)重的時候,自認(rèn)內(nèi)心強(qiáng)大的我,睡眠甚至也受了點(diǎn)影響,

將心比心,作為一個并未實(shí)際參與開發(fā),僅是圍觀的人,

已經(jīng)有如此大的心理波動。

我就更想找一個合適的機(jī)會,

講一講同事開發(fā)鴻蒙微信的一些故事,

給更多的朋友更多的視角。

感謝大家一直以來的陪伴、反饋。

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:微信,HarmonyOS NEXT,純血鴻蒙

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知