Bad Design is Good Design?

何がよい設計なのかは、議論がわかれるところ。一つ言えるのは、よい設計というのは、与えられた道具 or 言語やコンセプトに依存する。

たとえば、オブジェクト指向設計の視点では、Observer パターンは、よい設計だといえる。というのも、通常、Observer以外には適切な設計を見つけるのは難しいため or パターンがなぜパターンとして有効なのかということから明らか。

でも、アスペクト指向の視点では、(少なくとも研究コミュニティで主張されている)もはや、良い設計とは、いえない。なぜなら、オブジェクト指向の Observer は横断的関心事を持つ例だから。

さらに一般的には、パターンかどうかに限らず、今まで良い設計だとされてきた設計が、新しい言語や手法の導入によって、もはや必ずしも良い設計だとは言えなくなることがある。or 新しい設計手法を提案する人は、現状の設計に問題が あるので、その欠点をなくす手法や改善する手法を提案する。通常、言語設計では、これは、言語拡張や新たなコンセプトを導入することによって行われる。


当たり前の話に思えるかもしれない。


でも、逆のことが起こりうる。今まで悪い設計だと思われていたのが、新しい言語やコンセプトの導入によって、逆に良い設計になることもありうる。具体的な例はまだ示せないけど、それが起こる場合がある気がする。あるいは、良いか悪いかの判断が微妙になることがある(あると感じるから、今ここに書いている)。「判断が微妙になる」というこの感覚事態が、良い設計か悪い設計かどうかのお互いの距離は、必ずしも明らかなほど離れていないことを意味する気がする。


なぜ、それを良い設計だと思った?
なぜ、それを悪い設計だと思った?
それは、まだ 良い設計か?
それは、もう 良い設計か?