12章複雑さに対処する
単純さは素晴らしい美徳であるが、単純さを達成するための努力と、
単純さの真価を認めるための教育を必要とする。
そして、物事を悪化させるには、複雑にするのがよい。
――エドガー・ダイクストラ
コードは複雑です。私達全員は、この複雑さと日々戦わなければなりません。
複雑なコードを書くことは簡単にできてしまいます。注意を払っていないときにも起きます。事前に十分に計画していないときにも起きます。「単純な」問題に取り組み始めたけれど、めったに発生しないケースを見つけたことで、それを反映するためにアルゴリズムを拡張した時にも複雑さは発生します。
私の観察では、ソフトウェアの複雑さは三つの原因から発生します。まず、ブロブ(blob)と線。
そして、それらを組み合わせたときに得られるもの、すなわち人です。
この章ではそれぞれを見ていき、優れたソフトウェアを書くために何を学べるかを見ていきます。
ブロブ
私達が考えるべきソフトウェアの複雑さの最初の部分はブロブ、すなわち私達が書くコンポーネントに関連しています。このブロブの大きさと数が複雑さを決定します。
ソフトウェアの複雑さは、大きさによってもたらされる結果です。プロジェクトが大きくなればなるほど、必要なブロブの数は増えて、理解するのも扱うのも困難になります。これは、 ...
Get ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.