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