IT之家 1 月 9 日消息,騰訊“鵝廠黑板報(bào)”公眾號今日發(fā)文談及微信鴻蒙版的開發(fā)歷程,其表示:“站在正式版發(fā)布的 1 月 9 日,或許這一切都可以風(fēng)輕云淡地說:the show must go on。但這過去的 295 天里,他們的經(jīng)歷,我們認(rèn)為值得記錄下來,分享給關(guān)心微信鴻蒙版的用戶朋友們?!?/p>
IT之家附全文如下:
直至現(xiàn)在,「微信鴻蒙版」這五個(gè)字,依然被賦予著太多意義。
這是一款產(chǎn)品,也不僅僅是一款產(chǎn)品。開發(fā)它的本質(zhì),是讓兩個(gè)高速前進(jìn),相互影響的復(fù)雜系統(tǒng),彼此磨合和熟悉,像是執(zhí)行一場空中加油任務(wù)。
不管外界如何評價(jià)和鞭策,這款產(chǎn)品本身,依然需要研發(fā)團(tuán)隊(duì)一個(gè)鍵一個(gè)鍵敲出來,從內(nèi)核,到架構(gòu),到內(nèi)測,到公測,再到一輪一輪的 debug,他們要在不到一年的時(shí)間里,走完微信 14 年的路。
回顧鵝廠所做過的產(chǎn)品里,也許從未有過一款,被如此放在放大鏡下凝視。每一次上架,每一個(gè) bug,乃至于每一個(gè)里程碑,幾乎都預(yù)定當(dāng)天熱搜。
站在正式版發(fā)布的 1 月 9 日,或許這一切都可以風(fēng)輕云淡地說:the show must go on。但這過去的 295 天里,他們的經(jīng)歷,我們認(rèn)為值得記錄下來,分享給關(guān)心微信鴻蒙版的用戶朋友們。
2024 年 3 月,集結(jié)
鵝廠指派了從塞班(Symbian)時(shí)期就負(fù)責(zé)微信開發(fā)工作的團(tuán)隊(duì),來主導(dǎo)微信鴻蒙版。從塞班到智能手表、車機(jī)、Linux PC 端的微信,這個(gè)團(tuán)隊(duì)在內(nèi)部素以擅長攻克不同環(huán)境、不同語言的開發(fā)工作著稱。
同樣很重要的一點(diǎn)是,得益于智能手表端微信的研發(fā)工作,微信和華為的兩個(gè)團(tuán)隊(duì)是老相識,這也讓雙方的對接更加順暢緊密起來。從三月貫穿到四月,兩邊通過拉通會、分享會學(xué)習(xí)鴻蒙系統(tǒng)研發(fā)框架,不定時(shí)組織技術(shù)專題討論。
雙方都很清楚,這不是一場三天兩夜就能解決的小規(guī)模戰(zhàn)斗,而是曠日持久的兵團(tuán)級戰(zhàn)役。兵馬未動(dòng),糧草先行,敲下第一行代碼之前,還有許許多多的工作需要準(zhǔn)備。
2024 年 4 月,基建
萬丈高樓平地起,基建是最重要的第一步。
搞基建,“三通一平”(通電 / 通路 / 通水 / 土地平整)是基本要求,進(jìn)取一些,可以做到“五通一平”(加入通訊 / 排污),再進(jìn)一步,還有“七通一平”(加入通氣 / 有線電視),乃至于“十通一平”(加入寬帶 / 鐵路 / 暖氣)。通得越多,越有利于后期擴(kuò)展和長遠(yuǎn)發(fā)展。
經(jīng)過塞班、手機(jī)、手表等各種終端上的長期打磨,這個(gè)團(tuán)隊(duì)積累了一套名為 Alita(阿麗塔)的跨平臺內(nèi)核。這也為鴻蒙版微信的基建打下了基礎(chǔ)。這個(gè)階段的重中之重是,快速熟悉鴻蒙系統(tǒng),移植基礎(chǔ)庫,讓 Alita 內(nèi)核能夠在鴻蒙系統(tǒng)上運(yùn)行起來,和華為一邊溝通、一邊驗(yàn)證推進(jìn)。
2024 年 5 月,架構(gòu)
接下來考驗(yàn)的是架構(gòu)能力。開發(fā)團(tuán)隊(duì)需要設(shè)計(jì)好鴻蒙微信客戶端的架構(gòu)、編寫好各模塊文檔,支撐各業(yè)務(wù)進(jìn)場后能夠高效開發(fā)。
這一步的難點(diǎn),在于充分預(yù)判到業(yè)務(wù)之間的復(fù)雜解耦,既要降低各業(yè)務(wù)之間的依賴性,又要提高整體的穩(wěn)定性,還要留出高可擴(kuò)展性,屬于典型的“我全都要”難題。
這就好比從零開始建設(shè)一座城市,要預(yù)估到這座百年之后超級都市的人口規(guī)模、交通狀況、人居需求、產(chǎn)業(yè)結(jié)構(gòu)、商業(yè)發(fā)展等因素,以及提前平衡這些因素之間的關(guān)系,需要具備極大的前瞻視角。
技術(shù)團(tuán)隊(duì)繼續(xù)搖人,招聘也快馬加鞭推進(jìn)。TAPD(騰訊敏捷產(chǎn)品研發(fā)平臺)流程圖里,他們的首個(gè)目標(biāo)是做出一個(gè)基礎(chǔ)版本,保證用戶能實(shí)現(xiàn)收發(fā)消息、語音通話等最基礎(chǔ)、也是最重要的功能。
2024 年 6 月,磨合
進(jìn)入了真正的手搓環(huán)節(jié)。flutter(跨平臺應(yīng)用程序開發(fā)框架)、liteapp(專為移動(dòng)端設(shè)計(jì)的跨平臺開發(fā)框架)等,都是這個(gè)階段的關(guān)鍵工作。
為了這桌“年夜飯”,技術(shù)小哥們一邊在廚房切菜燒飯,一邊去客廳招呼各方沏茶倒水,讓支付和 VoIP(語音通話技術(shù))等基礎(chǔ)能力陸續(xù)湊上一桌。
除了內(nèi)外部密切的技術(shù)溝通,微信和華為團(tuán)隊(duì)對彼此的技術(shù)標(biāo)準(zhǔn)保持了互相尊重。以相冊選圖發(fā)送功能為例,在 Android 系統(tǒng)上,選圖需要獲取整個(gè)相冊權(quán)限,也就是說應(yīng)用可以訪問用戶的所有照片。在鴻蒙上的選圖功能,為了保障用戶隱私,微信采用的是 Picker 控件的方式,相冊照片的展示和選擇邏輯都由 Picker 控件提供,微信只能讀取到用戶勾選的照片。
第一個(gè)里程碑,bug 如約而至
趕在 6 月 21 日前,團(tuán)隊(duì)做好了第一個(gè)內(nèi)部體驗(yàn)版本,包含收發(fā)消息、通話功能。和 2011 年 1 月 21 日發(fā)布的 iOS 和安卓版的微信 1.0 版本相比,多了語音消息發(fā)送。
你可能會不以為然:大動(dòng)干戈這么久,就整了個(gè)這毛坯房?
其實(shí)這里蘊(yùn)含的開發(fā)思路,是驗(yàn)證最小可用的原則,本質(zhì)上是對第一階段研究鴻蒙語言和系統(tǒng)的成果驗(yàn)收。重要的是把基本功練好,才能為后續(xù)的開枝散葉打好底子。
但即便是如此普通的版本,也出了個(gè)閃退型 bug,最后查出來是系統(tǒng)的底層 API 問題:同樣的代碼邏輯,在 iOS 和安卓上能用,但在鴻蒙上行不通。兩邊團(tuán)隊(duì)為此絞盡腦汁,交了兩個(gè)星期的學(xué)費(fèi),最后還是靠著某位技術(shù)小哥靈光一現(xiàn)想到的。
這個(gè) bug 也像是一場結(jié)業(yè)考試,經(jīng)此一役,開發(fā)進(jìn)入了快節(jié)奏。
微信集合了眾多產(chǎn)品功能,各功能間又有復(fù)雜的交互和依賴關(guān)系,比如小程序的開發(fā)就涉及到與支付功能的打通,而支付能力又需要與基礎(chǔ)會話功能打通。在完成基建的前提下,基礎(chǔ)、支付、小程序…… 能進(jìn)場的業(yè)務(wù)模塊都陸續(xù)進(jìn)了場。一個(gè)共同的目標(biāo)是 ——10 月 8 號鴻蒙公測那天,做出一個(gè)新版本。這個(gè)版本,將新增微信支付、朋友圈等功能。
2024 年 10 月 8 日:喜歡您來
10 月 8 日,微信鴻蒙原生版開啟內(nèi)測邀請,嘗鮮版本包含基礎(chǔ)社交通訊音視頻通話、朋友圈、微信支付的二維碼收 / 付款等功能。
內(nèi)測開啟,意味著微信和其他所有適配原生鴻蒙的第三方 App 一樣,從內(nèi)測到應(yīng)用嘗鮮再到公測,走上了鴻蒙系統(tǒng)第三方軟件開發(fā)的三部曲。
為什么要限量內(nèi)測而不是一口氣開放下載呢?
在全新的平臺上,要支撐海量用戶、高并發(fā)通訊需求,同時(shí)涉及支付、小程序、視頻等多個(gè)大功能模塊,還要滿足極高頻使用下的穩(wěn)定性,是很大的挑戰(zhàn)。
所以,用內(nèi)測 → 找 bug → 修 bug → 加大內(nèi)測的方式,是一個(gè)更符合軟件開發(fā)規(guī)律的方式。
經(jīng)歷了 4 天緊張的測試和 debug,包括微信支付在內(nèi)的多個(gè)功能經(jīng)過嚴(yán)格測試流程后,合入大版本,10 月 12 日,微信鴻蒙原生版正式開始公測。
2024 年 10 月~11 月:這都能遇到灰產(chǎn)啊啊啊
公測放量過程中,有一次實(shí)際登錄人數(shù)不到放量總數(shù)的十分之一?
某平臺上竟然有人公然售賣測試名額?
一系列插曲打破了原定的放量節(jié)奏,雙方共同排查后發(fā)現(xiàn),原來有人把安裝包拿去二手平臺牟利。應(yīng)用商店完善機(jī)制后,把漏洞補(bǔ)上。
安裝包都能拿來賣,也堪稱是國產(chǎn)軟件開發(fā)史上濃墨重彩的一筆。
微信鴻蒙版在嘗鮮專區(qū)上線了 2 萬測試名額,但后臺顯示,登錄數(shù)據(jù)一直較低,我們和華為一同復(fù)盤發(fā)現(xiàn),因?yàn)橛腥擞媚_本去搶名額,觸發(fā)了應(yīng)用商店的安全機(jī)制,同時(shí)擾亂了應(yīng)用商店的計(jì)數(shù)邏輯,導(dǎo)致大概 90% 的放量被攔截,最終實(shí)際下載的用戶只有 10% 左右。
又是濃墨重彩的一筆……
如何讓用戶盡可能體驗(yàn)到微信測試版本?
在基本保障嘗鮮專區(qū)不斷檔的情況下,11 月 6 日,雙方緊急協(xié)商,華為將微信鴻蒙版的測試名額大幅擴(kuò)容,微信再次邀請擴(kuò)容后的用戶分批有序參與內(nèi)測,共同完善新版本的各種體驗(yàn)。
在不斷收集用戶反饋、歷經(jīng)數(shù)次迭代后,目前的版本已經(jīng)可以使用視頻號、聊天引用、發(fā)文件等功能,所有鴻蒙用戶也都可以直接下載,更多功能在持續(xù)上線。
2025 年 1 月 9 日:不止是微信
吸收了廣大用戶的反饋和多輪 debug 后,鴻蒙版微信順利結(jié)束公測,1 月 9 日正式版本上線。你除了能穩(wěn)定下載和使用微信外,還可以用到 QQ、騰訊視頻、騰訊新聞、QQ 音樂等 App。
自今年起,騰訊 20 多款產(chǎn)品通過敏捷開發(fā),實(shí)現(xiàn)鴻蒙系統(tǒng)的適配工作,更多騰訊的產(chǎn)品適配也在路上。
一個(gè)發(fā)生在 2024 年 10 月 29 日的插曲,某種程度上,可以反映微信鴻蒙版開發(fā)團(tuán)隊(duì)的工作情形和協(xié)作流程。
19:20,項(xiàng)目組微信支付團(tuán)隊(duì)發(fā)現(xiàn),即將要上架的最新嘗鮮版的微信,小部分用戶轉(zhuǎn)賬入口出現(xiàn) bug,點(diǎn)擊后無反應(yīng)。
20:15,客服團(tuán)隊(duì)同步后臺客訴情況。
20:57,微信支付團(tuán)隊(duì)初步定位,有問題的代碼是今日合入導(dǎo)致的,疑似是 LiteApp(跨端的框架,微信轉(zhuǎn)賬是鴻蒙第一個(gè)使用這個(gè)框架的功能)的問題。
21:31,進(jìn)一步定位問題,發(fā)現(xiàn)在一些極端情況下,LiteApp 的文件緩存寫入被系統(tǒng)提示權(quán)限不足,聯(lián)系華為技術(shù)團(tuán)隊(duì)一起定位。
21:47,支付技術(shù)團(tuán)隊(duì)完成最新內(nèi)測版微信的修復(fù),合入后,提交版本給測試團(tuán)隊(duì)。
22:32,支付技術(shù)團(tuán)隊(duì)復(fù)盤問題,提出后續(xù)改進(jìn)措施。
22:41,微信基礎(chǔ)技術(shù)團(tuán)隊(duì)向華為應(yīng)用商店提審新版本內(nèi)測包。
22:54,向華為應(yīng)用商店提審嘗鮮版。
23:30,最新嘗鮮版微信通過審核,上架嘗鮮專區(qū),轉(zhuǎn)賬問題修復(fù)。
微信公眾平臺曾有一句 slogan 深入人心:再小的個(gè)體,也有自己的品牌。同樣的,再小的問題,放在微信上,都會被億量級地?cái)U(kuò)大。
我們知道,永遠(yuǎn)等不來“完美交付”這一天。灰度測試、持續(xù)迭代,讓產(chǎn)品在和用戶的互動(dòng)中得到改進(jìn),是騰訊一直以來的產(chǎn)品理念。
感謝微信用戶、鴻蒙用戶始終跟我們站在一起,7x24 小時(shí)反饋 bug、提出優(yōu)化意見。如果把新產(chǎn)品開發(fā)比作一場足球賽,那希望你們一直都在,做我們敏捷開發(fā)“球隊(duì)”的第 12 人。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。