テスト駆動開発の著者のKent Beckの新著ということで友人に一緒に読もうと言われて、最近本を買いすぎているなと思いながらもついつい買って読んでしまった。
概要
まず、驚いたのは本の薄さ。本文は118ページで、33章からなるので、ほとんどの章が2-3ページで終わる。読むのは難しくない。
本は3部に分かれていて、整とん、管理術、理論の3つ。技術書でイメージする内容は2/5くらいのボリュームの整とんの部分だろう。
整とんではどのようにコードをきれいにするかという点が簡潔に触れられている。(早期Returnとか)
次の管理術では、1/5くらいの分量でいつ整とんするか、どのサイズで変更するかなどを説明している。
そして、2/5のボリュームの理論編は難しい。
難しく分からなかったからこそ重要だと感じた。
理論編について
翻訳者のいう通り、まだちょっとピンときていない。 オプションという金融の概念が出てくるからそれはそうだと思う。
繰り返し言ってるけど、『Tidy First?』のいちばん重要なところは24章~27章。ここは金融知識に関係していて一度読んだだけでは理解が難しいので、何度も読むことをお勧めします。この4章ほんとうに素晴らしいんだよな。https://t.co/yspW9ZH3Ri
— Ryutaro YOSHIBA (@ryuzee) February 6, 2025
金融でいうオプションについて
金融の文脈でいうオプションはよく分からなかったので、ChatGPTに聞いてみた。
1.柔軟性の価値ー権利で合って義務ではない
2.リスク管理の考え方ー保険として考える
3.本質的価値と時間価値ー今の1ドル>将来の1ドル
これは何となく分かるような気がする。
オブションについて
構造の変更と振る舞いの変更を分けて扱っている。振る舞いの変更はフィーチャーリストでぱっと分かるような機能の部分。それに対して、構造の変更は分かりにくい。どちらも価値を生み出すものであるが、構造の変更は非可逆であるように読めた。これを表す文として「構造に投資してオプショナリティを維持し拡張することが必要」というのは整とんをする際の指針となると思う。
これまで、ソフトウェアはある程度の指針や、経験則に基づいて変更を加えていくようなものだと思っていたが、著者がオプションという観点からソフトウェアの変更を捉えていて、また少し見方が変わると思った。機能を提供することで、またユーザーの要求も変わる。このあたりの考えはまだ理解しきれていないが、プログラミングがもう少し投機的な営みと考えられるなと思った。
最後にこの本でもう少し理解したいと思った一節が以下。
「価値予測の不確実性が高いほどオプションの価値は高い」
言葉は分かるが、実感をともなった言葉としては理解出来なかった。
参考
動画も見てみるか。
ケント・ベック氏がイベントのキーノートで『Tidy First?』について話している動画。50分ちょい。一度見てみるといいかもhttps://t.co/iFhOQY7NTj
— Ryutaro YOSHIBA (@ryuzee) January 15, 2025
あとはSubstackもフォローしてみよう。
https://substack.com/@kentbeck
UnsplashのNo Revisionsが撮影した写真