已經從事嵌入式軟體開發多年。雖然我做過不少專案,解過無數bug。但回頭看下,總覺得應該把工作的經驗和用到的知識系統梳理和總結下。畢竟我認為掌握乙個知識點至少需要做到三步:1知道,2實踐過,3講得清楚。沒有做到這三點,我是不敢有底氣地說自己掌握了xx知識。
我看網上關於嵌入式軟體的帖子,大多講的都是mcu/arm架構、bootloader、linux移植、驅動開發、交叉編譯之類的內容。
這些的確都是嵌入式軟體工程師的基礎,但從中可以發現乙個問題:大部分「嵌入式軟體工程師」都只關注了「嵌入式」,忽略了「軟體工程師」。對於軟體領域非常重要的「設計模式」很少出現在「嵌入式軟體工程師」的語言裡。更有甚者認為設計模式講的是基於物件導向的技術,而嵌入式常用的是面向過程的c語言,所以搞嵌入式軟體不需要物件導向的設計模式。這種思想就挺荒謬了~~~
就拿linux kernel來說,雖然linux kernel主要用c語言實現,但linux kernel處處都體現了物件導向的思想。在linux kernel中可以找到很多設計模式的實踐。我不相信乙個不懂設計模式的人能夠理解linux kernel的架構。
所以呢,我就打算從這點入手,寫一下gof設計模式基於c語言嵌入式的使用。
C語言設計模式
專案的成功是偶然的,但是專案的失敗卻有很多原因,管理混亂 需求混亂 設計低劣 質量差 測試不到位等等。就軟體企業而言,沒有比優秀的文化和出色的企業人才更重要的了。從軟體設計層面來說,一般來說主要包括三個方面 1 軟體的設計受眾,是小孩子 老人 女性,還是專業人士等等 2 軟體的基本設計原則,以人為本...
C語言設計模式 模板模式
模板方法模式是基於繼承的 復用基本技術,可以將相同的 放在父類中,而將不同的方法實現放在不同的子類中。在模板方法模式中,準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來讓子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現...
C語言和設計模式
關於軟體設計方面的書很多,比如 重構 比如 設計模式 至於軟體開發方式,那就更多了,什麼極限程式設計 精益方法 敏捷方法。隨著時間的推移,很多的方法又會被重新提出來。其實,就我個人看來,不管什麼方法都離不開人。乙個人寫不出二叉樹,你怎麼讓他寫?敏捷嗎?你寫一行,我寫一行。還是迭代?寫三行,刪掉兩行,...