LoginSignup
11
9

More than 5 years have passed since last update.

テスト駆動開発による組み込みプログラミングをgoogletestでやる~SOLIDな設計編~

Last updated at Posted at 2018-02-10

はじめに

Amazon.co.jp: テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計

本書で学習を始める人が、環境構築で躓かないようにしよう!で始めたシリーズの最終回です。
これまでのシリーズ一覧はこちら。

テスト駆動開発による組み込みプログラミングをgoogletestでやる
テスト駆動開発による組み込みプログラミングをgoogletestでやる8章
テスト駆動開発による組み込みプログラミング~モック&フラッシュドライバ編~

SOLIDな設計

本章では、密結合したLEDドライバコントローラを、SOLID原則のうちオープン・クローズドの原則とリスコフの置換原則を適用して動的インタフェースに変更していきます。
詳細は、書籍をご覧下さい。

【密結合したLEDドライバコントローラ】
tightly_coupled_design.png

↑を↓に。

【SOLID原則を適用したLEDドライバコントローラ】
solid_design.png

レポジトリ

https://github.com/tomoyuki-nakabayashi/TDDforEmbeddedC_SolidDesign
下準備完了したコミット:
SHA:4b0857eeb273736d7e5cf9d2c424e99797f31fbd

今回、かなり下準備に手間取りました。(サンプルにノイズが多い…)
書籍を写経しながら進める場合は、↑のコミットから開始してください。

さいごに

本書では、C言語でTDDを行う方法だけにとどまらず、C言語でテスト容易な、柔軟な設計を実現する方法が解説されています。
そのためには、関数ポインタを有効利用することが必要になります。
書籍内で指摘されていますが、関数ポインタは設計に重要な役割を果たすのに、C言語プログラマに見落とされがちです(私自身も含めて)。
このような重要なテクニックを学べる本書は非常に価値あるものであり、多くの組込みプログラマの皆様に読まれて欲しいと感じました。

TDDによるC言語プログラミングは、非常に楽しいです。
組込み開発に従事しているプログラマが、C言語でのTDDを始めるのに、この記事が役立つと幸いです。

現在、CMakeでのビルド環境を準備中です。
幅広い環境で勉強できるように環境構築していく予定です。

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9