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

  • オライリージャパン
4.42
  • (14)
  • (9)
  • (3)
  • (0)
  • (0)
本棚登録 : 174
感想 : 14
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (388ページ)
  • / ISBN・EAN: 9784873116143

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • C言語でも特に組み込みを意識した領域でTDDを実践するためにノウハウが書かれた本。 kernel driverなんてユニットテスト書けないし、書いても意味がない、という人が多いですが、オブジェクト指向の考えを取り入れることで、ロジックとHWの責務をきちんと分割しつつ、Red-Green-Refactorとステップを踏むことで確実に実装を進めていけることがわかると思います。 ターゲットがなくても、ホスト上でロジックを先に実装してテストが通っている状態に持っていけることの意義は大きいです。 後半ではSOLID原則など設計指針の説明もまとめられていて、C言語でどのようにオブジェクト指向プログラミングができるか、も実践的なコードで解説されているので新しい発見があると思います。 監訳者の蛸島さんにお会いする機会があったのでサインをいただきました。ありがとうございました!

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

  • 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 抽象化が良いコードは索引として機能する。

  • CUnitとCppTest

  • いままで読んだ技術系の本の中でもっとも実践的な内容だと思う。組み込み系だから。。。という理由でテスト駆動開発・アジャイル開発の具体的なやり方がわからないと思っている人は是非読むべき。現在何度も読み返しながらテスト駆動開発を実践中。とても面白い。

James W. Grenningの作品

  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×