はじめに
みなさんこんにちは。この前、アラジンの実写を見てきました。私のディズニー作品で一番好きな作品です。ランプの魔人ジーニーをウィル・スミスが演じていたのですが最高にハマっていました。3つの願い事が叶うならどうしましょうか。願ってまで手に入れたいものが無いので困ってしまいますね。しいて言えば、低気圧で頭が痛くならないようにしてほしいです。梅雨の時期はもう絶望的な体調です。
さて、前置きはこのあたりで。今回は前回に引き続きTDDのお話をしたいと思います。
TDDのサイクル
TDDは次のようなサイクルで進んでいきます。
- 次の目標を考える
- その目標を示すテストを書く(テストファースト)
- そのテストを実行して失敗させる(Red)
- 目的のコードを書く
- 2で書いたテストを成功させる(Green)
- テストが通るままでリファクタリングを行う(Refactoring)
- 1~6を繰り返す
この手順を小さく回すことで、素早いフィードバックを得ることができるというわけですね。
動作するきれいなコードって?
前回の記事の冒頭でTDDの目標として述べた「動作するきれいなコード」って何でしょうね。 原典には、
「動作するきれいなコード」は「Clean code that works」であり「Beautiful」ではないのです。
つまり、整頓されたコードがきれいなコードであるということになるそうです。 まぁ、「SOLID原則」や「コードデザインパターン」「クリーンアーキテクチャ」なんだったりとそこらへんを理解する必要性がありそうですね。
……。 あれ? 道が険しくね?
という、危機感から最近勉強し始めました。しっかり理解するとテスト書く時間も短縮されそうです。
まとめ
TDDの目標を深堀してみました。後半新しい単語を入れて全然初心者に優しくなくしてしまいましたね。すみません。
最後にTDDの目標のその先、目的を一言でいいます。
それは「健康」です。
TDDはテストを書きますが、それは大きな目的を実現するための手段でしかありません。TDDで目標とするのは「動作するきれいなコード」は、すなわち「変化に対応」しやすいコードであるとも言えます。
変化に対応しやすいコードは、言い換えれば不安が少ないコードだと言えると思います。ユーザーの要望をかなえるためには、コードを変化させなければいけませんが、「動作するきれいなコード」ならば、安心して変更することができますね。
そして、この「不安が少ない」状態を一言で表せば、それが「健康」であるということです。
さらに、「健康」なコードは不安が少ないため、開発者自身の「健康」にもつながる。一人一人の開発者が健康なら、チーム全体も「健康」であり、ひいては開発、運用している製品、サービスとその開発者、ユーザーなど関係者全員の健康にもつながるというわけです。
この大きな目的のために、まずは目標として「動作するきれいなコード」を維持するよう私自身も心掛けていければと思います。