TDD本は凄いぞ!
04/9/21発売の「バグがないプログラムのつくり方 JavaとEclipseで学ぶTDDテスト駆動開発」
以下「TDD本」と略記)を改めて読み直しました。
PG初心者だけでなく、経験者も惹きつけるだけの内容があります。
僕が興味を抱いた箇所は下記の通り。
【1】TDDとトヨタ生産方式の比較
プロジェクトにTDDを導入する時、メンバーを巻き込むのはあまり労力がかからないだろうが、上司にTDDの良さを納得してもらうのはたやすくない。上司がオブジェクト指向をマスターしていれば、TDDのコンセプトを説明するだけで承認されるだろうが、普通は構造化の世界に生きているから、まずありえない(笑)
では、どうすればTDDの良さを上司に理解してもらえるか?
TDD本では、「トヨタ生産方式」と持ち出して、TDDのコンセプトと似ている例をあげている。
例えば、後工程引取方式は、TDDでいうSimpleな設計に当たる。つまり、後工程引取方式とは、後工程が前工程から必要な部品を調達していくという引算の発想であり、JustInTimeの考え方そのもの。TDDなら、テストプログラムを最初に作ることで、開発モジュールのインターフェイスを考えるようになるので、無駄な実装はしなくなる。「徹底した無駄の排除」を貫くトヨタ生産方式とYAGNI原則を貫くTDDは、コンセプトが非常に似ていないか? 「自働化」は、TDDなら「テストの自動化」に相当しないか、と。
この説明を読むと、最近のアジャイル開発の翻訳本がトヨタ生産方式を絡ませている理由の一つが分かります。
又、管理者にとってもTDDは進捗管理に役立つ。ウォーターフォール開発で進捗80%と報告を受けても、プログラムはできていないのだから、本当の進捗は10%かもしれないのに、検証する術がない。しかし、TDDなら、テストプログラムでカバレッジを測定できるので、実装ロジックの80%が完了している、という事実を数値で知ることができる。
更に、システムを前任者から引き継ぐ時、管理者としては、ドキュメントとソース一式よりも、テストプログラムとソース一式の方が嬉しくないだろうか? ドキュメントなんて、保守フェーズですぐに古くなるし。テストプログラムがあれば、引き継いだプログラムの単体テストは保障されているからね。
【2】モックオブジェクトを使ったテストプログラムと依存性注入(Dependency Injection)の説明は非常に分かりやすいです。
ソースを読むと分かるのですが、モックオブジェクトはインナークラスを使うんですねえー。インナークラスはThreadを使う時しか見かけなかったけど、こういう使い方をするんですね。
インナークラスをCreateすることでモックオブジェクトを生成するロジックを、xxx.diconに書かれたコンポーネントをSingletonで呼び出すロジックに変えたら、あらま、Seasarそのままじゃないですか!
Dependency InjectionはFactoryMethodの変形パターンと解釈していいのだろうか?
TDD本はお勧めです。是非、皆さんもご購入を(^^)
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- Redmine、DOA、PM理論。点だった知識が“世界の見え方”に変わる瞬間(2026.05.23)
- TwitterやFacebookは人力キュレーションツールとして使う(2022.10.02)
- 「現代病「集中できない」を知力に変える 読む力 最新スキル大全」の感想(2022.08.28)
- 人類は海辺から生まれた~水生類人猿説が面白い(2022.08.09)
- 戦前の日本人の気質はまだ成熟していない青年期と同じだった(2022.06.14)
「IT本」カテゴリの記事
- パランティアテクノロジーズの正体とはAI時代のSIerだ(2026.06.21)
- マイクロマネジメントに陥ったチケット駆動開発の罠と再生戦略 #redminet(2026.04.26)
- リプレースとアーキテクチャモダナイゼーシヨンの違いの本質は何なのか?(2026.04.08)
- アーキテクチャモダナイゼーションにおけるAMETチームの役割と責任範囲は何か(2026.03.23)
- アーキテクチャモダナイゼーションとはそもそも何なのか?(2026.03.22)
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「プロジェクトマネジメント」カテゴリの記事
- なぜCCPMは挫折する?経営者の理想と現場の挫折をLycheeRedmineが解決する #redmine(2026.06.30)
- 製造業DXを支える工程管理とは?Redmineの大規模プロジェクト階層化における課題:プロジェクトツリーの設定継承と関連チケット制限の壁(2026.06.27)
- Redmine × AIがプロジェクト管理を変える:祝・Redmine20周年!RedmineJapan Vol.5の司会を全うして見えた「AI連携」と「製造業マネジメント」の未来 #RedmineJapan(2026.06.27)
- プロセスには「学習のループ」が必要だ(2026.06.20)
- JTCの壁を壊す「Redmine参謀本部」という戦略~現場の職人気質を活かす組織論(2026.05.19)


コメント