KDOC 343: 『Tidy First?』

この文書のステータス

  • 作成
    • 2025-04-28 貴島
  • レビュー
    • <署名>

概要

『Tidy First?』 はリファクタリング前の、小さなコードの改善について書かれた本。

メモ

  • 2つの端
    • 推測的設計: 最初にすべてを設計する
    • 反応的設計: 必要になってから設計する
  • 自分が呼びたいインターフェースを実装して呼び出す。新しいインターフェースは単に古いインターフェースを呼ぶ。すべて移行できたら、そのあとで実装をインライン化する
  • ファイル中のコードを読みてが遭遇したいと考える順番に並び替える
  • パラメータのかたまりをマップで渡すことはよくあるが、どんなデータが必要なのかを読み取るのが難しくなる
  • 自動リファクタリングツールを使う
  • 整頓とふるまいの変更を切り替えるたびに新しいプルリクエストを作る
  • ゴルディロックスのジレンマ
  • 設計者は要素を役立つように関係付ける
    • 要素の作成と削除
    • 関係性の作成と削除
    • 関係性が生み出す利益の増加
  • システムの構造
    • 要素の階層
    • 要素間の関係性
    • その関係性から生まれる利益
  • ハイゼンベルクの不確定性定理
  • オプショナリティを高めることを覚えるにつれ、カオスは絶好の機会だととらえるようになった
  • 構造は振る舞いのようにわかりやすくはない。プロダクトロードマップが機能のリストになっているのはわかりやすいからだ
  • 構造に投資してオプショナリティを維持し拡張することが必要である
  • 構造の変更と振る舞いの変更はどちらも価値を生み出すが、可逆性という面で別物である
  • 『マネーの意味論』
  • カオスな状況では、モノよりオプションのほうが優れている。不確実性に対してオプションを作る
  • お金の時間価値が推奨しているのは、先に整頓するよりもあとに整頓するほう(ときには先に整頓してから振る舞いを変更するほうが安価なこともある)
  • ある種類の変更の結合を減らせば減らすほど、別の種類の変更に伴う結合が大きくなる
  • 「私たちはトレードオフ空間にいる」
  • どれとどれが結合しているかという情報は不完全で、変化する
  • 先に整頓するかに影響をあたえる要素
    • コスト
    • 収益
    • 結合: 整頓によってより少ない要素の変更になるか
    • 凝集: 整頓によって変更が必要な要素がより小さく、もっと集中した範囲になるか
  • 『時を超えた建設の道』
  • 『形の合成に関するノート』

関連

なし。