日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 嵌入式微處理器
[導讀]對很多人來,嵌入式軟件開發(fā)過程中 模塊化 (Modularization)是一個海市蜃樓、是一個書面詞匯、是一個過氣的時尚——模塊化似乎從未真正的實現(xiàn)過。吹牛時人們常不屑的說: 沒吃過豬肉,但還沒看過豬跑么?事實上,如果討論的對象是嵌入式軟件,很多人可能真的沒有看過豬跑。

對很多人來,嵌入式軟件開發(fā)過程中? 模塊化 (Modularization)是一個海市蜃樓、是一個書面詞匯、是一個過氣的時尚——模塊化似乎從未真正的實現(xiàn)過。 吹牛時人們常不屑的說: 沒吃過豬肉,但還沒看過豬跑么? 事實上,如果討論的對象是嵌入式軟件,很多人可能真的沒有看過豬跑。 在話題變得更像都市傳說的之前,我想問一個問題:
為什么要模塊化?
有經(jīng)驗的人會說:
為了代碼復用(Code Reuse)
進一步——“為什么模塊化可以實現(xiàn)代碼復用呢?”很多人會說:
你這不是抬杠嗎?明擺著的,代碼做成了模塊,那么別的項目就可以直接使用了,模塊里的這部分代碼就得到了復用。
更進一步——“代碼復用又是為了什么呢?”聽到這里項目經(jīng)理們深吸了最后一口煙屁股,順手丟到腳邊、踩滅、起身準備離開:
代碼復用可以節(jié)省開發(fā)時間,加快項目研發(fā)速度。
為了把嘴邊的那句“你們慢慢聊,我還有事”噎回去,我們再問一個問題:
實際項目開發(fā)中,用模塊的時候,項目的進度真的加快了么?時間真的節(jié)省了么?
項目經(jīng)理們不動了,抬起到半空中的屁股慢慢的坐了下來。這次,他們的語氣是認真的:
不,使用模塊通常并不一定能加快項目進度。老實說,用別人的模塊,程序員常常要認真理解模塊的功能和代碼才能在調(diào)試的時候確認問題的范圍。你知道,很多時候看懂他人代碼所用的時間比自己重新設(shè)計一個更長。
周圍不少程序員都投來贊同的眼光,有的甚至很認真的點了點頭。實際上,這里我們已經(jīng)發(fā)現(xiàn),在實踐中,拋開用于模塊化的技術(shù)不談,使用模塊實現(xiàn)代碼復用本身往往并不能加快一個團隊的開發(fā)速度——那么我們要模塊化做什么?



下結(jié)論還為時尚早。從項目經(jīng)理們的描述可以看出:

  • 代碼復用的目的或者說動機是 節(jié)省開發(fā)時間
  • 實際執(zhí)行中,程序員因為種種原因,在使用模塊時總是要 花費大量時間讀懂了代碼才能“放心地”去使用它。



程序(軟件)是“程序員嘗試去固化的自己的思維”;而模塊(硬件)則是“業(yè)已固化的邏輯”, 讀懂一段程序,實際上就是要通過死的代碼邏輯去 反推模塊構(gòu)作者的思維,這 是一個逆向過程,這 是一個人與人之間用代碼進行間接交流的過程,當邏輯本身較為復雜時,顯然比將自己的思維直接翻譯成程序(重新開發(fā)一個)更為困難。


通過上面的分析,很容易看出,模塊化就是為了通過復用代碼來加快開發(fā)速度,而正是 程序員閱讀要復用的代碼讓這一努力付之東流。由此,我們可以非常直接的得出結(jié)論:
使用模塊時,必須阻止程序員閱讀要復用的代碼
或者換一種說法:
使用模塊時,必須專注于模塊的使用,而必須有意忽視模塊的實現(xiàn)邏輯,必須要在心理上信任模塊。簡而言之,必須把模塊視作黑盒子!


很容易發(fā)現(xiàn),上面的結(jié)論是站在項目經(jīng)理的視角得出的,因為項目經(jīng)理關(guān)注的是項目本身,是各類資源的合理利用,是項目的進度—— 項目經(jīng)理唯一不需要也不應該關(guān)注的是具體的技術(shù)實現(xiàn)細節(jié) 。那么從第一線程序員的視角來看這個問題:
為什么程序員要閱讀模塊的代碼實現(xiàn)呢
  筆者問過不同從業(yè)時間/經(jīng)驗的程序員,從過來的的角度來看,無非是以下幾個原因:

  • 學習目的——想知道別人是怎么實現(xiàn)的。很多程序員認為通過閱讀別人的代碼能夠快速的學習他人的經(jīng)驗從而提升自己。

    然而,從項目管理的角度來看這個問題,程序員利用業(yè)余時間閱讀他人的代碼來提升自己無可厚非,或者說是值得提倡的,但犧牲寶貴的項目時間來閱讀模塊的實現(xiàn)代碼而不是專注于模塊的使用(使用模塊快速的實現(xiàn)項目所需的功能),這對項目本身是弊遠大于利的——閱讀代碼帶來的是程序員的能力提升,這是對團隊來說的遠期利好,但這一利好對項目本身的時效性卻微乎其微——俗話說遠水不解近渴就是這個意思。

    實際上,項目經(jīng)理通常要根據(jù)程序員的已有能力來分配任務,而不會寄希望于程序員通過閱讀模塊代碼獲得提升以后再來回報眼前這個火燒眉毛的項目——如果真有項目經(jīng)理這么做了,那只能說,進度慢了完全不是程序員閱讀模塊代碼的錯,而是他最直接的用人問題——我也只能相信,也許他真的無人可用了。

    所以結(jié)論就是:嚴禁工作時間以學習為目的閱讀模塊源代碼。

  • 調(diào)試目的——也許并非所有的程序員都對自己的代碼質(zhì)量天然的自信,但幾乎所有的程序員都對別人寫的代碼(模塊)天然的不放心——就像孔乙己一樣,必須親眼看了酒保從黃酒壇子里舀出酒來而沒有摻水才放心——所以程序出了問題,必然要懷疑模塊,而且甚至有很多不負責任的程序員天然的會首先懷疑模塊——不是自己寫的,怎么能放心——所以調(diào)試的時候必然:

  1. 要有源代碼,否則就不會調(diào)試了
  2. 必然要閱讀模塊的代碼,否則就不知道究竟這個源代碼是不是對的
  3. 必然要讀懂模塊的代碼,否則怎么能體“自己的程序出錯完全是模塊的代碼寫的不好”。

對于這種情況,就我個人來說,只有一條準則——不提供源代碼!只提供庫文件——相信我,通常面對匯編代碼熟手無策的程序員會在調(diào)試的時候自動忽視模塊的實現(xiàn)細節(jié),專注于模塊接口的輸入輸出行為——給什么輸入,期望什么輸出,實際獲得什么輸出——一目了然,簡單直接。如果真的 期望輸出和觀察到的 實際輸出不同,問題也就找到了:要么是文檔沒有讀好,對輸入輸出的理解有誤;要么是輸入就有錯;要么就是模塊有問題。這絕對比讀懂源代碼以后再來調(diào)試要快得多!——除非這個別人寫的模塊需要你來維護…… 所以說,調(diào)試的時候

根!本!不!需!要!讀!模!塊!的!源!代!碼!
根!本!不!需!要!讀!模!塊!的!源!代!碼!
根!本!不!需!要!讀!模!塊!的!源!代!碼!
以調(diào)試作為閱讀模塊的源代碼的理由,根本就站不住腳

  • 仿制目的——這個目的沒啥好說,別人把源代碼給你就是個錯誤。請大家自覺抵制無視他人知識產(chǎn)權(quán)的行為。從技術(shù)上來說,因為要實現(xiàn)自己的版本而需要閱讀他人的實現(xiàn),理解他人的思維,這是一種白盒子行為,因而并不屬于正常使用模塊的范疇,屬于普通的開發(fā)范疇。

  • 既然在模塊的使用過程中,無論是學習目的還是調(diào)試目的都不需要閱模塊的源代碼,那么可以明確的得出結(jié)論: 程序員在使用模塊的過程中完全不需要,也不應該浪費項目的時間來閱讀源代碼。一個團隊只有做到了這一點,才能借助代碼復用加快項目開發(fā)的速度。

    當一個團隊的項目經(jīng)理理解了“閱讀模塊代碼”對項目的巨大危害,并以制度的形式對程序員的這一行為予以了制止——移除了模塊化實踐的絆腳石;那么技術(shù)經(jīng)理應該如何理解、設(shè)計和實踐適合于當前團隊和項目需求的模塊化架構(gòu)呢?

    -END-


    |?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|

    |?如有侵權(quán),請聯(lián)系刪除?|


    【1】國內(nèi)MCU能替代國外產(chǎn)品嗎?MCU的未來又將如何?

    【2】35歲真的是程序員的坎兒嗎?

    【3】不同編程語言能耗不同?看這27種語言對比!

    【4】超長干貨為你解析:從串口驅(qū)動到Linux驅(qū)動模型,嵌入式必會!

    【5】本文把TCP/IP講絕了!


    免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

    嵌入式ARM

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

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

    全球嵌入式技術(shù)領(lǐng)域的年度盛會2026嵌入式世界展(Embedded World 2026,簡稱EW26)于3月10日至12日在德國紐倫堡成功舉辦。作為物聯(lián)網(wǎng)和邊緣AI領(lǐng)域的領(lǐng)先企業(yè),Silicon Labs(亦稱“芯科科...

    關(guān)鍵字: 物聯(lián)網(wǎng) 邊緣AI 嵌入式

    3月10日至12日,2026年嵌入式世界展(Embedded World 2026,簡稱EW26)在德國紐倫堡展覽中心成功舉辦。作為領(lǐng)先的邊緣AI與智能音頻等媒體處理技術(shù)和芯片解決方案提供商,XMOS以沉浸式演示與技術(shù)交...

    關(guān)鍵字: 邊緣AI 智能音頻 嵌入式

    在嵌入式系統(tǒng)開發(fā)中,SoC(System on Chip)的多樣性始終是橫亙在開發(fā)者面前的難題。以某工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)項目為例,其需同時支持NXP i.MX8M、Rockchip RK3566和Allwinner H616三...

    關(guān)鍵字: Platform Driver模型 嵌入式

    在非易失性存儲器領(lǐng)域,EEPROM(電可擦除可編程只讀存儲器)曾長期占據(jù)主流地位,廣泛應用于各類電子設(shè)備的參數(shù)存儲、日志記錄等場景。但隨著工業(yè)控制、汽車電子、醫(yī)療設(shè)備等領(lǐng)域?qū)Υ鎯π阅芴岢龈咭?,F(xiàn)RAM(鐵電隨機存取存...

    關(guān)鍵字: 存儲器 可編程 嵌入式

    康佳特將aReady.COM擴展至Arm架構(gòu)模塊,基于恩智浦i.MX 95處理器打造應用就緒的軟硬件構(gòu)建模塊,集成操作系統(tǒng)、系統(tǒng)整合與IoT連接能力,賦能高價值應用快速落地

    關(guān)鍵字: 處理器 IoT 嵌入式

    3月12日,2026年中國家電及消費電子博覽會(以下簡稱:AWE 2026)在上海盛大開幕。展會現(xiàn)場,場景化、系統(tǒng)化、一體化的家電解決方案成為行業(yè)焦點,消費者對家電的關(guān)注也已從基礎(chǔ)的尺寸匹配,延伸至對“空間秩序感”和“視...

    關(guān)鍵字: 消費電子 蒸烤箱 嵌入式

    超高效NPU IP在資源受限設(shè)備中推進邊緣AI,因而獲得認可

    關(guān)鍵字: 人工智能 嵌入式 NPU

    上海2026年3月12日 /美通社/ -- 3月12日,2026中國家電及消費電子博覽會(AWE 2026)在上海新國際博覽中心和東方樞紐國際商務合作區(qū)展區(qū)正式啟幕。本屆展會以"AI科技?慧享未來"為...

    關(guān)鍵字: 西門子 博世 嵌入式 洗碗機

    在“AI科技,慧享未來”的時代命題下,人工智能正加速滲透至家庭生活的每一個細節(jié)。2026年中國家電及消費電子博覽會(AWE2026)在上海啟幕,聚焦AI技術(shù)如何重塑家電形態(tài)與人居體驗。圍繞“智造不凡 悅享非凡”主題,西門...

    關(guān)鍵字: 嵌入式 冰箱 AI
    關(guān)閉