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本はお勧めです。是非、皆さんもご購入を(^^)
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- デブサミ2021の感想~コミュニケーションスタイルがオフラインからオンラインに激変している(2021.02.25)
- 考えながら書く人のためのScrivener入門の感想(2020.12.06)
- 課題は問題点をひっくり返す表現だけで良い場合もある(2020.09.28)
- ツールを使いこなせる事の重要性が増している(2020.05.28)
- ココログHTTPS化のメモ(2019.12.26)
「IT本」カテゴリの記事
- 本を書く時の心構え(2021.02.01)
- GTDは箱の使い分けが鍵を握る(2020.12.09)
- 考えながら書く人のためのScrivener入門の感想(2020.12.06)
- Scrapboxが使いやすい(2020.10.18)
- Ruby技術者認定試験の感想(2020.05.08)
「プログラミング」カテゴリの記事
- Ruby技術者認定試験の感想(2020.05.08)
- 前処理大全の良いところ~SQLとRとPythonで対比できる(2019.07.10)
- WinSCPでトンネリングする方法のリンク(2018.09.09)
- 仕様書にもExcel脱却が求められている(2017.12.23)
- ソフトウェアの複雑性は本質的な性質であって偶有的なものではない(2017.05.05)
「プロジェクトマネジメント」カテゴリの記事
- トランザクティブ・メモリーを使え~「プロジェクトをリードする技術 / Project Leading is Skill」の資料はプロジェクトリーダー初心者にお勧め(2021.02.13)
- 信頼度成長曲線の落とし穴(2021.02.12)
- SAFeの本質はアジャイルリリーストレイン、LeSSの狙いは組織のスクラム化ではないか、という仮説(2021.01.26)
- キャズム理論をプロセス導入の問題解決に使うアイデア(2021.01.25)
- 文化は組織構造に従う(2021.01.19)
コメント