當(dāng)前位置:首頁 > 公眾號(hào)精選 > embed linux share
[導(dǎo)讀]嵌入式工程師如何告別被人詬病的爛代碼,寫出拍手稱道的好代碼?

嵌入式工程師現(xiàn)狀
在我頭兩三年的工作時(shí)間里,接觸過不少嵌入式工程師,對(duì)這個(gè)行業(yè)的現(xiàn)狀有一定的深入了解。從傳統(tǒng)嵌入式工程師的學(xué)習(xí)路徑來看,大部分是從熟悉硬件手冊(cè)、配置寄存器開始學(xué)習(xí),接著在邊做項(xiàng)目邊加深學(xué)習(xí)C語言,根據(jù)項(xiàng)目不同,會(huì)接觸一些基礎(chǔ)算法,比如控制上的pid、多軸插補(bǔ),圖像處理上的濾波、分割等等。在這個(gè)階段中,會(huì)逐漸熟悉一些硬件之間的特性差異、掌握c語言編程來實(shí)現(xiàn)不同功能,學(xué)有余力的可能還接觸了一些RTOS,更深入地掌握了多線程編程技巧、GUI開發(fā)界面、網(wǎng)絡(luò)編程等。
但是在走完這一階段之后,其實(shí)大部分工程師,代碼能力還是很弱。這是由于在實(shí)際工作過程,過于依賴面向過程開發(fā),只管功能實(shí)現(xiàn),忽視了代碼質(zhì)量和提高。這樣的代碼維護(hù)起來非常費(fèi)勁,添加或者修改一個(gè)功能,常常會(huì)牽一發(fā)而動(dòng)全身,讓你無從下手,恨不得將全部的代碼刪掉重寫!回首看一下過去幾年間自己的代碼,時(shí)常有抽自己幾巴掌的沖動(dòng)。
意識(shí)覺醒
我們有幸在最好的開源時(shí)代,在嵌入式領(lǐng)域目前已經(jīng)有大量?jī)?yōu)秀的開源代碼可以供所有程序員參考對(duì)比,比如熊大的RT-thread、周立功的AWTK;我們不幸在最壞的開源時(shí)代,當(dāng)知識(shí)的門檻越來越低,每個(gè)人面臨的競(jìng)爭(zhēng)壓力是前所未有的。這種壓力應(yīng)該促使程序員去思考,如何去提高自己的代碼水平,如何去設(shè)計(jì)出如熊大、周立功他們一樣優(yōu)秀的項(xiàng)目。
在開源商業(yè)軟件高速發(fā)展的今天,希望我的一點(diǎn)經(jīng)驗(yàn)和分享可以慢慢地讓一部分工程師識(shí)醒,認(rèn)識(shí)到斑駁繁雜的業(yè)務(wù)開發(fā),需要大量的基礎(chǔ)知識(shí)的支撐。有花狠功夫去夯實(shí)基礎(chǔ),才能看得更長(zhǎng)遠(yuǎn),走得更持久。
但是,必須要明白的一點(diǎn)是,基礎(chǔ)學(xué)科和理論大都不是與技術(shù)能力直接掛鉤的,無法通過短期的突破來取得立竿見影的效果。它更多的是慢慢在潛意思中生根發(fā)芽,默默地在解決問題的過程中影響你思考的角度和深度。這是緩慢受錘的過程,這一錘一錘的折磨,大部分人挺不過來。
如何破局
那么怎么吸收理解乏味沉悶的基礎(chǔ)知識(shí)?如何把它內(nèi)化成自己的工程開發(fā)能力依然是很多程序的困惑。在被操作系統(tǒng)編譯原理、微機(jī)原理等大部頭殺死了對(duì)編程的熱衷的同時(shí),更是遲遲看不到投入產(chǎn)出比。甚至幾年工作下來,悲哀地發(fā)現(xiàn),代碼水平還在大學(xué)里的毛頭小子差不多。因此,選一個(gè)合適的切入點(diǎn),在職業(yè)進(jìn)階發(fā)展時(shí)建立起強(qiáng)大的學(xué)習(xí)自信心就尤為關(guān)鍵。設(shè)計(jì)模式就是這樣一個(gè)最佳的切入點(diǎn),它既是非常重要的基礎(chǔ)知識(shí),又直接反映技術(shù)能力水平。設(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)、算法是程序員的三座大山,但是設(shè)計(jì)模式與數(shù)據(jù)結(jié)構(gòu)和算法不一樣的地方在于,數(shù)據(jù)結(jié)構(gòu)和算法是業(yè)務(wù)場(chǎng)景的總結(jié),它的關(guān)注點(diǎn)在于如何寫出高效代碼來改善產(chǎn)品的性能,這在不同產(chǎn)品、不同業(yè)務(wù)上是差異很大的。而設(shè)計(jì)模式,更多的是一種工程經(jīng)驗(yàn),它客觀地歸納了高質(zhì)量代碼開發(fā)的技巧,指導(dǎo)著工程師把代碼寫得可維護(hù)性強(qiáng)、可擴(kuò)展性強(qiáng)、健壯性強(qiáng)。所以,不必?fù)?dān)心設(shè)計(jì)模式是"屠龍刀",只要你有心想用好它,那么在你的業(yè)務(wù)代碼中,一定有用得上的地方。除非你是想開發(fā)一個(gè)只管功能實(shí)現(xiàn),不管后人維護(hù)擴(kuò)展的爛項(xiàng)目。在這些年的工作經(jīng)歷中,實(shí)在是見過不少的爛代碼,比如命名不規(guī)范、類設(shè)計(jì)不合理、分層不清晰、沒有模塊化概念、代碼結(jié)構(gòu)混亂、高度耦合等等。 應(yīng)對(duì)面試中的設(shè)計(jì)模式
學(xué)習(xí)設(shè)計(jì)模式,最功利、最直接的目的,和算法一樣,可能就是應(yīng)對(duì)面試了。不管你是前端工程師、后端工程師,還是嵌入式工程師,在高階崗位的求職面試中,設(shè)計(jì)模式問題是被問得頻率比較高的一類問題。特別是一些像 華為、大疆 這樣的大公司,比較重視候選人的基本功,經(jīng)常會(huì)拿算法、設(shè)計(jì)模式之類的問題來考察候選人。所以,求職面試的時(shí)候,應(yīng)該提前準(zhǔn)備、溫習(xí)一遍設(shè)計(jì)模式。盡管不一定每次面試都會(huì)被問到,但一旦被問到,如果回答得不好,就是一個(gè)敗筆,這場(chǎng)面試基本上也就涼涼了。所以,為了保證萬無一失,擺脫一旦被問到答不出來的窘境,對(duì)于設(shè)計(jì)模式這種大概率被問到的問題,需要未雨綢繆,認(rèn)真提前準(zhǔn)備一下。
關(guān)于嵌入式的設(shè)計(jì)模式
目前市面上關(guān)于設(shè)計(jì)模式的書籍和視頻,主要都是用面向?qū)ο蟮恼Z言來進(jìn)行講解,比如java\c 。而嵌入式程序員主要用c語言開發(fā),那么學(xué)習(xí)設(shè)計(jì)模式時(shí)不可避免會(huì)有一些語言上面的障礙,因此本系列文章,希望是以c語言來闡述清楚每種設(shè)計(jì)模式的用途。讀者在有了對(duì)它有一定的概念和理解后,再去看相關(guān)書籍時(shí),會(huì)減少很多障礙。
 

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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ì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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