テスト駆動開発Ⅰ部:多国通貨の写経を終えて感想

ここ1ヶ月程、この本の写経をしていました。

ようやく先程Ⅰ部:多国通貨の写経が終わりましたので、感想を簡単に書いていきたいと思います。

この本に期待していたこと

私は大規模なWebアプリケーションをイチから開発した経験がありません。自分が一番弱い所はどこだろうかと考えた時に、詳細設計を考える能力がまだまだ足りていないと考えています。

テスト駆動開発(以後TDD)は様々なメリットを持つ開発手法です。私にとってどういった所がメリットだと考えているのかは、以下の記事にまとめましたのでよければ読んでみてください。

上の記事でも書きましたが、TDDを実践することで詳細設計についてやりやすくなると考えています。しかし一方で、この恩恵を私は十分に受けられていないと感じていました。というのも、そもそも正しい詳細設計について学べていないために、設計の問題に気付いても取れるアクションが少ないのです。

そこで、実際のTDDの開祖が実装する流れを追う事で、詳細設計についても学ぶ事ができればと考えていました。

ついでにですが、現在仕事で書いている言語はPHPなので、JavaのコードをPHPに翻訳して写経していこうと考えました。

実装がテストによって導かれるということ

一通り終わってみて、TDDは「テストにより、実装における問題の所在を明らかにする」開発手法なのではないかと思っています。

机上で最強の設計をこね回しても、コードに落とし込めなければ何の価値も生まない。だから、期待結果をテストコードで表現して、期待結果を返すプロダクションコードをいち早く仕上げる。

プロダクションコードを写経する上で、大きな設計の中で今書いているコードがどういう意味を持つのか、時々曖昧になる事がありました。テストコードを通す上で必要になるのは間違いないため、手を動かすことには支障無かったのですが。

それが良い事か悪い事かはさておき、この手を動かすに支障ないというのが、実装がテストによって導かれるということなのかなと思うなどしました。

設計について

ただ、設計については残念ながらあまり学べませんでした。

本に書いてある設計は時々自分には飛躍しているように見えていましたし、ちょっと時間を掛けて考えてクラス設計の持つ意味を理解しても、自分自身が次から似たようなパターンの問題を解決したいとなった時に、自然に思いつくかといえば疑問です。

ここに関してはTDD本に期待するべきでない領域だったのかもしれませんが、TDDを実践する上のメリットは詳細設計にあると今でも思っているので、上手くエッセンスを学べなかったのは残念です。

デザインパターンや他の設計手法の勉強をもう少し積んだ上でどう見えるのか、再チャレンジしてみたいなと思います。

これから

Ⅱ部xUnitの実装を進めていこうかと思います。

この先に期待するのは、テスティングフレームワーク作成を通じた良いテストの書き方です。

もっと良いTDD実践者を目指してやっていきます!(唐突なぶった切り)

この記事が気に入ったらサポートをしてみませんか?