www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]有熟知的同事說(shuō)我是軟硬皆通的“萬(wàn)金油”,是某些領(lǐng)域碩果僅存的“活化石”……


有熟知的同事說(shuō)我是軟硬皆通的“萬(wàn)金油”,是某些領(lǐng)域碩果僅存的“活化石”。但在我看來(lái),只是因?yàn)榍∏沙掷m(xù)幾年在同一個(gè)領(lǐng)域摸爬滾打,有更多機(jī)會(huì)鉆得更深一點(diǎn)。


興趣,從和網(wǎng)吧網(wǎng)管“斗法”開(kāi)始


2005年我入職公司,從此開(kāi)始了和傳送網(wǎng)的緣分。其實(shí),我大學(xué)的專(zhuān)業(yè)并不是軟件,但自從在課上接觸了代碼,我就發(fā)現(xiàn)這玩意兒能做的事情太多了,簡(jiǎn)直讓人欲罷不能。


為了在代碼的世界里自由馳騁,圖書(shū)館和網(wǎng)吧成為了我學(xué)業(yè)之外的“常駐地”,從Pascal,到C/C++,Windows API/COM,再到Java,只要看下去,就停不下來(lái)。為了檢驗(yàn)自己的技術(shù),我還經(jīng)常和網(wǎng)吧網(wǎng)管“斗法”,破解網(wǎng)管軟件。記得有一次,我架設(shè)了個(gè)私有網(wǎng)站,在上面放了一段JavaScript腳本,激活了網(wǎng)管軟件屏蔽的“運(yùn)行”對(duì)話(huà)框,重新控制了整個(gè)系統(tǒng)。這一招躲過(guò)了好幾個(gè)版本的網(wǎng)管軟件升級(jí),讓我嘚瑟了好一陣子。


正是因?yàn)樽约簩?duì)軟件的“癡戀”,讓我對(duì)寫(xiě)代碼這件事有著天然的向往。熱愛(ài)什么,就選擇什么。我一畢業(yè)就成為了一名程序員。


重構(gòu)代碼,就像在鋼絲上跳舞


那時(shí)迭代還沒(méi)流行起來(lái),產(chǎn)品剛過(guò)TR5,在瀑布流程下這就代表著產(chǎn)品質(zhì)量相當(dāng)穩(wěn)定。所以,每天除了學(xué)習(xí)產(chǎn)品知識(shí)外,我就是專(zhuān)心看代碼。


誰(shuí)知這一看,我就動(dòng)了改代碼的心思,因?yàn)槲野l(fā)現(xiàn)有些代碼完全是大段落的復(fù)制粘貼,中間偶爾有幾行差異點(diǎn),修改問(wèn)題時(shí)很難做到一次改全;另外還存在大篇幅的switch case,復(fù)雜度高的同時(shí),處理流程也沒(méi)有統(tǒng)一模式,新寫(xiě)的代碼不管往哪加,都感覺(jué)很別扭。


我和導(dǎo)師商量:“能不能重構(gòu)下代碼?“導(dǎo)師一口答應(yīng)了:“不過(guò)本地先改好了驗(yàn)證,下個(gè)版本再擇機(jī)合入。”得到應(yīng)許后,我一氣呵成地抽取公共代碼,統(tǒng)一接口參數(shù),將switch case換成表驅(qū)動(dòng)方式。


很快,下個(gè)版本就這么在期盼中來(lái)了,導(dǎo)師看我對(duì)代碼這么上心,還交給了我一個(gè)新特性的開(kāi)發(fā)任務(wù),為此我復(fù)用了之前重構(gòu)的成果,“玩”了下套路,很快就完成了開(kāi)發(fā)。


當(dāng)我滿(mǎn)懷信心的將代碼提交給測(cè)試時(shí),原以為不會(huì)出現(xiàn)的低級(jí)問(wèn)題冒出來(lái)好幾個(gè)。咋回事?這不是打臉嗎?為啥流程都梳理幾遍了,轉(zhuǎn)到測(cè)試還有漏網(wǎng)之魚(yú)?堵住漏洞后,我仍然不安:到底用什么方法才能保證代碼的基礎(chǔ)質(zhì)量?作為軟件開(kāi)發(fā)人員面對(duì)自測(cè)試,竟然是心有余而力不足。


后來(lái)公司引入了LLT(low level test)這個(gè)武器,專(zhuān)門(mén)解決代碼的及時(shí)、輕量而又可持續(xù)的自驗(yàn)證,我們團(tuán)隊(duì)有幸作為試點(diǎn)團(tuán)隊(duì),專(zhuān)門(mén)配了一個(gè)外籍專(zhuān)家手把手地教。于是,我操著一口蹩腳英語(yǔ),向外籍專(zhuān)家“取經(jīng)”。經(jīng)過(guò)數(shù)十次的探討,我發(fā)現(xiàn)外籍專(zhuān)家對(duì)被測(cè)代碼邊界的劃分很有套路——用穩(wěn)定的接口來(lái)作測(cè)試邊界,基于測(cè)試邊界來(lái)寫(xiě)用例,認(rèn)為用例是測(cè)需求而不是測(cè)已經(jīng)寫(xiě)好的代碼。這種加上黑盒測(cè)試思路的白盒測(cè)試方法讓我恍然大悟,既能享受白盒測(cè)試帶來(lái)的方便構(gòu)造任意異常場(chǎng)景的好處,又能享受黑盒測(cè)試帶來(lái)的測(cè)試界面穩(wěn)定、用例可繼承的好處。理解這些后,我成了LLT堅(jiān)定的擁護(hù)者。


后來(lái),我在團(tuán)隊(duì)的支持下,先后主導(dǎo)開(kāi)發(fā)出模型驅(qū)動(dòng)的LLT用例自動(dòng)生成的工具、自動(dòng)打樁的工具。比如,在團(tuán)隊(duì)有意愿做LLT時(shí),必須先搭建好LLT基礎(chǔ)工程,常會(huì)遇到成千上萬(wàn)鏈接不過(guò)的情況,需要逐個(gè)打樁,動(dòng)輒要專(zhuān)人花幾周時(shí)間完成。于是,我們開(kāi)發(fā)了自動(dòng)打樁工具,半小時(shí)就可輕松搞定。


在我看來(lái),重構(gòu)代碼就像在鋼絲上跳舞。在享受重構(gòu)帶來(lái)快樂(lè)的同時(shí),也需要用各種手段鋪墊好防護(hù)網(wǎng),避免掉入功能前后不一致及質(zhì)量下滑的深淵。


不管角色怎么變,寫(xiě)代碼這件事不能丟


2006年,數(shù)據(jù)業(yè)務(wù)開(kāi)始大力開(kāi)發(fā)分組特性,我也從NP驅(qū)動(dòng)軟件的骨干轉(zhuǎn)身為L(zhǎng)3VPN特性的PL。


一開(kāi)始,我對(duì)PL也沒(méi)啥概念,分配工作任務(wù)還好,最怕的就是管人,尤其怕給兄弟們打考評(píng)。幸運(yùn)的是,當(dāng)時(shí)我們團(tuán)隊(duì)技術(shù)氛圍濃厚,我以平時(shí)的代碼交付結(jié)果作為績(jī)效考核的衡量標(biāo)準(zhǔn),再輔以我在團(tuán)隊(duì)內(nèi)的技術(shù)威望,打考評(píng)這件對(duì)我來(lái)講最難的事算是勉強(qiáng)過(guò)關(guān)了。


當(dāng)然,PL也是有很多便利的,可用的資源比單槍匹馬時(shí)要多了,只要有想法就不怕干不成事。PTN第一個(gè)項(xiàng)目組級(jí)別的“HLT(high level test)自動(dòng)化工廠”,就是我主導(dǎo)搭建的,一舉解決了發(fā)版本需要所有組員留守搞自測(cè)試的困境。在組內(nèi)高效工作的氛圍下,我也解放時(shí)間承擔(dān)起MDE(模塊設(shè)計(jì)師)的角色。在這期間,我發(fā)現(xiàn)各特性都有自己的硬件資源管理算法,重復(fù)實(shí)現(xiàn),接口不一致,且大多采用遍歷算法,效率不高。于是,我總結(jié)了已有特性的所有資源管理需求,結(jié)合bitmap、棧、索引幾種技巧,完成了接口統(tǒng)一的資源管理算法,還憑此斬獲了網(wǎng)絡(luò)舉辦的第一屆“十大金碼獎(jiǎng)”。


2010年,由于業(yè)務(wù)的需要,我又做起了專(zhuān)職MDE的角色,加入了新的團(tuán)隊(duì),心里偷著樂(lè):不用管人,又能利用MDE的影響力在項(xiàng)目組推行各種改進(jìn)措施。當(dāng)時(shí)新團(tuán)隊(duì)正處于第一個(gè)版本,需要補(bǔ)齊大量特性,我們不得不頻繁發(fā)布版本,而每一次版本構(gòu)建的時(shí)間又很長(zhǎng)。增加日志后,我發(fā)現(xiàn)時(shí)間主要消耗在編譯階段,就想解決這個(gè)問(wèn)題。要不開(kāi)源節(jié)流試一試?我一方面清理無(wú)效的編譯過(guò)程,一方面在網(wǎng)上搜索能并行編譯的工具??汕罢吖?jié)流僅縮短了10%的時(shí)間,距離期望還有很大差距。


所以我把更多精力投入在開(kāi)源上。就在我找到網(wǎng)上的工具,以為可以拿來(lái)主義的時(shí)候,卻發(fā)現(xiàn)工具過(guò)于“傻瓜”,需要手動(dòng)構(gòu)造并行任務(wù)。為了讓工具更智能,我邊學(xué)邊做,經(jīng)歷了很多第一次:第一次深入研究makefile,第一次嘗試預(yù)編譯,第一次復(fù)雜的運(yùn)用批處理……經(jīng)過(guò)一周摸索后,我終于把自動(dòng)化并行的腳本做出來(lái)了,版本效率提升了3倍。


俗話(huà)說(shuō),挑戰(zhàn)和機(jī)會(huì)是對(duì)孿生兄弟,工作也是如此。在我看來(lái),軟件工程師本來(lái)就應(yīng)該是與時(shí)俱進(jìn)的,不管環(huán)境怎么變,角色怎么變,始終要摸清業(yè)務(wù)的需求和約束,確定輸入和輸出,然后用軟件把它實(shí)現(xiàn)出來(lái)。


打開(kāi)天窗,才能發(fā)現(xiàn)自身不足


2017年,我接任了傳送網(wǎng)的首席程序員,成為傳送DU的首席committer。


我有幸接手了D3A架構(gòu)優(yōu)化項(xiàng)目。項(xiàng)目整體分為兩大塊,一是實(shí)現(xiàn)軟件上的抽象轉(zhuǎn)發(fā)建模,做到修改硬件方案對(duì)主機(jī)軟件“零感知”,另一個(gè)是讓微碼能夠按功能塊來(lái)拼裝,具備被軟件定義的能力。只要實(shí)現(xiàn)這些,更換硬件的工作量至少降低50%。


這個(gè)項(xiàng)目對(duì)于我們整個(gè)團(tuán)隊(duì)意義重大,能徹底解決軟硬件解耦的難題。在這個(gè)過(guò)程中,我不僅體會(huì)到“開(kāi)天窗”的美妙滋味,也有幸交到了美研所的業(yè)界頂級(jí)專(zhuān)家羅勇這樣的朋友。


一開(kāi)始,我根據(jù)已有的經(jīng)驗(yàn)判斷:微碼咋可能做得這么靈活?轉(zhuǎn)發(fā)性能是第一優(yōu)先級(jí),跳來(lái)跳去肯定性能不達(dá)標(biāo)。我和美研所的專(zhuān)家各種PK,發(fā)現(xiàn)他總是先讓我們講清楚需求,然后他出解決方案,我們疊加需求,他就再出方案,反正總是難不倒他。


比如,我們提到分布式轉(zhuǎn)發(fā)的時(shí)候,主機(jī)由于上下行單板的資源交互,需要管理差異化的資源,達(dá)不成主機(jī)軟件零感知的目標(biāo),咋搞呢?專(zhuān)家一分析:“為了讓主機(jī)看到一樣的轉(zhuǎn)發(fā)資源,微碼可以幫忙加映射?!钡沁@就會(huì)多查一張表,影響性能咋辦?“那就合表嘛,這里增加了開(kāi)銷(xiāo)不一定非得在原地想辦法。我們面對(duì)的是整個(gè)系統(tǒng),拆東墻補(bǔ)西墻有時(shí)候也會(huì)是個(gè)好方法。”總之,不管我們的問(wèn)題是什么,美研所專(zhuān)家都能逢山開(kāi)路、遇水搭橋,幾個(gè)回合下來(lái),我徹底服氣了。


后來(lái),我才發(fā)現(xiàn)這場(chǎng)景似曾相識(shí),方法都是細(xì)化打散了再排列組合。這不是和我以前給別人出主意的場(chǎng)景一樣的嗎?雖然我在所屬領(lǐng)域自認(rèn)為還算有經(jīng)驗(yàn),也幫組織解決不少問(wèn)題,但打開(kāi)天窗一看,發(fā)現(xiàn)依然是井底之蛙。所以,老板講要經(jīng)常出來(lái)喝咖啡,吸收外面的能量,經(jīng)過(guò)這事兒我是信了。


當(dāng)然,問(wèn)題是最好的老師,你在幫助別人的同時(shí),也是幫自己提升經(jīng)驗(yàn)值。


我的偶像安德斯·海爾斯伯格(Delphi、C#和TypeScript之父)曾說(shuō)過(guò),程序員是最好的職業(yè)。第一次看到這句話(huà)時(shí),我就很受鼓舞。代碼的千變?nèi)f化帶來(lái)了解決問(wèn)題的無(wú)限能力,讓我體會(huì)到不可言喻的美妙感覺(jué)。13年來(lái),我每天都在和代碼打交道,卻總是樂(lè)此不疲。如今,在武漢,在波分,在公司軟件服務(wù)化浪潮中,我依然利用代碼的魔力,讓更多人因?qū)戃浖兊酶鞓?lè)。


熱愛(ài)是點(diǎn)燃激情的火把,寫(xiě)代碼可以是一輩子的事業(yè)。對(duì)我來(lái)說(shuō),如果到了60歲,還能每天堅(jiān)持編碼,大概就是最大的幸福了吧!


來(lái)源:心聲社區(qū)

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉