shigeの備忘録

日々の生活の備忘録です

モダンC言語プログラミング 花井志生 著 第一章の備忘録

モダンC言語プログラミング

花井志生 著

 

第一章 概要

C言語の需要は増えている・・・

低スペックマイコン等の需要が増える中で、リソースとしてC++等が使えない環境でもCは動くため、まだまだ組み込み用途ではCの需要がある。

 

Cとデザインパターン・・・

GoFデザインパターンを指すが、これはオブジェクト指向言語をベースにしているが、C言語でも活用可能。

 

Cとエクストリーム・プログラミングより、CとTDD(テスト駆動開発)・・・

実装を行う前にまず作成したい機能を検証する単体テストを作成し、そのテストをパスするように最小限の実装を繰り返していくのがTDDの考え方。一見手間が増えると思うが、常にテスト可能であることで品質が向上する。

TDDを導入するには以下の支援ツールを活用すべき。

 ①単体テストツール

  テスト対象に入力を与え、その結果を検証する枠組みを提供し、テスト結果をレポートする。

 ②カバレッジ測定ツール

  単体テストが想定通りに本体のコードをテストしているか検証するため、コードの中から実行されたテストカバー率を算出する。

 ③モック化ツール

  テストのハードウェアに依存している個所に対し、相互作用相手にモックと呼ばれるニセモノを用意して、相互作用させる。

 

Cとエクストリーム・プログラミングより、Cとリファクタリング・・・

リファクタリングはプログラムの体質を改善する作業を指すが、最もよく使われている解釈は、「プログラムの外部インターフェースを変更せずに内部を改善する」というもの。

リファクタリングを実行するのに大切なのはTDD。つまり先に単体テストを作成する点にある。

 

まとめ・・・

Cによる開発には以下のような特徴がある。

・テストが困難

・ターゲット機器でアプリケーションが使用できるリソースが限られている

・大量にばらまかれ、保守が困難

・OSがない環境も多い

プログラマが注意、管理しなければならない決まりが多い

・ターゲット機器のハードウェアバグ(エラッタ)も多く、たいていソフトウェアでカバーしなければならない

 

Cのモダンな開発スタイルは

IDEを活用する

デザインパターンを活用する

テスト駆動開発を活用する

リファクタリングを行う

継続的インテグレーションを用いる

 

モダンな開発スタイルを用いることで、以下の効果が得られる。

デバッグが容易になり品質、生産性が向上する

単体テストにより品質、生産性が向上する

リファクタリングによりコードの構造の改善が可能になる

・フィードバックがすぐに得られる

・ソフトウェアが常に動く状態で保存される

・正式なビルドが規定される

・レポート機能により状況、履歴をいつでも確認できる

 

参考文献

エンタープライズ アプリケーションアーキテクチャパターン Martin fowler著

https://www.amazon.co.jp/%E3%83%A2%E3%83%80%E3%83%B3C%E8%A8%80%E8%AA%9E%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E8%8A%B1%E4%BA%95%E5%BF%97%E7%94%9F/dp/4048913093/ref=asc_df_4048913093/?tag=jpgo-22&linkCode=df0&hvadid=295706574430&hvpos=1o1&hvnetw=g&hvrand=7736302605854881899&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009497&hvtargid=pla-523780179336&psc=1&th=1&psc=1