もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

テスト駆動開発 読み終えた

はじめに

こんばんは。

7/8 からテスト駆動開発の輪読会を行って、先週やっと終わりました。全7回でした。

第1回

yourmystar.connpass.com

第7回(最終回)

yourmystar.connpass.com

テスト駆動開発

テスト駆動開発

本題

第一部(多国通貨)は、例となるプロジェクトを、写経しながらTDDの体験が出来るようになってました。

第二部(xUnit)は、Pythonを使って実際にテスティングフレームワークを作成できるようになっていました。

第三部(テスト駆動開発のパターン)は、TDDを実践する上でのよく使うテクニックやパターンなどを紹介していました。

個人的には第一部の写経と、第一部に説明されていた文章がとても勉強になりました。

また、本の前半で書かれていた以下の文章もとても印象的でした。

TDDはテスト技法ではない。TDDは分析技法であり、設計技法であり、実際には開発のすべてのアクティビティを構造化する技法なのだ

ボク個人の印象としては 分析技法 というのが一番しっくりきました。

「先にテストを書いていくことがTDDだ」という勘違いが最近でも生じているかもしれませんが、この本の第一部をじっくり写経することで

そうではない。それはただの手段であって、TDDで開発する上での目的は別のものなんだ

ということに気づくことが出来ると思います。

どうしても最初は、いきなり実装からガッと書きたいなと思ってしまいますが、そこは経験値を積めば考えが変わってくるかもしれません。

また、第一部の写経を終えた後、輪読会メンバーで高速道路の料金算出ロジックを実際にTDDでモブプロする機会があり

「ここは明白な実装でいいだろ?」 「いや、ここは仮実装で堅実に行こう」

などワイワイ言いながら進められて、写経以外にも実りがある輪読会でした。

終わり

2017年に発売された本ですが、2020年現在でもとてもためになる良書でした。

また、コードはjavaで書かれていますが、内容は言語に寄らない情報だと思いますので、言語違いのアレルギーを出さず手を出してほしいです。

実際自分は第一部をphpで写経をしてました。

github.com

次は、レガシーコードからの脱却の輪読会が控えてます。

もっともっと勉強しないとなぁ...

現場からは以上です。