@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「Tidy First?」を読んだ

午前中に読んで、午後から設計が上達していることが目標と書かれているだけありとても薄い本である。
それなのに章はたくさん。どの章も数ページでまとまっていてとても読みやすかった。

  • 第I部 整頓
    • 1章 ガード節
    • 2章 デッドコード
    • 3章 シンメトリーを揃える
    • 4章 新しいインターフェイス、古い実装
    • 5章 読む順番
    • 6章 凝集の順番
    • 7章 変数宣言と初期化を一緒の場所に移動する
    • 8章 説明変数
    • 9章 説明定数
    • 10章 明示的なパラメーター
    • 11章 ステートメントを小分けにする
    • 12章 ヘルパーを抽出する
    • 13章 ひとかたまり
    • 14章 説明コメント
    • 15章 冗長なコメントを削除する
  • 第II部 管理術
    • 16章 分けて整頓する
    • 17章 連鎖
    • 18章 バッチサイズ
    • 19章 リズム
    • 20章 絡まりを解きほぐす
    • 21章 先に整頓、あとに整頓、 改めて整頓、整頓しない
  • 第Ⅲ部 理論
    • 22章 要素を役立つように関係づける
    • 23章 構造と振る舞い
    • 24章 経済性:時間価値とオプショナリティ
    • 25章 明日の1ドルより今日の1ドル
    • 26章 オプション
    • 27章 オプション vs キャッシュフロー
    • 28章 可逆的な構造変更
    • 29章 結合
    • 30章 コンスタンチンの等価性
    • 31章 結合 vs 分離
    • 32章 凝集
    • 33章 結論
  • 付録A 読書リスト・参考文献

本書では機能開発が大きく止まってしまうリファクタリングではなく、整頓(Tidy) について説明されている。

I部は変数名の調整や実装に対称性を持たせること、コメントの記載内容についてや使ってないコードの削除など、テクニックについての説明が多かったのでとても読みやすかった。読んでいてあーそうそう、そういうものだよねと思ったり、そういったことも言われているの読んだり言われたり気がするなと思うなど、懐かしい気分になることも多かった。しかしできてないものだらけだなと思う気持ちの方が多かった。

Ⅱ部では、具体的に開発の中に整頓を取り入れていくかが説明され始めている。ここでなるほどと思ったのは、振る舞いの変更ではなく構造の変更をするということ。また整頓をするタイミングの話もとても興味深かった。後回しにするとずっとやらなくなってしまうというのは整頓以外でもその通りだなと思った。ただ、やるだけでもダメで、やり始めるといつまででも行なってしまうため、適度にやることがすすめられている。この辺りは、動いているコードによって考えることは変わるだろうから何度も考えてみることが必要な気がする。

Ⅲ部はお金の話が書かれている。振る舞いと構造の関係について、ソフトウェアのなかでお金がかかるものについての説明などがされている。そして、変更のコストに大きく影響する結合と凝集について述べられていた。
個人的には、今作っているソフトウェアがいますぐ価値を生むものか、将来に価値を生むものかを考えるというのはやってなかったことなので面白かった。この辺りについては再度読み直して考えをまとめてみたい。

途中途中に出てくるが本書は個人で行うためのもので、次作がチームで行うための話となるらしい。そちらが出るのを楽しみに待ちつつ、まずは自分の中でできることを増やしておきたい。

まとめ

  • どれもコンパクトなのに濃い内容だなと思う面白さがあった
  • 整頓やるべきかできるかの観点で今のシステムを見直してみたくなった
  • エクササイズに取り組もう