以前同學(xué)聚會(huì)都問(wèn)他“還在編代碼?。俊?,現(xiàn)在不問(wèn)了,因?yàn)椤?/h1>
一指流沙,程序年華
時(shí)間就像指間握不住的流沙,靜靜從身邊溜走。
這些年來(lái),我所從事的工作領(lǐng)域在變化,所使用的技術(shù)在變化,經(jīng)歷過(guò)一線比拼的激情,持續(xù)熬夜的艱辛,產(chǎn)品上線的喜悅,一直在公司從事基層研發(fā)工作。人生就像自己編寫的程序,在程序化地運(yùn)行著,但能在最好的年華,做自己最熱愛(ài)的事,于我是一種幸福。
01
有了電腦后的“放飛”
上世紀(jì)90年代,爸爸單位用電腦記賬,我覺(jué)得很是神奇,買不起電腦就買了個(gè)學(xué)習(xí)機(jī),按照說(shuō)明書,用GBASIC語(yǔ)言輸出滿屏各種形狀的圖形,心中被巨大的喜悅填滿,開(kāi)始了編程的啟蒙。高考那年,又被《第一次親密接觸》中互聯(lián)網(wǎng)的橋段吸引,毫不猶豫報(bào)了計(jì)算機(jī)專業(yè),但遺憾被調(diào)劑到信息管理專業(yè),這兩個(gè)專業(yè)之間關(guān)系不大,我與編程失之交臂了。
大一下學(xué)期買了電腦后,我開(kāi)始“放飛”自己,各種操作系統(tǒng)只要出新的版本,我就會(huì)重裝體驗(yàn),此外就是打游戲,或者“泡”論壇,漸漸發(fā)現(xiàn)編程的樂(lè)趣,之后就在編碼的路上停不下來(lái)了。參加過(guò)學(xué)校計(jì)算機(jī)編程比賽獲三等獎(jiǎng),和室友一起搭建系里的網(wǎng)站,大學(xué)畢業(yè)去了一家互聯(lián)網(wǎng)公司做程序員,直到2005年,我有幸加入華為,一晃已經(jīng)十三年了。
02
因挑戰(zhàn)才能快速成長(zhǎng)
來(lái)到華為之后,我才發(fā)現(xiàn)編程之外有一個(gè)更大的世界——一套業(yè)務(wù)與體系化的技術(shù)。外部形勢(shì)與內(nèi)部因素持續(xù)都在變化,對(duì)業(yè)務(wù)與技能的要求變化太快,我?guī)缀鯐r(shí)時(shí)刻刻都面臨著挑戰(zhàn)。
2008年,我們啟動(dòng)了下一代智能網(wǎng)平臺(tái)的開(kāi)發(fā),當(dāng)時(shí)智能網(wǎng)產(chǎn)品剛進(jìn)入歐洲市場(chǎng)。版本剛開(kāi)發(fā)不久,質(zhì)量不穩(wěn)定,經(jīng)常出現(xiàn)宕機(jī)。在項(xiàng)目緊急關(guān)頭,開(kāi)發(fā)代表找到我,讓原本做消息平臺(tái)的我轉(zhuǎn)做話音平臺(tái)。一開(kāi)始我是想拒絕的,話音的信令協(xié)議我從來(lái)沒(méi)接觸過(guò),而且我對(duì)產(chǎn)品的代碼一無(wú)所知,更遑論解決問(wèn)題。
抱著先做做看的想法還是同意了,不熟悉信令協(xié)議,我就把協(xié)議規(guī)范打印出來(lái)當(dāng)成案頭書來(lái)讀,和業(yè)務(wù)的兄弟一起開(kāi)發(fā)業(yè)務(wù),定位解決問(wèn)題,讓我漸漸熟悉信令協(xié)議;面對(duì)宕機(jī)的問(wèn)題,尤其遇到地址空間完全破壞的情況,“瘋狂”學(xué)習(xí)匯編指令來(lái)提升定位問(wèn)題的能力。記得當(dāng)時(shí)與一位同事同住坂田市場(chǎng)附近,每天下班回家的路上,我們都會(huì)一起討論今天遇到什么問(wèn)題,要怎么解決,要是找到解決的辦法,有時(shí)甚至興奮得睡不著。
從宕機(jī)的泥潭中走出來(lái)后,又遇產(chǎn)品在歐洲比拼測(cè)試,客戶明確提出了穩(wěn)定性與性能測(cè)試的訴求,領(lǐng)導(dǎo)再次安排我負(fù)責(zé)性能提升的攻關(guān)。我非常擔(dān)心搞不定,一是時(shí)間很緊,離客戶驗(yàn)收只有兩個(gè)多月,二是我還沒(méi)有非常熟悉整個(gè)系統(tǒng)的代碼。性能提升不僅涉及到編碼細(xì)節(jié)的優(yōu)化,還要梳理業(yè)務(wù)流程與模塊邊界問(wèn)題,好在領(lǐng)導(dǎo)給了我“一雙翅膀”,我?guī)е幻麥y(cè)試與一名開(kāi)發(fā)兄弟,開(kāi)始溝通與制定測(cè)試和優(yōu)化計(jì)劃。在計(jì)劃上,白天我們?nèi)耐度敕治銮耙煌淼臏y(cè)試數(shù)據(jù)與優(yōu)化代碼,晚上用機(jī)器持續(xù)測(cè)試穩(wěn)定性;在優(yōu)化實(shí)施上,采用2/8原則,先解決優(yōu)先級(jí)在前20%的問(wèn)題,20%的問(wèn)題大都能提升80%的性能。經(jīng)過(guò)一多月的努力,產(chǎn)品的72小時(shí)穩(wěn)定性呼叫各指標(biāo)表現(xiàn)平穩(wěn),基準(zhǔn)流程CAPS(每秒試呼次數(shù))從原來(lái)每塊單板100+提升到1300。
做完優(yōu)化之后,我立即出差歐洲參與驗(yàn)證。一開(kāi)始我沒(méi)有經(jīng)驗(yàn),草率地拿出自研的測(cè)試工具給了我們的測(cè)試數(shù)據(jù),但友商的系統(tǒng)CAPS剛破百,客戶自己的測(cè)試工具最高也只能到200多,嚴(yán)謹(jǐn)?shù)目蛻魬岩蓴?shù)據(jù)的真實(shí)性。我對(duì)我們的數(shù)據(jù)很有信心,于是嘗試和客戶溝通,對(duì)接實(shí)驗(yàn)室核心網(wǎng)設(shè)備,客戶的測(cè)試工具以及我們的自研測(cè)試工具,一起呼叫測(cè)試。在長(zhǎng)時(shí)間的穩(wěn)定性測(cè)試過(guò)程中,即使增加到130%呼叫量的壓力測(cè)試,我們的產(chǎn)品表現(xiàn)一直穩(wěn)定如初。我還記得,驗(yàn)證完成的那個(gè)下午,客戶當(dāng)場(chǎng)對(duì)我們豎起了大拇指。在團(tuán)隊(duì)共同的努力下,華為最終拿下TLF三國(guó)子網(wǎng)的合同,這也是我們軟件業(yè)務(wù)第一次交付歐洲客戶。
努力與付出贏得了信任,讓我有更多的機(jī)會(huì)去接觸新的挑戰(zhàn),有了更多的成長(zhǎng)機(jī)會(huì)。后來(lái)產(chǎn)品在歐洲大T不斷地比拼測(cè)試和交付,都有我的參與。在VDF,與友商的核心網(wǎng)對(duì)接,發(fā)現(xiàn)我們系統(tǒng)的SIP協(xié)議連接轉(zhuǎn)換功能缺失,一周內(nèi)我瘋狂寫代碼,成功對(duì)接上并調(diào)通業(yè)務(wù)流程。在DT,在一個(gè)月時(shí)間內(nèi)獨(dú)自完成了版本從Linux到PC的版本輕量化移植,解決客戶在PC上一站式業(yè)務(wù)開(kāi)發(fā)與調(diào)測(cè)訴求,獲得客戶認(rèn)可……
03
越努力,越從容
2011年我們啟動(dòng)了新的虛擬化、云化支撐平臺(tái)項(xiàng)目,曾經(jīng)一起共事的領(lǐng)導(dǎo)點(diǎn)名讓我參加新項(xiàng)目。改變對(duì)我來(lái)說(shuō),從來(lái)都不是事兒,這一次我還是選擇了繼續(xù)挑戰(zhàn)自己。但轉(zhuǎn)變也帶給了我可能無(wú)法勝任工作的危機(jī)感,這讓我從來(lái)不敢放松自己,而唯一能緩解危機(jī)感的方法就是增強(qiáng)應(yīng)對(duì)實(shí)際困難的知識(shí)與技能。
從無(wú)到有構(gòu)建項(xiàng)目中多個(gè)模塊,開(kāi)發(fā)基礎(chǔ)框架來(lái)考慮提升團(tuán)隊(duì)開(kāi)發(fā)效率,幫助大家解決很多技術(shù)問(wèn)題,慢慢地團(tuán)隊(duì)內(nèi)有人開(kāi)始稱我為“大俠”。但在我看來(lái),做一個(gè)“大俠”,不僅僅是大家認(rèn)為的“能力強(qiáng),效率高”,那充其量只是個(gè)人貢獻(xiàn),更重要的是能帶動(dòng)團(tuán)隊(duì)成員一起成長(zhǎng)。無(wú)論身處什么崗位,我都會(huì)在團(tuán)隊(duì)內(nèi)積極總結(jié)和分享。迄今為止,我在Hi3MS上分享了180多篇技術(shù)博文,整理過(guò)三十頁(yè)編碼最佳實(shí)踐來(lái)指導(dǎo)團(tuán)隊(duì)開(kāi)發(fā)。這一過(guò)程可以督促我不斷完善想法,加深認(rèn)識(shí),而且也可以傳承知識(shí),這可能遠(yuǎn)甚于寫代碼本身。
除了自我學(xué)習(xí)和總結(jié),面對(duì)層出不窮的知識(shí),做技術(shù)的人更不可閉門造車,盲目自信,而是要多從業(yè)界“喝咖啡”吸收宇宙能量。2012年,我們基于開(kāi)源CMDB(配置管理數(shù)據(jù)庫(kù))構(gòu)建了網(wǎng)絡(luò)拓?fù)浞?wù),能端到端開(kāi)通業(yè)務(wù)虛擬機(jī)組網(wǎng)下的網(wǎng)絡(luò)配置,成功應(yīng)用在某局點(diǎn);2013年,我們研究TOSCA (云應(yīng)用拓?fù)渚幣牛┮?guī)范,把它引入標(biāo)準(zhǔn)化圖形化拓?fù)渚幣?,?jiǎn)化了編排模型……
成功不是未來(lái)前進(jìn)的可靠向?qū)?,?duì)軟件來(lái)說(shuō)亦然,曾經(jīng)優(yōu)秀的技術(shù)也可能成為架構(gòu)演進(jìn)的絆腳石。2014年以前,我們的開(kāi)發(fā)框架是OSGi,它的模塊化,面向接口編程模式曾為我們帶來(lái)開(kāi)發(fā)便利。我一度很喜愛(ài),但是由于它生態(tài)式微,越來(lái)越多的第三方組件不再支持,我們使用成本越來(lái)越高,反倒成了歷史技術(shù)債務(wù),團(tuán)隊(duì)內(nèi)也因此多次爭(zhēng)論它的去留。2015年初我作為負(fù)責(zé)人,帶隊(duì)漸進(jìn)式地引入微服務(wù)框架替換了OSGi,提升了團(tuán)隊(duì)并行開(kāi)發(fā)效率。
軟件設(shè)計(jì)是一個(gè)不斷打磨不斷完善的過(guò)程,技術(shù)的提升更多需要親身的實(shí)踐。我做方案設(shè)計(jì)時(shí),都會(huì)參與框架與核心代碼的編寫,也只有深入其中,才會(huì)知道其中的關(guān)鍵點(diǎn),才能更好地解決問(wèn)題。從2014年開(kāi)始,我設(shè)計(jì)并編寫了項(xiàng)目中調(diào)度控制部件的任務(wù)編排框架的代碼,從支撐某局點(diǎn)業(yè)務(wù)的一百多虛擬機(jī)節(jié)點(diǎn)并發(fā),優(yōu)化到上千虛擬機(jī)節(jié)點(diǎn)并發(fā)……
多一份努力,就多一分收獲。就這樣在點(diǎn)點(diǎn)滴滴實(shí)戰(zhàn)中,一路堅(jiān)持下來(lái),像玩游戲打怪升級(jí)技術(shù)點(diǎn)一樣,我積累了非常多的技術(shù)經(jīng)驗(yàn),不管是面對(duì)技術(shù)方案還是技術(shù)實(shí)現(xiàn),都多了一些從容。
04
誠(chéng)于己,心得其宜
除了日常工作,我算得上是一個(gè)編程語(yǔ)言控了。寫過(guò)種菜游戲的自動(dòng)偷菜外掛,刷過(guò)手機(jī)多個(gè)版本,幫老婆微商寫過(guò)小微記賬App,可同時(shí)支持安卓與iOS……即使現(xiàn)在,每種語(yǔ)言流行時(shí),我下班回到家只要有時(shí)間都會(huì)“練手”,關(guān)注其生態(tài)框架,還涉獵過(guò)Typescript、Go、 Rust、Scala,雖談不上樣樣精通,但每每有新項(xiàng)目涉及到新語(yǔ)言與框架的應(yīng)用,對(duì)我來(lái)說(shuō)都不是一件太難的事。
我們就像一粒粒種子,因?yàn)橛兄鴮?duì)外面世界的好奇,才能從土壤中探出頭來(lái),親眼見(jiàn)證這個(gè)美好的世界。這也是我堅(jiān)持走技術(shù)路線的內(nèi)在驅(qū)動(dòng)力,是我在成長(zhǎng)中能不斷適應(yīng)變化的關(guān)鍵所在。
如今我大學(xué)畢業(yè)十多年了,以前同學(xué)聚會(huì)被問(wèn)得最多的問(wèn)題是“你還在華為?。?/span>”“還在寫代碼?。?/span>”,現(xiàn)在大家已經(jīng)不問(wèn)了,因?yàn)樗麄冎牢易銐驘釔?ài),不會(huì)輕易放棄。
從2016年到2018年初,軟件組織結(jié)構(gòu)經(jīng)歷了多次調(diào)整。看著身邊的同事,曾經(jīng)帶過(guò)的徒弟奔赴到新崗位,說(shuō)實(shí)話,內(nèi)心彷徨過(guò)。自己的轉(zhuǎn)身在哪里?自己的追求是什么?要不要去新的領(lǐng)域開(kāi)始新的挑戰(zhàn)?我和很多留在軟件的兄弟聊天,我們一致認(rèn)為,軟件一直存在新技術(shù)新業(yè)務(wù)的土壤,也曾是創(chuàng)新的推手。對(duì)于喜歡鉆研技術(shù)的我們而言,組織的調(diào)整對(duì)我們影響不大,經(jīng)過(guò)這次的變革,大家更加務(wù)實(shí),我們有更多的時(shí)間來(lái)編寫熱愛(ài)的代碼。能在一個(gè)環(huán)境中安心做自己喜歡的事,誠(chéng)于己,心得其宜,這就是我的情懷。
軟件需要傳承,也需要積累。今天萬(wàn)物互聯(lián)與人工智能已至,軟件新的機(jī)會(huì)窗口已打開(kāi)。去年末,我有幸和同事按需構(gòu)建部分公共服務(wù)能力,開(kāi)始支撐業(yè)務(wù)SaaS化探索。現(xiàn)在我又有幸開(kāi)始參與構(gòu)建一些智能運(yùn)營(yíng)數(shù)據(jù)分析的技術(shù)儲(chǔ)備。在產(chǎn)業(yè)互聯(lián)網(wǎng)這一條新的賽道上,雖然我們是后來(lái)的學(xué)習(xí)者,但我們?yōu)榭蛻艚鉀Q業(yè)務(wù)問(wèn)題的能力從來(lái)不缺。能力源于專業(yè)的技術(shù)積累,核心競(jìng)爭(zhēng)力源于關(guān)鍵技術(shù)突破,新的賽道上也就不缺技術(shù)人員的用武之地。
不記得自己何時(shí)把“一指流沙,程序年華”作為eSpace簽名,當(dāng)寫下這句話時(shí),我清楚地知道,我將會(huì)在技術(shù)這條路上堅(jiān)定而持續(xù)地走下去。感謝公司為我提供了廣闊的平臺(tái),但我還遠(yuǎn)遠(yuǎn)不夠優(yōu)秀,需要不斷學(xué)習(xí)與提升。軟件開(kāi)發(fā)從來(lái)沒(méi)有標(biāo)準(zhǔn)可以遵循,過(guò)程與結(jié)果充滿不確定性,現(xiàn)在的產(chǎn)品也沒(méi)有引領(lǐng)世界,我們還須繼續(xù)努力。始于初心,保持好奇心,堅(jiān)定恒心,我相信方向已越來(lái)越清晰,在前進(jìn)的道路上,擺正自己的心態(tài),我將繼續(xù)為軟件業(yè)務(wù)貢獻(xiàn)微薄之力。