ルール112倍良くなるか?
どんなプロジェクトでもいずれは、利用しているアーキテクチャーに元から存在する限界で行き詰まる。それまでうまくいっていたやり方にはとにかく合わないような、何かの問題にぶつかるってわけだ。今までのパラダイムでは表現できない機能を追加する必要があったりするかもしれない。例えば、フィルター処理の仕組みが、全て満たすべき一組の条件を指定できる場合に、ある条件をAND
(論理積)じゃなくOR
(論理和)で指定しなきゃいけない事例に出くわしたとか。
あるいは、データの形態が変化したとか。ある規模の問題を解決するために構築したシステムが、時間の経過とともに、元々の想定とは異なる規模や形態の問題に使われ始めると、存亡に関わるパフォーマンスの問題に直面することになる。
いろんな物事がこんがらかってきてるだけってこともありえる。現行のパラダイムは、特殊な場合に、システムの根本的挙動を微調整して変える方法を提供している。そういう方法があることが、そのパラダイムがこれまで長く続いた一因だ。でも今や、そういう拡張の仕組みは、特殊な場合だけじゃなく、ありとあらゆる場合に使われるようになっている。システムを使う際は毎回、様々な例外的な場合の間を「けんけんぱ」の遊びみたいに注意深く飛び跳ねなきゃいけない。そして、新しいものが動作するかどうか、ましてやそれがどのように動作するかを探り当てるのは、至難の業だ。
コードの一部が古くなりすぎて、ことによるとコードベースの他の部分と合わないかもしれない。かなり先進的なC++言語のプロジェクト内に存在するC言語のコードが、構造体へのポインターをいろいろ手作りしてるのを見て、気後れするとか。そういうコードは、古く異質な考え方を代表しており、誰もがもっとモダンなパラダイムで書き直したいと思っている。 ...
Get ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール 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.