アレグザンダーの思想とTDD

アレグザンダーを学習して、TDDにそれ以前とは違うイメージが芽生えた。開発者とCodeとの「近さ、親密さ」って言えばよいのかな。

アレグザンダー感覚だと、家や街の建築物の形と人とのあいだには、他の人と比べもっと親密な繋がりを感じ取っていると思われる。この かたち と ひと の親密なつながり感覚を呼び覚まさせるのが「パタンランゲージ」の役割の1つとなる。

「TDDを行っている」をもう少し詳しく記述するなら、 Codeや実行結果を 自分の感覚器官を通じて知覚し 沸き上がる内なる声にしっかりと耳を傾けて よいコードをかたちづくろうと ふるまうことで Clean Code ができてくる、となるだろうか。

TDDがうまく機能しているかの主観的な指標として、「私は今目の前にしているCodeに親しみを感じているか?継続して触りたいか?」Yesと答えられるなら、そこそこうまくいっていると思われる。通常なら、内部品質を引き合いに出し、「読みやすさ」「テストしやすさ」「修正しやすさ」という言葉で語られるだろうが、開発者とコードの 物理的心理的な距離感を強調するため、あえてここは「親しみやすさ」で質問。


TDDにも死角がある。第一のTDDの関心ごとは、インターナルクオリティ。エクスターナルクオリティは次。TDDの死角を穴埋めするのにAcceptance Testing や DDD や その他のアプローチ に期待感を持っている。


アレグザンダーを学習して、DDDのイメージ像が豊かになった。開発者とドメインの「近さ、親密さ」って言えばよいのかな。 この話はまた今度。