28章可逆的な構造変更
ダサい髪型とダサいタトゥーの違いは何だろうか? ダサい髪型は伸びるが、ダサいタトゥーは一生ものだ(まあ一生ではないが、戻すのはかなり難しい)。
構造の変更は振る舞いの変更とどう違うだろうか? 先に整頓することに関係する特性の1つは、構造の変更が一般的に可逆的であることだ。ヘルパー関数を抽出して、それが気に入らなかったら? インライン化すればよい。そうすれば、ヘルパーは存在しなかったことになる。
これと後悔するような振る舞いの変更を比べてみよう。10万通の税金通知を間違った番号に送ってしまったとしよう。さて、どうなるだろうか? そう、修正には多額のコストがかかるだろう。あなたの評判への影響はずっと続くかもしれない。通知を送った5分後ではなく、通知を送る5分前に問題を見つけられればどれだけよかったことか。
一般的に、私たちは可逆的な決定と不可逆的な決定とは分けて扱わなければいけない。不可逆的な決定では、レビュー、ダブルチェック、トリプルチェックが大きな価値を持つ。ペースはゆっくりにし、慎重にならなければいけない。その決定に大きなメリットがある場合でも、潜在的には間違ったときに大きなデメリットがある。そう。私たちはメリットを求めるが、それ以上にデメリットを避けたいのだ。
可逆的な決定についてはどうだろうか? ソフトウェアの設計判断のほとんどは、簡単に戻せる。その決定にはメリットがある(本書を通して見てきたとおり、振る舞いの変更を簡単にする)。だが、実際のところデメリットは多くない。もし間違っているのがわかれば決定を簡単に戻せるからだ。
間違いを避けることにほとんど価値がないので、間違いを避けるために多くを投資すべきではない。それが、本書で私たちがしていることを説明するのに「整頓」という言葉を選んだときにほのめかした経済的現実である。大したことはない。単なる整頓だ。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access