🐈

Tidy First?を読んだ感想

2024/12/31に公開

感想

1回読んだ内容なので乱筆です。読んで思ったことをアウトプットしたかったので思ったことをそのまま書いてます。

Kent Beckの新作ということで読みました。
Tidy First?は3部作の1作目にあたり、個人による個人のためのソフトウェア設計について扱っていました。
具体的にいうと整頓、結合、凝集度が主なキーワードかと。加えるならオプションも。

  • I部整頓
    整頓(リファクタリングのサブセットと書いてある小さなリファクタリングとも書いてある)が中心。
    ガード節やデッドコード、説明変数など目新しいものはないです。部は各章1~3ページに収まっているので気になったところ中心に読めばいいかなと。
    個人的には3章のシンメトリーを揃えるに書いてある書き方をやり方を1つ選ぼう。他もそのやり方に合わせよう。にそうだよねってなりました。遅延初期化を例にしていますが、やっていることは同じでも人によって書き方が違ってシステム内で統一されていないのを多々みてもやっていたので。

  • II部の管理術
    I部に書いてある整頓についていつやるかと粒度について触れています。
    すぐ整頓するのが正義ではなく、下記の4パターンに分類してメリットとデメリットに触れているのが良いと思いました。

    • 整頓しない。
    • 改めて整頓する。
    • あとで整頓する。
    • 先に整頓する。

III部理論
構造と振る舞いの話とオプション取り分けオプションは明示的に意識してなかったので気づきを得られました。
結合と凝集にも触れられていますが、ある種の結合を減らせば減らすほど、別の種類の変更に伴う結合が大きくなるは思っていたことを言語化してくれてありがとうってなりました。
結合を完全に無くすことはできないので管理しやすい形に持ってくことが肝要かなと。
結合と凝集もこの本で初めてくる概念でないし説明も数ページでさらっとしているので概念知らないで読むと分かりづらいかもしれません。
III部は時間とってもう一度読み直してみたいと思います。

整頓を先にするかについては下記観点が絡み合っているので参考になるかと。

  • コスト
  • 収益
  • 結合
  • 凝集

まとめ

3部作の1作目なので個人にフォーカスした内容でした。技術的には目新しい内容は少ないですが、少ないページなのにまとまっているので辞書的に読めると思います。
整頓の具体例や結合や凝集の説明はさらっとしているので、細かい内容はリファクタリング(2部で取り上げるそうですが)だったらMartin Fowlerのリファクタリング読んだ方が良いと思いました。

GitHubで編集を提案

Discussion