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

  • 103人登録
  • 4.47評価
    • (11)
    • (6)
    • (2)
    • (0)
    • (0)
  • 11レビュー
制作 : 蛸島 昭之  笹井 崇司 
  • オライリージャパン (2013年4月24日発売)
  • Amazon.co.jp ・本 (388ページ)
  • / ISBN・EAN: 9784873116143

テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計の感想・レビュー・書評

並び替え:

表示形式:

表示件数:

  • C言語でのテスト駆動開発の流れ

    C言語でテスト駆動開発をするために,UnityとCppUnitというツールを使った手順を記している。
    テスト駆動開発について,興味があったので読んだ。
    C言語において,テスト駆動開発について書かれている本は少ないので貴重だった。

    最初になぜテストが必要なのかについて書かれており,その後導入,組み込み機器における依存関係の解消方法,モジュール化,レガシーコードへの対処,最後にリファクタリングという内容だった。

    手順が丁寧に書かれているように見えたが,テスト駆動開発は初めてだったのでこれだけではいまいち理解できなかった。
    テストの自動化など細かい部分が書いていないという印象だったので,別の本や追加の調査が必要。
    表題にアジャイルとかオブジェクト指向とか書かれているが,あまりそのような内容はなかったと思う。

  • 表題のテーマに関して日本語で読める、現時点でほぼ唯一の情報源。中身も解説だけでなく、コードの実例も豊富で、非常に実践的である。即購入してチームメンバーに配布。会社の図書室で10冊ぐらい購入して、全員に読ませたいものである。

  • 組み込みプロジェクトでテストを回すための心構えから方法論まで重要なことがたくさん書いてある。

    組み込みでハードウェア依存が多くて……みたいな言い訳をもほどほどにしなくてはいけないという気になる。

    割とどの本を読んでもレガシーコードのリファクタは歯を食いしばって死ぬ気で莫大な工数をかけてやるしかない、というような話(極論)になっているし、実際その通りだと思うのだが、ほんとうに最悪の場所というのはそもそもテスト環境でソースコードのコンパイルがまともに出来ないんだよなぁ……

  • デスクトップでもCで書くことが必要になることはある。組み込みに限らずユニットテストの知見をCに応用するための参考になる。

  • 途中からC言語でオブジェクト指向言語をどう真似るか?という話になっていて笑った。構造体にvtableまで定義するのだもの。そこまでされると、もしC++コンパイラが使える環境なら素直にC++を使いましょう、としか言いようがない。

  • C言語でもポリモーフィズムによる柔軟な設計・実装ができることを
    名言してくれる書籍に出会えて嬉しい。
    # 逆を言えば仮想関数や継承を使っても柔軟な設計・実装に
    # なるわけではない。:-)

    テスト駆動開発、テストダブルな試行を重ねることにより、
    プロダクトコードは磨かれ、高凝集、疎結合な作りになっていく。
    適切に抽象化されたコードは、詳細な実装への索引として機能し、
    読み手が見たいと思う処理に導いてくれる。

    Kent Beck テスト駆動開発入門 2003 Productivity Award
    Kent Beck XPエクストリーム・プログラミング入門 2000 Jolt Productivity Award
    Robert C. Martin アジャイルソフトウェア開発の奥義 2003 Jolt Award
    Martin Fowler リファクタリング
    Michael Feathers レガシーコード改善ガイド(未読)
    などのエッセンスを、組み込みプログラミングの世界でどのように実践するか、
    そのヒントが実例とともに紹介されている。

    これだけ実例を示されても実践できていない自分はまだまだ未熟だ。がんばろ。

    James W. Grenning ボブおじさんと同僚 agile 宣言の初期メンバ
    Ken Poughなどとも知り合い

    x SOLID原則 良い設計 テストしやすい設計
    xviii 蜂はきれいにシステムを構築する
    1 カーニハン引用 こまめな動作確認 縦糸と横糸
    6 ケントベック 7 ファウラー
    44 46 必要以上に抽象化、汎用化しない。一歩づつ進めていく。
    47 1つのテストにたくさん盛り込みすぎてしまう。読みやすさを損ない、焦点をぼかすことになる。
    59 不機嫌な対応をされても、聞いたほうがいい。
    69 実行可能なリマインダとしてIGNOREテストケースを仕込んでおく。
    73 76 DRY 重複コードの弊害 似たような作業を網羅してしまう。
    75 グレーボックステスト 徹底度もグレーゾーン
    83 組み込み業界ではよく見かける演習
    85 理想主義者は、その人が問題からどれくらい離れたところにいるかに比例して拡大する。
    109 やりとりのシーケンスをシミュレートするのは、全体をシミュレートするよりもはるかに簡単で、はるかに効果的だ。
    145 あたり やりすぎを防ぐコツ。IFを適切にするコツ。もしかしたら作りこみすぎているかもしれない。
    151 あたり 次の橋ができるまで、今まで渡れていた橋を燃やさない。
    159 ランダム関数のテストコード

    218 ポリモーフィズム
    225 ANSI C99 構造体初期化
    242 抽象化が良いコードは索引として機能する。

  • TDDの考え方だけでなく、すごく実践的な内容が多い。

    実践的なコードはC言語で書かれているため、C言語での組み込み開発者にはすごく参考になるような気がした。
    (関数ポインタとかを活用したテストコードの書き方とかそんな感じ)

    実践的なコードと合わせてTDDを学びたい人向け。

  • CUnitとCppTest

  • 系推薦図書 3系(情報・知能工学系)

    【配架場所】図・3F開架 
    【請求記号】007.63||GR

    【OPACへのリンク】
     https://opac.lib.tut.ac.jp/mylimedio/search/book.do?target=local&bibid=158822

  • 和図書 548.964/G84
    資料ID 2013100896

全11件中 1 - 10件を表示

James W. Grenningの作品

この本を読んでいる人は、こんな本も本棚に登録しています。

有効な左矢印 無効な左矢印
Joel Spo...
クリス・アンダー...
Travis S...
ケント ベック
有効な右矢印 無効な右矢印

テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計を本棚に「いま読んでる」で登録しているひと

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

すぐれた組み込みソフトウェアを開発するための手法を豊富なサンプルコードとともに解説する本。前半では、制約のある組み込み環境でテスト駆動開発を行うための基礎知識とノウハウを懇切丁寧に紹介します。後半では、オブジェクト指向をベースに考え出されたSOLID原則やリファクタリングをC言語に適用し、アジャイルな設計を実現するための方法を示します。さらに、レガシーコードへのテストの追加方法についてもサンプルコードを使って詳細に解説します。

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

ツイートする