16章単純に保つ
単純さは究極の洗練である。
――レオナルド・ダ・ヴィンチ
「KISS」という助言を以前に聞いたことがあると思います。つまり、「単純に保て、お馬鹿さん」(Keep it simple, stupid)です。それを読み間違えることはありません。単純さは優れた目的です。間違いなく、自分のコードに単純さを求めて努力すべきです。過剰に複雑なコードに取り組むことに憧れるプログラマはいません。単純なコードは透き通っています。その構造は明瞭であり、バグを隠していませんし、学ぶことも取り組むことも容易です。
では、すべてのコードがそうなっていないのはなぜでしょうか。
開発者の世界には、二種類の単純さがあります。誤った種類の単純さと正しい種類の単純さです。はっきり言えば、私達が追い求めている「単純さ」は、「できるだけ容易な方法でコードを書き、手抜きをし、厄介で複雑なものをすべて無視し(絨毯の下に押し込んで消えるのを願い)、間抜けなプログラミングであること」ではありません。
物事がこんなに単純であればどんなによいでしょう。多くのプログラマがこのような「単純な」コードを書いています。彼らは頭を働かせていないのです。プログラマによっては、悪いことを行っていることに気づいてさえいません。書いているコードについて十分に考えておらず、本質的に微妙な複雑さのすべてを正しく認識できていません。
このような頭を使わないやり方は単純なコードではなく、極度に単純化されたコードを生み出します。極度に単純化されたコードは、正しくないコードです。考え抜かれていないので、必要とされることを正確に行わないのです。たいていは、「主要な処理」だけを行い、エラー状態を無視したり、まれな入力を正しく処理しなかったりしています。このため、極度に単純化されたコードは、障害の温床です。これはひび割れになり、さらに極度に単純化されたコードで覆われます。このようなコードの修正は、一つずつ積み上げられ、最後にはコードが途方もないめちゃくちゃなものになっていきます。きちんと構造化された単純なコードとは、まさに対極の状態になっています。 ...
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