嵌入式 C 程式設計模式

為嵌入式系統建立乾淨且可維護的韌體程式碼的設計模式

從這 6 小時的課程,你會學到

  • 程式碼可讀性和可維護性
  • 良好的程式碼重用性
  • 乾淨的軟體架構
  • 輕鬆進行程式碼審查

要求

基本熟悉 C 程式語言

課程說明

為什麼需要設計模式

  • 乾淨且可維護:設計模式可幫助我們編寫乾淨、強壯且可維護的程式碼。
  • 增強的程式碼重複使用:模式可幫助您解耦依賴關係並使程式碼保持井井有條。
  • 積極主動地預防錯誤:設計模式給出了明確的期望,使我們能夠更輕鬆地審查和推理大量程式碼。
  • 消除歧義:使用相同的模式一致地消除程式碼結構和行為的歧義。
  • 有效 DevOps 的關鍵:應用眾所周知且易於理解的模式的程式碼易於審查。
  • 讓細節落實到位:設計模式有助於組織程式碼並使小的實作細節更容易落實到位。

當我們開發嵌入式軟體時,我們會一次又一次地看到同​​一類問題。 遺留程式碼的維護成本很高,更改一段程式碼會導致其他地方出現意外的行為變化,程式碼會以意想不到的方式崩潰。

所有這些都會導致原始程式碼變得更加難以使用。

這一切都歸結為缺乏編寫軟體的明確架構指南。 例如“我們如何定義一個物件?” 或「每個物件應該有哪些基本方法?」。 這些東西不是由編譯器強制執行的,而且可能永遠不會。 我們必須透過明確的指導方針和程式碼審查來強制執行這一點。

這就是為什麼我們有一個適用於每個專案的指南列表,我們確保所有開發人員都了解這些指南,並在程式碼審查期間互相指出未遵循這些指南的情況。 這會導致程式碼乾淨、易於維護、易於測試且易於理解。

我們使用設計模式來闡明軟體結構以及我們對該結構的期望。

設計模式對於實現高效的 DevOps 至關重要,因為它們直接減少了審查新程式碼所需的時間。 當團隊中的每個人都使用設計模式並同意其使用時,每個人也都知道當新程式碼遵循已知模式時會期望什麼。

設計模式幫助我們編寫乾淨、健壯且可維護的程式碼。

課程大綱

我們將從簡短的介紹開始,向您解釋如何學習本課程、在哪裡可以找到其他資源以及每個模組的結構。

然後我們將介紹處理資料物件建構的建立模式。 創建模式幫助我們擁有創建新物件和處理記憶體所有權責任的標準化方法。

之後,我們深入研究處理程式碼結構的結構模式。 這些模式幫助我們建立程式碼,以便我們可以輕鬆地使用新功能擴展它,而無需稍後重構。

行為模式是與程式碼「行為」(例如傳回值模式)相關的部分。 這些模式幫助我們確定不同常見情況下程式碼的行為。

最後,並發模式將使您對嵌入式 RTOS 上的並發有直觀的了解,以便您了解何時使用哪種並發模式以實現應用程式的高響應能力。

介紹

介紹。 在本節中,我們將介紹您在開始之前需要的有用資訊、在哪裡可以找到本次培訓的程式碼範例、如何獲得其他協助以及您可以在哪裡提出有關本課程的問題。 這是對這門課程的簡單介紹。

創作模式

  • 物件模式。 這是一種將資料分組為可以實例化和銷毀的物件的方法。 我們也介紹了類別和成員函數的概念。
  • 不透明圖案。 此模式為我們提供了三種將物件的實作設為私有並僅公開該物件的句柄的方法。 這也可以稱為不透明物件模式。
  • 單例( singleton )模式。 單例模式是一種設計模式,用於確保一個類別只有一個實例,同時提供對該實例的全域存取點。
  • 工廠( factory )模式。 工廠設計模式是一種創建型設計模式,它提供了在超類別中創建物件的介面,但允許子類別更改將創建的物件的類型。

結構模式

  • 回調( callback )模式。 處理綁定到物件實例的物件導向的回呼。 允許回調對物件的特定實例進行操作。
  • 繼承模式。 繼承模式用於實作C程式中物件和元件之間的繼承關係。 它作為一種創建物件層次結構的方法非常有用,而不必管理所有細節都處於同一抽象層級的大型應用程式。
  • 虛擬 API 模式。 虛擬 API 模式是一種在 C 中實作虛擬函數並使不透明物件的句柄也變得「智慧」的方法。 虛擬 api 模式為我們提供了多態性 – 我們可以將相同的介面用於多個實現,而無需了解這些實現。
  • 橋樑圖案。 此模式建立在虛擬 api 模式之上,是當您需要橋接兩個不同的物件層次結構時所使用的模式。 我們將介紹 Rust 和 C 中的範例,以了解如何在實務中使用此模式。

行為模式

傳回值模式。 此模式標準化了函數處理返回值的方式。 這很有價值,因為 C 中的回傳值是表示操作狀態的主要方式。 因此我們必須有一個透過標準化的返回值與呼叫者溝通的清晰方式。

並發模式

  • 並發簡介。 在本節中,我們將把並發本身視為軟體開發的一種模式,以及何時以及為什麼我們應該將並發視為我們工具箱中的一個有價值的工具。
  • 自旋鎖/中斷屏蔽模式。 屏蔽中斷是資料完整性最簡單的模式,與保護中斷存取的共享資料有關。 其通用實作通常以自旋鎖的形式完成。 在這裡,我們了解如何透過確保修改資料時不會運行中斷來保護資料免受損壞。
  • 信號量模式。 信號量比自旋鎖高一級,它概述了中斷處理程序和應用程式級執行緒之間(以及應用程式中的多個執行緒之間)的訊號發送模式。 在本模組中,我們將了解信號量的實際實作、其用例和重要注意事項。 信號量是任何 RTOS 系統中最基本的線程感知同步原語。
  • 互斥模式。 互斥體與信號量略有不同,它透過優先繼承來防止飢餓。 它是應用程式執行緒應使用的主要模式,用於相對於其他執行緒對資源進行互斥存取。 在本模組中,我們將了解互斥鎖的實作、它的工作原理以及它與其他原語的實作有何不同。
  • 條件變數模式。 條件變數模式建立在互斥體模式的基礎上,以實現一種從另一個執行緒或中斷處理程序發出訊號並喚醒一個或多個執行緒的方法。 此模式對於以安全方式檢查任意複雜的條件以回應非同步事件非常有用。

這是給誰的

本次培訓的目的是:

  • 嵌入式軟體架構師:即使您已經編碼多年,您仍然可以在本內容中找到有關如何做得更好的想法。
  • 初學者嵌入式程式設計師:模式可以幫助您組織程式碼,最好的起點就是從頭開始。
  • 嵌入式經理:整個團隊充分理解和應用模式非常重要,因為它們對程式碼結構有很大的影響。

報名時間到了!

目標受眾

  • 專業嵌入式工程師
  • 使用系統級軟體的軟體開發人員
  • 使用工業自動化的 C 程式設計師
  • 物聯網產品韌體開發人員

講師簡介

Martin Schröder 嵌入式韌體工程師

Martin 是嵌入式工程專家,專門從事嵌入式硬體和韌體設計。

Martin 在各種專案中擁有超過 15 年的工作經驗,包括視訊串流嵌入式系統、IIoT、感測器、工業自動化和控制。

Martin 是瑞典嵌入式顧問集團的執行長兼創辦人,協助嵌入式團隊提高效率和吞吐量。

字幕:英文

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • Udemy 永久擁有課程 許多課程約 NT400(點擊連結看更多)
  • 年訂閱每月 NT350(再享特別優惠:年度訂閱首年享 25% 折扣) 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading