モダンC言語プログラミング
花井志生 著
第一章 概要
C言語の需要は増えている・・・
低スペックマイコン等の需要が増える中で、リソースとしてC++等が使えない環境でもCは動くため、まだまだ組み込み用途ではCの需要がある。
Cとデザインパターン・・・
GoFのデザインパターンを指すが、これはオブジェクト指向言語をベースにしているが、C言語でも活用可能。
Cとエクストリーム・プログラミングより、CとTDD(テスト駆動開発)・・・
実装を行う前にまず作成したい機能を検証する単体テストを作成し、そのテストをパスするように最小限の実装を繰り返していくのがTDDの考え方。一見手間が増えると思うが、常にテスト可能であることで品質が向上する。
TDDを導入するには以下の支援ツールを活用すべき。
①単体テストツール
テスト対象に入力を与え、その結果を検証する枠組みを提供し、テスト結果をレポートする。
②カバレッジ測定ツール
単体テストが想定通りに本体のコードをテストしているか検証するため、コードの中から実行されたテストカバー率を算出する。
③モック化ツール
テストのハードウェアに依存している個所に対し、相互作用相手にモックと呼ばれるニセモノを用意して、相互作用させる。
Cとエクストリーム・プログラミングより、Cとリファクタリング・・・
リファクタリングはプログラムの体質を改善する作業を指すが、最もよく使われている解釈は、「プログラムの外部インターフェースを変更せずに内部を改善する」というもの。
リファクタリングを実行するのに大切なのはTDD。つまり先に単体テストを作成する点にある。
まとめ・・・
Cによる開発には以下のような特徴がある。
・テストが困難
・ターゲット機器でアプリケーションが使用できるリソースが限られている
・大量にばらまかれ、保守が困難
・OSがない環境も多い
・プログラマが注意、管理しなければならない決まりが多い
・ターゲット機器のハードウェアバグ(エラッタ)も多く、たいていソフトウェアでカバーしなければならない
Cのモダンな開発スタイルは
・IDEを活用する
・デザインパターンを活用する
・テスト駆動開発を活用する
・リファクタリングを行う
・継続的インテグレーションを用いる
モダンな開発スタイルを用いることで、以下の効果が得られる。
・デバッグが容易になり品質、生産性が向上する
・単体テストにより品質、生産性が向上する
・リファクタリングによりコードの構造の改善が可能になる
・フィードバックがすぐに得られる
・ソフトウェアが常に動く状態で保存される
・正式なビルドが規定される
・レポート機能により状況、履歴をいつでも確認できる
参考文献
エンタープライズ アプリケーションアーキテクチャパターン Martin fowler著