18章変わらないものはない
時がものごとを変えるといわれるが、あなた自身が実際に変えなければならない。
――アンディ・ウォーホル
プログラミングの世界には、奇妙な話があります。何らかのコードを一旦書いてしまえば、コードは神聖であり、いかなるときでも変更されるべきではないというものです。
これは、他人のコードにも当てはまります。絶対触ってはいけないということです。
開発の最前線のどこか、おそらく最初のチェックインのとき、あるいは製品リリースの直後に、コードは防腐処置が施されます。つまり、コードの分類が変わり、コードは昇格します。下層階級ではなく、デジタルの王様になります。かつては疑わしかった設計が、突然申し分のないものと見なされ、変更できないものになります。コードの内部構造は、めちゃくちゃではないと見なされます。外部の世界に対するすべてのインタフェースが神聖であり修正できません。
プログラマはなぜこのように考えるのでしょうか。恐れのためです。間違ってしまう恐れ。壊してしまう恐れ。余分な作業に対する恐れ。変更のコストに対する恐れです。
すべてを理解していないコードを変更することから生まれる、現実的な不安があります。ロジックを徹底的に理解していない、何を行っているのか確信が持てない、変更によって生じる可能性があるすべての結果を理解できていないといった場合、プログラムを奇妙な方法で壊したり、めったに発生しない振る舞いに変更したりして、製品に分かりにくいバグを入れてしまいます。そんなことはしたくないですよね。
ソフトウェアは、ハードではなくソフトであるとされています。しかし、恐れから、ソフトウェアを壊すことを避けようとしてコードを固く凍らせてしまいます。これはソフトウェアの死後硬直です。 ...
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