何でもできるのがいいとは限らない -- 何事にも代償がある
- (by K, 2007.04.08)
- これは主に自分への戒めを忘れないようにするためのもの
(1)
- プログラムを作っていて(たとえばOSASKとかKHBIOSとか)、いろいろ拡張性を持たせようと設計を工夫することがある。そして○○もできる、××もできる、みたいないい設計ができてくる。「あんな場合もこんな場合もOK」みたいにできて、すごく満足する。・・・しかしこれは多くの設計者が陥る罠だ。ダメな設計になっている可能性がある。というか他の設計者はそれで満足なのかもしれないけど、僕はそんな設計で満足してはいけない。
- そんな拡張性をたくさんつけたとして、それは本当に使うのか。必要なのか。その拡張性のために何が犠牲になっているのか。何も犠牲にしない拡張性なんて原則としてありえない。非常に小さいかもしれないけれど、とにかく何かを犠牲にしているはずで、それを正確に把握するのは絶対に必要だ。そしてその犠牲と拡張性が生かされる状況の両方を秤にかけて、どうするかを検討するべきだ。
- 一つの拡張性を見送った結果、「じゃあこの拡張性もいらないか」と連鎖的に拡張性が省略される場合がある。これはたいていすごくいい結果を生む。どうもそういう傾向がある。本質的に設計が単純化されて、再設計への道が見えてきて、それで設計すると劇的に改善する。
こめんと欄