偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

寫(xiě)了十幾年代碼,我為什么還沒(méi)有被拿去“祭天”?

新聞
十幾年來(lái),我一直堅(jiān)持在編碼崗位,經(jīng)歷了普通開(kāi)發(fā)人員、TL、MDE、MDEL、SDM(云化團(tuán)隊(duì))、Committer、軟件專(zhuān)家等各種崗位。然而我卻深知,不算大牛的我,從事編碼這個(gè)“高危”職業(yè)十幾年而沒(méi)有被拿去“祭天”,依靠的是一個(gè)程序員的自我修養(yǎng)——扎實(shí)的基礎(chǔ)軟件能力、如履薄冰的工作態(tài)度、對(duì)技術(shù)孜孜不倦的追求。

一天晚上,我和老婆聊天,說(shuō)部門(mén)要我寫(xiě)個(gè)“大咖談軟件”的文章,老婆斜了我一眼,淡淡地說(shuō):“Linus大神21歲就寫(xiě)出了Linux內(nèi)核的雛形,締造了一個(gè)自由主義的開(kāi)源世界;張小龍28歲寫(xiě)出了foxmail,在2000年就賣(mài)出了1200萬(wàn)的價(jià)格。大咖,認(rèn)識(shí)您這么久了,還不太了解您有什么杰出的成就?”我訕訕地咽了口水:“好吧,我重新組織下語(yǔ)言,我需要寫(xiě)個(gè)談軟件的文章……”

回首過(guò)去這半年,軟件總工、軟件專(zhuān)家的任命,還有新年伊始任總《全面提升軟件工程能力,打造可信的高質(zhì)量產(chǎn)品》的發(fā)文,都讓我們這些寫(xiě)了十多年代碼的軟件工程師激動(dòng)不已。我2006年進(jìn)入公司,幾乎參與了華為3G控制器產(chǎn)品的完整生命周期,見(jiàn)證了華為3G從起步、上升、靈魂深處的改進(jìn)、***、回落的波瀾壯闊歷程,并在35歲“高齡”有幸加入到5G開(kāi)發(fā)部的大家庭。

十幾年來(lái),我一直堅(jiān)持在編碼崗位,經(jīng)歷了普通開(kāi)發(fā)人員、TL、MDE、MDEL、SDM(云化團(tuán)隊(duì))、Committer、軟件專(zhuān)家等各種崗位。然而我卻深知,不算大牛的我,從事編碼這個(gè)“高危”職業(yè)十幾年而沒(méi)有被拿去“祭天”,依靠的是一個(gè)程序員的自我修養(yǎng)——扎實(shí)的基礎(chǔ)軟件能力、如履薄冰的工作態(tài)度、對(duì)技術(shù)孜孜不倦的追求。

1、好代碼長(zhǎng)什么模樣?

記得幾年前部門(mén)***次評(píng)選優(yōu)秀代碼,我成為“金碼獎(jiǎng)”獲得者之一。是因?yàn)榇a很炫嗎?并不是。我參與評(píng)選的代碼,遵循著簡(jiǎn)單的原則:簡(jiǎn)潔、邏輯清晰、函數(shù)職責(zé)單一、合理的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。并沒(méi)有使用高深的編碼技巧,也沒(méi)有應(yīng)用某某設(shè)計(jì)模式。正如公司***的C/C++語(yǔ)言編程規(guī)范,也是將編寫(xiě)簡(jiǎn)潔的程序放在首位。簡(jiǎn)潔、邏輯清晰的代碼,易于閱讀和維護(hù),這段代碼后面也因需求變化而被修改,但卻從來(lái)沒(méi)有引入過(guò)網(wǎng)上問(wèn)題。

當(dāng)然,簡(jiǎn)單不代表沒(méi)有思考,恰恰相反,更需要我們?cè)趯?xiě)代碼之前謀定而后動(dòng)、三思而后行。有一次項(xiàng)目組安排我做性能優(yōu)化,通過(guò)反復(fù)分析熱點(diǎn)函數(shù)、反復(fù)測(cè)試比對(duì)不同話(huà)務(wù)模型下的性能差異,前前后后花了3個(gè)星期的時(shí)間,我找到了引起性能惡化的最關(guān)鍵因素。最終我決定采用修改備份機(jī)制、減小備份數(shù)據(jù)的優(yōu)化措施。這些方案代碼改動(dòng)都很小、很簡(jiǎn)單,但實(shí)際優(yōu)化效果卻很好,滿(mǎn)足了未來(lái)幾年業(yè)務(wù)發(fā)展的需求。

再來(lái)看另一個(gè)例子,某局點(diǎn)升級(jí)新版本后出現(xiàn)CPU負(fù)載上升的問(wèn)題。經(jīng)過(guò)近兩周的攻關(guān),我最終定位是新版本在業(yè)務(wù)處理流程中新增了直接讀取DB內(nèi)核的操作。直接讀取DB內(nèi)核,代碼處理簡(jiǎn)單,也能正常實(shí)現(xiàn)業(yè)務(wù)功能,但是性能卻非常差。如果開(kāi)發(fā)過(guò)程中能多想一步,采用緩存的方案,性能會(huì)有天壤之別,也是更好的代碼。

人們常說(shuō)唯一不變的就是變化,客戶(hù)需求一直在變化,我們的代碼也會(huì)被動(dòng)或者主動(dòng)地在變化。設(shè)計(jì)出可擴(kuò)展、自動(dòng)適應(yīng)客戶(hù)需求變化的軟件架構(gòu),是軟件工程師永恒的追求。這說(shuō)說(shuō)容易,做起來(lái)卻很難。需要我們不停積累業(yè)務(wù)知識(shí),擴(kuò)展知識(shí)面,勤于思考,識(shí)別技術(shù)未來(lái)演進(jìn)趨勢(shì)。我們無(wú)法從一開(kāi)始就做一個(gè)無(wú)所不能的架構(gòu),來(lái)包含未來(lái)的千變?nèi)f化,即使能,交付節(jié)奏也不一定允許。滿(mǎn)足當(dāng)前及未來(lái)一定時(shí)間內(nèi)業(yè)務(wù)需要的設(shè)計(jì),或許就是最合適的。

2、練好扎實(shí)的基本功

能寫(xiě)出好代碼,更要能持續(xù)地寫(xiě)出好代碼,需要我們深刻理解技術(shù)原理和業(yè)務(wù)邏輯。前提是具備扎實(shí)的編程基礎(chǔ),即基礎(chǔ)軟件能力,如基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和算法、編譯原理等。

去年底,我跟部門(mén)幾個(gè)軟件高手一起,去外部參加了一次互聯(lián)網(wǎng)架構(gòu)大會(huì)。AI、區(qū)塊鏈、物聯(lián)網(wǎng)、云、中間件等時(shí)尚、熱點(diǎn)、風(fēng)口相關(guān)的議題非常多。但是我沒(méi)想到,最火爆的卻是一些基礎(chǔ)軟件設(shè)計(jì)、架構(gòu)設(shè)計(jì)和演進(jìn)之類(lèi)的專(zhuān)題。就像武俠小說(shuō)寫(xiě)的一樣,練好基本功、練好內(nèi)功,后續(xù)無(wú)論什么精妙招式,都會(huì)信手拈來(lái)。

另外,一些編程習(xí)慣,如果堅(jiān)持下去,對(duì)于編程修養(yǎng)提升也是非常有用的。比如快捷鍵的使用、有效的代碼注釋、命名規(guī)則、代碼風(fēng)格等。每次寫(xiě)代碼除了追求好代碼之外,我都會(huì)時(shí)刻去思考軟件上的優(yōu)化,能否能使用更少的內(nèi)存,能否有更好的性能。重視數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)字段,重視每一處小的代碼優(yōu)化,都有可能給我們帶來(lái)意想不到的收獲。比如去年做性能優(yōu)化,我們僅僅是將流程中的一處動(dòng)態(tài)內(nèi)存申請(qǐng)修改為靜態(tài)內(nèi)存池,卻意外獲得了30 CAPS(每秒呼叫次數(shù))的性能提升。

 

[[262470]]

▲團(tuán)隊(duì)合影

3、一行代碼引發(fā)的慘案

有人問(wèn),道理我都懂,為什么卻依然寫(xiě)不出好代碼?

很多開(kāi)發(fā)人員,因?yàn)閭€(gè)人習(xí)慣、趕工期、外部要求不高等多種原因,在編程時(shí)特別隨意,直接Copy-Paste。我覺(jué)得程序員應(yīng)當(dāng)像追求生活品質(zhì)一樣,養(yǎng)成不將就的編程習(xí)慣、嚴(yán)謹(jǐn)?shù)木幊虘B(tài)度。

對(duì)于代碼上庫(kù),我一直都是戰(zhàn)戰(zhàn)兢兢,如履薄冰。上庫(kù)前我會(huì)反復(fù)看自己修改的代碼,看修改代碼的上下文,并進(jìn)行修改前后代碼比對(duì)。代碼上庫(kù)后再看幾遍,確保都已按預(yù)期合入。進(jìn)入公司這么多年,自己從來(lái)沒(méi)有多合、漏合、錯(cuò)合過(guò)任何一行代碼。

大家可能會(huì)覺(jué)得我這是小題大做,但事實(shí)上,這都是歷史上曾經(jīng)發(fā)生過(guò)的慘痛教訓(xùn)。我們?cè)谀硣?guó)升級(jí)新版本后發(fā)現(xiàn)用戶(hù)接入成功率惡化,***定位是由于一行代碼被誤刪除導(dǎo)致的。事后回溯,開(kāi)發(fā)人員自己都不記得這一行代碼為什么會(huì)被刪除。還有一次,一行代碼被誤刪除,導(dǎo)致一個(gè)關(guān)鍵KPI指標(biāo):軟切換統(tǒng)計(jì)次數(shù)有變更。部門(mén)把這兩起事件總結(jié)為“一行代碼引發(fā)的慘案”,無(wú)論是對(duì)產(chǎn)品品牌、客戶(hù)印象、還是對(duì)于個(gè)人,都造成了惡劣的影響。

事后大家都在思考,我們有結(jié)對(duì)編程、代碼檢視、開(kāi)發(fā)者自測(cè)試等非常完善的開(kāi)發(fā)流程,還有MDE(模塊設(shè)計(jì)師)檢視作為代碼上庫(kù)前的“守門(mén)員”,為什么還會(huì)發(fā)生這么低級(jí)的錯(cuò)誤?是流程沒(méi)執(zhí)行到位,還是MDE疏忽、沒(méi)把好關(guān)?

在IPD 2.0變革中,公司借鑒開(kāi)源組織的Committer運(yùn)作,來(lái)加強(qiáng)我們的Committer機(jī)制和文化。5G開(kāi)發(fā)部也選拔、任命了一批Committer,我有幸成為其中之一。剛開(kāi)始履行Committer職責(zé)時(shí),我有點(diǎn)疑惑:這不就是給MDE角色披上了新的外衣,把MDE原先“私下”做的事情,通過(guò)Committer統(tǒng)計(jì)數(shù)據(jù)給呈現(xiàn)出來(lái)嘛?

不過(guò),經(jīng)過(guò)幾個(gè)月的摸索、實(shí)踐后,我漸漸地明白,Committer機(jī)制應(yīng)該是一種文化上的變革,牽引大家提升自己的軟件能力。Committer的職責(zé)很多,作為代碼提交前的***一道關(guān)卡,這是在當(dāng)前人員能力不足階段有效果,但是最終應(yīng)該被弱化的一項(xiàng)實(shí)踐。參與編碼前的軟件設(shè)計(jì)、持續(xù)做好架構(gòu)看護(hù)和技術(shù)債務(wù)清理,讓大家都有更大的機(jī)會(huì)寫(xiě)出更好的代碼,我認(rèn)為這是Committer更大的價(jià)值。

隨著個(gè)人和組織的軟件工程能力提升,自動(dòng)化測(cè)試防護(hù)網(wǎng)和變更防護(hù)墻建設(shè)完善之后,前面提到的“一行代碼引起的慘案”,是可以避免的。

4、“變更防護(hù)墻”夠不夠可靠?

對(duì)于大部分老員工,特別是無(wú)線(xiàn)2G/3G/4G等部門(mén)的老員工來(lái)說(shuō),一提到變更控制,都會(huì)如臨大敵。版本升級(jí)后,KPI變差是絕對(duì)不允許的,嚴(yán)重時(shí)可能面臨版本回退、客戶(hù)投訴和上報(bào)事故。而KPI變好,除了要向客戶(hù)解釋?zhuān)€有可能面臨商務(wù)風(fēng)險(xiǎn),客戶(hù)會(huì)覺(jué)得之前吃虧了?,F(xiàn)實(shí)世界對(duì)我們就是這么苛刻,誰(shuí)讓我們是影響世界的通信軟件工程師呢,他們這是愛(ài)之深、責(zé)之切啊!

我們開(kāi)發(fā)一個(gè)版本,動(dòng)輒涉及幾十萬(wàn)代碼的新增、修改或重構(gòu)。要想不引入變更問(wèn)題,除了做好設(shè)計(jì)、結(jié)對(duì)編碼、代碼檢視和測(cè)試之外,我認(rèn)為最關(guān)鍵的就是完善的自動(dòng)化防護(hù)網(wǎng)。在3G時(shí),我?guī)е鴥蓚€(gè)同事將IT測(cè)試工程從只有幾百個(gè)用例擴(kuò)充到上萬(wàn)個(gè)用例。全方位的場(chǎng)景覆蓋、嚴(yán)密的信元有效性檢查、完善的用例失敗判決機(jī)制、無(wú)死角的資源泄漏檢查等手段,讓變更錯(cuò)誤無(wú)所遁形,給3G留下了一道變更防護(hù)墻。

開(kāi)發(fā)過(guò)程中補(bǔ)充IT和PC-ST測(cè)試用例,不是為了提升代碼覆蓋率,而是為了自動(dòng)化防護(hù)。而要能達(dá)成自動(dòng)化防護(hù)的前提,是每個(gè)用例都具備完善的有效性檢查,否則防護(hù)網(wǎng)就是形同虛設(shè)。幾年前,我跟一個(gè)同事開(kāi)玩笑:“我會(huì)故意將某行代碼改錯(cuò),看看你補(bǔ)充的用例是否能檢查出來(lái)。”讓我意外的是,在交付緊張的情況下,他仍然多花了半天時(shí)間完善用例有效性檢查,并請(qǐng)我故意改錯(cuò)代碼來(lái)做試驗(yàn)。當(dāng)然,最終的結(jié)果是,他準(zhǔn)備得很充分,我沒(méi)能發(fā)現(xiàn)問(wèn)題。多么有自我追求的一個(gè)程序員!

5、保持對(duì)于新興技術(shù)的好奇心

說(shuō)起程序員的追求,我還想起了2016年參與的一個(gè)產(chǎn)品云化項(xiàng)目,我負(fù)責(zé)彈性伸縮特性的方案設(shè)計(jì)。在此之前,我一直在投入嵌入式軟件開(kāi)發(fā),雖然期間產(chǎn)品也換了好幾代的硬件,經(jīng)歷了產(chǎn)品與平臺(tái)解耦、制式間解耦、軟件與硬件解耦等過(guò)程,但是對(duì)于服務(wù)化、微服務(wù)化、云化等概念,我卻基本處于懵懂的狀態(tài)。

不懂怎么辦,只能是“站在巨人肩膀上,為我所用”。兄弟產(chǎn)品線(xiàn)不是已經(jīng)做了嗎,那就找他們做同行協(xié)助;友商不是有路標(biāo)和規(guī)劃了嗎,那就在他們的有限材料中尋找可借鑒的地方;互聯(lián)網(wǎng)的亞馬遜云、阿里云不是有非常成熟的方案了嗎,那就下載他們的產(chǎn)品手冊(cè)和用戶(hù)指南……那段時(shí)間感覺(jué)自己就像是入了魔一樣,瘋狂地學(xué)習(xí)分布式軟件相關(guān)技術(shù),瘋狂地吸收各方面的能量為我所用,最終給出了一個(gè)令自己和項(xiàng)目滿(mǎn)意的設(shè)計(jì)方案。

這也讓我充分意識(shí)到自己之前把眼光局限于所在產(chǎn)品、系統(tǒng)、子系統(tǒng)的不足。作為一個(gè)程序員,除了要提升自己的基礎(chǔ)軟件能力,我們也要始終保持對(duì)于新興技術(shù)的好奇心,孜孜不倦的追求,不斷拓寬自己的視野。而這方面的能力和訴求,在5G時(shí)代更是如此。

當(dāng)前我們?nèi)A為5G面臨的網(wǎng)絡(luò)安全問(wèn)題,雖然有著很大的政治因素,但也從側(cè)面反映了5G的戰(zhàn)略意義。超高速率、超大連接數(shù)、超高可靠低時(shí)延,對(duì)我們?cè)谲浖幚頃r(shí)延、可靠性、安全、韌性等方面的能力都提出了更高的要求。同時(shí),5G承載的垂直行業(yè)應(yīng)用、接口開(kāi)放和硬件“白盒化”等趨勢(shì),也必將對(duì)我們當(dāng)前的知識(shí)和技術(shù)體系,提出更大的挑戰(zhàn)。

[[262471]]

公司計(jì)劃用五年的時(shí)間,全面提升軟件工程能力,對(duì)我們是考驗(yàn),也是機(jī)會(huì)。統(tǒng)一編程規(guī)范、整潔代碼、整潔優(yōu)雅的架構(gòu),不同的人有不同的追求,需要我們有持之以恒、水滴石穿的決心。五年或者十年后,當(dāng)我們回首時(shí),會(huì)發(fā)現(xiàn)自己曾經(jīng)的付出是值得的。正如,清代著名學(xué)者王國(guó)維提出的讀書(shū)三境界之第三境:“眾里尋她千百度,驀然回首,那人卻在燈火闌珊處。”

也許我們絕大多數(shù)人終其一生也無(wú)法成為L(zhǎng)inus、張小龍這樣的大神。然而,我們能夠做一個(gè)有修養(yǎng)的程序員,并參與到改變世界的華為5G產(chǎn)品開(kāi)發(fā)中來(lái),在人類(lèi)的通信史中留下自己的優(yōu)秀代碼,幸哉。

責(zé)任編輯:未麗燕 來(lái)源: 華為人
相關(guān)推薦

2018-11-08 12:43:21

硅谷企業(yè)Facebook

2020-05-26 13:49:59

云計(jì)算生物云計(jì)算資源

2021-02-01 10:10:55

Svelte框架開(kāi)發(fā)

2022-08-18 10:56:36

零信任網(wǎng)絡(luò)安全

2011-12-21 09:14:44

虛擬化桌面虛擬化訪問(wèn)虛擬化

2019-10-12 17:39:09

ARVR應(yīng)用技術(shù)

2022-08-03 08:10:43

零信任網(wǎng)絡(luò)安全防御體系

2022-08-17 14:35:27

智慧城市物聯(lián)網(wǎng)社區(qū)

2012-11-14 13:55:10

2009-05-20 16:15:12

Linux桌面準(zhǔn)備

2023-10-07 07:50:19

云計(jì)算數(shù)據(jù)中心數(shù)字基礎(chǔ)

2023-06-16 07:14:37

英特爾酷睿產(chǎn)品

2016-08-15 15:35:35

群暉NAS群暉發(fā)布會(huì)

2009-02-10 09:54:28

企業(yè)信息化周宏仁

2021-03-19 09:55:31

物聯(lián)網(wǎng)標(biāo)準(zhǔn)化物聯(lián)網(wǎng)IOT

2015-11-16 14:52:13

代碼程序員

2013-09-22 09:36:11

2021-08-31 10:25:55

性能Change Buff索引

2015-11-24 14:27:38

o2obat潛規(guī)則

2019-10-14 09:41:08

游戲Google接口
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)