見出し画像

『Tidy First?』の感想

はじめに

以下の本を読了したので感想をまとめます。

かなり薄い本です。本文だけだと約120ページくらい。思わずページ単価を計算してしまいそうです。僕はこの本から最大の価値を享受できる人にとっては第I部はなくてもいいと思ってるので(※個人の意見です)、それを差し引くとさらにページ単価アップです。

にも関わらず、この本はお金を払って読む価値のある本だと思います。とくに第III部から得られる洞察は大きいのではないでしょうか。

本の構成

この本は全3部構成で、章の数は33章です(1、2ページの章も多い)。

第I部 整頓」では、整頓のテクニックについて1章1トピックで具体例を使って説明されています。設計をちゃんと学んだことがある人にとっては、どこかで読んだことのある内容だと思うので、確認程度にさらっと読み進めても問題ないでしょう。

第II部 管理術」では、開発ワークフローの中でどのような順番でどの程度整頓を行うべきか、といったトピックが論じられます。

第III部 理論」がこの本のメインテーマです。ソフトウェア設計とは何か、振る舞いと構造の関係について述べた後、ディスカウントキャッシュフローとオプションのメタファーを用いて、整頓を先にすることとしないこととのトレードオフが論じられます。そして、変更のコストに大きく影響する結合と凝集について述べられます。

感想

第III部で出てくる、ディスカウントキャッシュフローとオプションのメタファーについては、金融知識の要る話なので一瞬ピンとこなかったのですが、注意深く読んで理解すると実に的を得た比喩だなと感じました。

僕なりにこのメタファーを理解したポイントをまとめます:

  • 整頓された構造は、将来発生し得る振る舞いの変更を(低コストで)実現可能とする

  • 将来必要になったときに、振る舞い変更できるということがオプション

  • 先に整頓を行うということは、オプション取引を行うということ

  • 整頓のために支払う設計コストが、オプションに対するプレミアム

話が変わりますが、この本を読む前に、来月公開予定の自社テックブログ記事を書きました。リファクタリングに関する記事なのですが、その中で以下のような図を描きました。

主旨をまとめると以下です。

既存のコードが備えている柔軟性によって、振る舞いの変更コストは変動する。変更コストを下げるためのリファクタリングコストとの合算が、変更によって得られる便益の向上を上回る場合は、見送るという判断も正当化される。

同じようなことが『Tidy First?』に書かれていたので、うんうん頷きながら読んでいました。

「常にリファクタリングをしなければならない」と考えるのは思考の硬直かもしれません。あらゆる設計判断は、目的ドリブンでトレードオフを十分に見定めて行うべきだと感じました。

最後に、この本は全3部作の1冊目であり、すでに次作「Tidy Together?」は構想が進んでいるようですね。今から楽しみです!

いいなと思ったら応援しよう!

yonekubo
もし記事の内容が何かの参考になりましたら、チップで応援頂けますとありがたいです!