[No.X002]
作者 | 陳其亮
程序員楊曉峰開(kāi)始體會(huì)到一種前所未有的“快感”。
他所在的團(tuán)隊(duì)向 OpenJDK 國(guó)際開(kāi)源社區(qū)主分支貢獻(xiàn)的代碼名列國(guó)內(nèi)第一,受到了該開(kāi)源社區(qū)的點(diǎn)名致謝,騰訊也成為迄今為止該社區(qū)唯一一家因顯著貢獻(xiàn)被連續(xù)點(diǎn)名致謝的中國(guó)公司,兩位團(tuán)隊(duì)成員獲得了社區(qū) review 權(quán)限。
迄今為止,在國(guó)內(nèi)公司中有這種權(quán)限的程序員,不超過(guò)三人。
作為 Java 開(kāi)發(fā)工具 JDK 的專(zhuān)家,楊曉峰的日常工作是普通人不太看得懂的基礎(chǔ)軟件研發(fā)。
2019 年秋,楊曉峰沖著“協(xié)同”二字入職騰訊,牽頭 JDK 開(kāi)源協(xié)同小組。簡(jiǎn)單說(shuō),開(kāi)源協(xié)同就是騰訊內(nèi)部源代碼全部開(kāi)放,不同團(tuán)隊(duì)協(xié)同開(kāi)發(fā),共建騰訊基礎(chǔ)技術(shù)平臺(tái)。
如今,他牽頭的團(tuán)隊(duì)自主研發(fā)的 JDK 產(chǎn)品,不僅被公司內(nèi)所有事業(yè)群使用,幫助多項(xiàng)大規(guī)模業(yè)務(wù)實(shí)現(xiàn)最高 50% 的性能提升,還被開(kāi)源社區(qū)高度認(rèn)可。
更讓他開(kāi)心的是,JDK 基礎(chǔ)軟件的研發(fā)已直接打通到面對(duì)客戶的產(chǎn)品端�?蛻粼鲩L(zhǎng)量、特別是主動(dòng)尋求合作的客戶增長(zhǎng)超出了產(chǎn)品端的預(yù)期,甚至一向以要求嚴(yán)格的金融大客戶,近期也開(kāi)始在相關(guān)產(chǎn)品底層全面使用團(tuán)隊(duì)自主開(kāi)發(fā)的 JDK 產(chǎn)品。
而這一切從 0 到 1 的變化,發(fā)生在短短三年時(shí)間內(nèi)。
1“被看見(jiàn)”
2018 年之前,很少有人意識(shí)到,騰訊內(nèi)部的技術(shù)問(wèn)題已經(jīng)積累到了刻不容緩的程度。
熟悉騰訊的人知道,騰訊在產(chǎn)品上曾推崇“賽馬文化”,服務(wù)各產(chǎn)品的技術(shù)團(tuán)隊(duì)也在自己“造輪子”、“建工廠”,最終導(dǎo)致內(nèi)部煙囪林立,雖然單個(gè)產(chǎn)品技術(shù)團(tuán)隊(duì)閉環(huán)效率高,但整體難以形成技術(shù)合力。
2018 年,騰訊運(yùn)營(yíng)管理部在一次梳理中發(fā)現(xiàn),公司內(nèi)部重復(fù)的技術(shù)團(tuán)隊(duì)竟有 150 多個(gè),在聽(tīng)到這個(gè)匯報(bào)時(shí),就連騰訊的最高決策層總裁辦都震驚了。以至于騰訊高級(jí)執(zhí)行副總裁、技術(shù)工程事業(yè)群總裁盧山也發(fā)出感慨:“有一天,我們離開(kāi)騰訊,回頭看我們留下的東西,都是扎了一堆煙囪的殘?jiān)珨啾�,我們�?nèi)心會(huì)不會(huì)痛啊?”
騰訊決心要蹚出一條自己的路。
2018 年 9 月 30 日,騰訊宣布新一輪戰(zhàn)略升級(jí)和組織變革,同時(shí)發(fā)起開(kāi)源協(xié)同,通過(guò)整合全公司技術(shù)能力,打破技術(shù)壁壘,消除重復(fù)建設(shè)。
和當(dāng)時(shí)業(yè)界流行的技術(shù)中臺(tái)不同,騰訊的開(kāi)源協(xié)同是全公司內(nèi)部源代碼全部開(kāi)放,上層設(shè)立技術(shù)委員會(huì)進(jìn)行指導(dǎo),底層推動(dòng)各技術(shù)團(tuán)隊(duì)成立虛擬組織 Oteam(開(kāi)源協(xié)同小組),協(xié)同開(kāi)發(fā)公司級(jí)的技術(shù)產(chǎn)品——這讓在騰訊工作的程序員們一下子有了被全公司“看見(jiàn)”的機(jī)會(huì)。
田甜是騰訊互動(dòng)娛樂(lè)事業(yè)群(簡(jiǎn)稱 IEG)做服務(wù)網(wǎng)格技術(shù)的一名程序員,當(dāng)業(yè)務(wù)量增大時(shí),需要更龐大的服務(wù)網(wǎng)格來(lái)避免資源重復(fù)浪費(fèi)。為了做好服務(wù)網(wǎng)格,田甜試著發(fā)起了服務(wù)網(wǎng)格 Oteam,來(lái)找到公司里的“同行”一起協(xié)同。
“突然發(fā)現(xiàn),同一個(gè)領(lǐng)域有好多人和自己在做相同的事,這種感覺(jué)很神奇。”田甜說(shuō)。
在田甜看來(lái),程序員大多個(gè)性低調(diào),悶頭做事,以前服務(wù)好本部門(mén)業(yè)務(wù)就行,現(xiàn)在有了 Oteam,程序員也要把目光投向外界。2019 年 10 月在服務(wù)網(wǎng)格 Oteam 每半年一次的線下沙龍上,田甜發(fā)現(xiàn),另外一個(gè)事業(yè)群的同行最關(guān)注的是服務(wù)網(wǎng)格的安全性和穩(wěn)定性,而不是 IEG 業(yè)務(wù)場(chǎng)景下最關(guān)心的技術(shù)架構(gòu)。“這樣的交流,拓寬了我們做服務(wù)網(wǎng)格技術(shù)的眼界和維度。”
隨著公司內(nèi)技術(shù)同行間不斷的“網(wǎng)友見(jiàn)面”,技術(shù)交流的氛圍逐漸熱烈起來(lái)。Oteam 的企業(yè)微信群里,時(shí)不時(shí)會(huì)有人拋出技術(shù)問(wèn)題,很快就有其它團(tuán)隊(duì)的程序員來(lái)解答。不過(guò),當(dāng)技術(shù)交流比以前多了,程序員們也不一定會(huì)彼此服氣,畢竟騰訊程序員基數(shù)龐大,有不同看法甚至流派之爭(zhēng)再正常不過(guò)。
縱觀 tRPC 微服務(wù)框架 Oteam 的協(xié)同過(guò)程,也是一個(gè)“吵”的過(guò)程。但吵歸吵,可以“關(guān)門(mén)、送飯”,“吵”個(gè)痛快,但事后必須有結(jié)果,出共識(shí),“按手印”。爭(zhēng)吵的獲勝不是目的,對(duì)技術(shù)負(fù)責(zé),增強(qiáng)全面認(rèn)知、形成共識(shí)才是目的。騰訊程序員們“不再孤獨(dú)”,也看到了山外有山,人外有人。
(tRPC Oteam 生態(tài)日)
田甜就對(duì)此深有感慨:“我們以前的思維還是局限的,用技術(shù)解決業(yè)務(wù)需求后就覺(jué)得自己很牛,但有 Oteam 后,和其它團(tuán)隊(duì)交流時(shí)就會(huì)發(fā)現(xiàn),他們可能有更好的解決方案,通過(guò)交流和協(xié)作,不管是技術(shù)格局還是實(shí)操思路,都會(huì)上升一個(gè) level。”
統(tǒng)一代碼規(guī)范,就是程序員們的共識(shí)發(fā)展到一定程度后,自然而然達(dá)到的。
2207 行共享表格
2019 年 11 月,騰訊代碼規(guī)范 Oteam 正式成立,統(tǒng)一輸出各大編程語(yǔ)言的代碼規(guī)范,號(hào)召全公司的程序員都按照規(guī)范來(lái)寫(xiě)代碼。
要知道,讓程序員改變自己的代碼風(fēng)格是非常難的事情。
對(duì)于寫(xiě)代碼這項(xiàng)相對(duì)內(nèi)斂的工作來(lái)說(shuō),代碼的寫(xiě)作習(xí)慣仿佛是程序員們給自己默默留下的印記,甚至是與生俱來(lái)的個(gè)性標(biāo)簽,坊間不乏關(guān)于代碼“大神”寫(xiě)作習(xí)慣的各種傳說(shuō)。
但如果不同團(tuán)隊(duì)都把代碼拿出來(lái)協(xié)同開(kāi)發(fā),問(wèn)題就來(lái)了:代碼習(xí)慣不統(tǒng)一會(huì)帶來(lái)程序編碼混亂,極大增加多人協(xié)作的成本。而騰訊曾延續(xù)多年的產(chǎn)品“賽馬”機(jī)制,催生出許多業(yè)務(wù)相似的技術(shù)團(tuán)隊(duì),這些團(tuán)隊(duì)恰恰各有各的代碼習(xí)慣。
換句話說(shuō),即使騰訊內(nèi)部源代碼全部開(kāi)放了,不同團(tuán)隊(duì)之間協(xié)同開(kāi)發(fā)的效率還是會(huì)受到影響。
為了激發(fā)程序員們的動(dòng)力,開(kāi)源治理打榜賽應(yīng)運(yùn)而生。由代碼規(guī)范 Oteam 和騰訊負(fù)責(zé)開(kāi)源協(xié)同落地的技術(shù)工程事業(yè)群(簡(jiǎn)稱 TEG)運(yùn)營(yíng)管理部共同主辦,鼓勵(lì)各大事業(yè)群的技術(shù)團(tuán)隊(duì)來(lái)打榜,較量代碼規(guī)范度,比拼開(kāi)源治理分?jǐn)?shù)。
技術(shù)團(tuán)隊(duì)們的參賽熱情完全超出了主辦方的預(yù)期。姚穗斌是代碼規(guī)范 Oteam 的創(chuàng)始成員之一,一度為程序員不愿意配合代碼規(guī)范而煩惱,但這次他驚訝地看到,比賽公告剛貼出來(lái)沒(méi)多久,就有 60 多個(gè)部門(mén)主動(dòng)來(lái)打榜。
甚至有些參賽技術(shù)團(tuán)隊(duì)在企業(yè)微信中編寫(xiě)了“機(jī)器人”程序,每天提醒打榜賽的開(kāi)源治理分?jǐn)?shù)。
“一開(kāi)始很多團(tuán)隊(duì)的代碼得分不及格,打榜賽進(jìn)行幾個(gè)月后很多就躥到了 90 多分,最后竟然有 10 多個(gè)部門(mén)都拿到 100 分,我們只好數(shù)到小數(shù)點(diǎn)后兩位才評(píng)出冠軍。”姚穗斌說(shuō)。
(2020年開(kāi)源治理打榜賽頒獎(jiǎng)現(xiàn)場(chǎng))
打榜賽結(jié)束時(shí),騰訊各事業(yè)群的開(kāi)源治理平均分為 90.29 分。
而此前,在代碼規(guī)范 Oteam 對(duì)全公司代碼規(guī)范度的摸底調(diào)查統(tǒng)計(jì)中,各事業(yè)群的平均分僅 41.05 分,不及格。
姚穗斌認(rèn)為,開(kāi)源治理打榜賽徹底激發(fā)了程序員們參與代碼規(guī)范的熱情,一些原本不太關(guān)心代碼規(guī)范的技術(shù)團(tuán)隊(duì),在打榜賽中居然拿到了超高分?jǐn)?shù),“大家的勝負(fù)欲被點(diǎn)燃了”。
在主辦方騰訊運(yùn)營(yíng)管理部總監(jiān)徐海麗看來(lái),開(kāi)源治理打榜賽是開(kāi)源協(xié)同“新代碼文化”諸多工作的一個(gè)典型,它的價(jià)值在于幫助 Oteam 在公司內(nèi)外打造技術(shù)影響力,幫助程序員們找到更多存在感和榮譽(yù)感。
“2019 年底開(kāi)始,代碼規(guī)范、開(kāi)源治理逐漸成為我們推進(jìn)開(kāi)源協(xié)同落地的關(guān)鍵詞,這說(shuō)明我們的重點(diǎn)已經(jīng)不再是追求 Oteam 數(shù)量,而是開(kāi)源協(xié)同的質(zhì)量。”徐海麗說(shuō),“開(kāi)源協(xié)同走進(jìn)深水區(qū)了。”
在騰訊代碼規(guī)范 Oteam 最近一次成員招募中,許多參與者寫(xiě)出了近千字的申請(qǐng)說(shuō)明,活躍度大大超出了代碼規(guī)范 Oteam 評(píng)審委員的意料。
“原以為大家參與只是隨便填一填,沒(méi)想到熱情這么高。”評(píng)審委員姚穗斌說(shuō)。
參加招募的成員數(shù)量越來(lái)越多,騰訊文檔的共享表格很快更新到 207“樓”。有志于推動(dòng)公司代碼規(guī)范的程序員們可以自主報(bào)名,只要按照共享表格內(nèi)的要求逐一填入內(nèi)容,通過(guò)評(píng)審后就能成為代碼規(guī)范 Oteam 的一員。
一位參加申請(qǐng)的程序員在長(zhǎng)文建議中的第一句話就寫(xiě)道:“必須讓大家理解,好的程序員都是嚴(yán)格遵循代碼規(guī)范的,不能以扼殺創(chuàng)造性為借口不執(zhí)行!”
3還一個(gè)騰訊研發(fā)的英雄本色
“山外有山”是壓力也是動(dòng)力。
2020 年 12 月 29 日,騰訊召開(kāi)開(kāi)源協(xié)同峰會(huì),會(huì)上公布了各個(gè) Oteam 整體進(jìn)展的最新數(shù)據(jù),成績(jī)喜人。晚上酒會(huì)后,殷柱偉在 400 多人的 Oteam 企業(yè)微信群里發(fā)了一個(gè)大紅包。
伴隨著群里的沸騰,殷柱偉慷慨激昂地寫(xiě)道:“2021 年我們要還一個(gè)騰訊研發(fā)的英雄本色!”
(2020年開(kāi)源協(xié)同研討會(huì))
時(shí)任終端云測(cè) Oteam 負(fù)責(zé)人的殷柱偉,自 Oteam 成立時(shí)就堅(jiān)信,終端云測(cè)一定可以發(fā)展為公司級(jí)的技術(shù)項(xiàng)目。
“你的工具做得好,就會(huì)吸引越來(lái)越多的人來(lái)用,這背后其實(shí)不是說(shuō)明技術(shù)有多牛,而是你在操盤(pán)公司級(jí)項(xiàng)目時(shí)就必須要負(fù)起責(zé)任,要對(duì)得起越來(lái)越多的用戶,這是技術(shù)影響力和責(zé)任心的一種體現(xiàn)。”殷柱偉說(shuō)。
彈指三年,Oteam 給了殷柱偉們一份漂亮的答卷。
2018 年開(kāi)源協(xié)同宣布啟動(dòng)時(shí),這項(xiàng)騰訊的“自我革命”因其與眾不同的路徑遭受內(nèi)外雙重質(zhì)疑:互聯(lián)網(wǎng)大廠基本上靠組織驅(qū)動(dòng)建設(shè)技術(shù)中臺(tái),集中人、財(cái)、物、資源做一件事,而騰訊這種從基層開(kāi)放協(xié)同的路子,行得通嗎?
如今,騰訊已組建和孵化了 117 個(gè)開(kāi)源協(xié)同小組,涵蓋了計(jì)算、存儲(chǔ)、數(shù)據(jù)等所有互聯(lián)網(wǎng)技術(shù)基石,涉及了微信、QQ、騰訊云等所有騰訊核心業(yè)務(wù)板塊。全公司內(nèi)部代碼開(kāi)源率達(dá)到 85%,不僅給騰訊帶來(lái)巨大的效能提升和成本節(jié)約,同時(shí)通過(guò)云不斷助力越來(lái)越多的生態(tài)伙伴。
致力于大數(shù)據(jù)領(lǐng)域的天穹 Oteam,將各 BG 的大數(shù)據(jù)最佳實(shí)踐復(fù)制到了各個(gè)場(chǎng)景,實(shí)現(xiàn)平臺(tái)互通,功能復(fù)用,大幅提升了通用性能與資源利用率。
分布式數(shù)據(jù)庫(kù)的內(nèi)核 TXSQL Oteam 在 TXSQL 8.0 內(nèi)核上開(kāi)源協(xié)同,聯(lián)合研發(fā)數(shù)十個(gè)重大特性,性能提升 30% 以上,并實(shí)現(xiàn)了騰訊內(nèi)部數(shù)據(jù)庫(kù)內(nèi)核版本的統(tǒng)一。
聚焦深度學(xué)習(xí)框架和加速的云帆 Oteam,曾 2 次刷新 ImageNet 訓(xùn)練速度世界紀(jì)錄,致力于打造騰訊人的 AI OS,助力游戲、視覺(jué)、推薦等 AI 業(yè)務(wù)降本增效。
(2021云帆Oteam生態(tài)日)
在技術(shù)影響力的基礎(chǔ)上,一些開(kāi)源協(xié)同項(xiàng)目開(kāi)始上云,通過(guò)騰訊云對(duì)外輸出技術(shù)能力,與行業(yè)共享技術(shù)成果。Tencent JDK Oteam 則全面融入到公司的公有云和專(zhuān)有云產(chǎn)品中。
“Oteam 給了我們更大的空間。”騰訊代碼規(guī)范 Oteam C++ 接口人、IEG 增長(zhǎng)平臺(tái)部增長(zhǎng)中心系統(tǒng)開(kāi)發(fā)組陳峰表示。
有了 Oteam 后,他主導(dǎo)的代碼規(guī)范 Oteam C++ 團(tuán)隊(duì)就有了調(diào)動(dòng)全公司資源的能力,進(jìn)一步提升了產(chǎn)品能力,這樣的成就感最終反過(guò)來(lái)反哺了參與人,形成正向循環(huán)。
在成立代碼規(guī)范 Oteam 后,騰訊在一年內(nèi)推動(dòng)了 7 門(mén)編碼語(yǔ)言的規(guī)范化。一位在代碼規(guī)范領(lǐng)域工作多年的資深專(zhuān)家剛?cè)肼汄v訊不久就對(duì)此發(fā)出了感嘆:“騰訊在搞什么?一年對(duì)這么多門(mén)語(yǔ)言做規(guī)范化,簡(jiǎn)直不可能!”
但“不可能”的事情還是發(fā)生了,最新數(shù)據(jù)顯示,截至目前代碼規(guī)范 Oteam 已輸出 C++、Java、Python 等 13 門(mén)語(yǔ)言代碼規(guī)范,其中一期 7 門(mén)語(yǔ)言代碼規(guī)范及安全規(guī)范已通過(guò)開(kāi)源治理體系在全公司范圍內(nèi)落地。
當(dāng)初聽(tīng)到代碼規(guī)范專(zhuān)家的感嘆時(shí),姚穗斌雖然內(nèi)心咯噔一下,但還是覺(jué)得騰訊是可以做到,最終事實(shí)證明他的判斷是對(duì)的。
“騰訊確實(shí)有把不可能變成可能的能力。”十年程序員“老鵝”姚穗斌說(shuō)。
激發(fā)了程序員這一最小技術(shù)單元的力量,就可以撬動(dòng)研發(fā)效率的顯著提升和研發(fā)效果的最大化。經(jīng)過(guò)這不尋常的三年,騰訊這場(chǎng)實(shí)驗(yàn)可以說(shuō)實(shí)現(xiàn)了“四兩撥千斤”的作用。
而技術(shù)人的理想,正在其中閃閃發(fā)光。
騰訊 ThumbPlayer Oteam 之所以被冠名 Thumb,表面上看是“騰訊高性能通用媒體平臺(tái)”的英文首字母縮寫(xiě),背后卻暗含著 Oteam 成員們對(duì)理想主義的向往——thumb 的中文意思是大拇指,Oteam 要做的不僅僅是一個(gè)播放器產(chǎn)品,而是要對(duì)標(biāo)業(yè)界 No.1 的開(kāi)源社區(qū)。
“希望每個(gè)成員都把加入這個(gè) Oteam 和在這個(gè) Oteam 做過(guò)貢獻(xiàn),視為自己職業(yè)履歷中 No.1 的亮點(diǎn)。”ThumbPlayer Oteam 負(fù)責(zé)人、程序員李大龍說(shuō)道。
(完)
阿里云正式開(kāi)源PolarDB-X數(shù)據(jù)庫(kù),曾歷經(jīng)各屆雙11考驗(yàn),現(xiàn)已登陸 GitHub 程序員發(fā)起“公司作息表”火到被舉報(bào),涵蓋1300+公司;騰訊2022校招薪資首發(fā),白菜總包接近40萬(wàn) | Q資訊 GitLab終于上市!搶跑 GitHub,程序員出身的激進(jìn)CEO成億萬(wàn)富翁 二十年老程序員的二十條心得:面試幾乎沒(méi)用,警惕很久沒(méi)寫(xiě)過(guò)代碼的“大牛”
活動(dòng)推薦
達(dá)摩院發(fā)布的 2020 十大技術(shù)趨勢(shì)中提到,未來(lái)人工智能熱潮能否進(jìn)一步打開(kāi)天花板,形成更大的產(chǎn)業(yè)規(guī)模,認(rèn)知智能的突破是關(guān)鍵。從人工智能 1.0 感知智能向人工智能 2.0 認(rèn)知智能演進(jìn)過(guò)程中,圖神經(jīng)網(wǎng)絡(luò)和知識(shí)圖譜等起到了非常關(guān)鍵的作用。
榜單收錄、高管收錄、融資收錄、活動(dòng)收錄可發(fā)送郵件至news#citmt.cn(把#換成@)。
海報(bào)生成中...