アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
抽象化や汎用性は必ず必要? (スコア:3, すばらしい洞察)
C++の例が象徴的だと思うのですが、確かにメンバ変数を直接触らず、メソッドを経由するのは、「基本的には」、良い設計だと思います。なぜなら、将来、クラスの実装を変更したとしても、プログラムの変更がクラスの実装だけに留まって、そのクラスにアクセルしている部分を変更する必要がないからです。いわゆる、実装のブロック化にも通じると思います。
しかし、ここで重要なのは、クラスの実装が変更されなければ、アクセス手段を抽象化する必要がないという点です。しかも、アクセス手段をインターフェイスによって抽象化しても、インターフェイスの変更が必要になったら、結局、クラスの実装の変更、即ち、プログラムの一部の変更ではすまなくなります。
何が言いたいかというと、アクセスの抽象化による変化への対応能力にも限界があるし、プログラムが無用に複雑化することという欠点もあるということです。
"書き捨てや変更に弱いプログラムの意義"
ある状況においては、保守や拡張が非常に困難な、いわゆる、書き捨てのプログラムや、汎用性や移植性、将来の変更に対する耐性を犠牲にしたプログラムというのも、「あり」ではないでしょうか。WinのCOMや.NET、あるいは、GNOMEのBonobo[GNOMEのFAQ]のようなものを利用すれば、単体のプログラムが小さいままであることが可能で、保守性や仕様の変更に弱いプログラムでも十分、実用的であることができると思うのです。もちろん、この考えは言語の支援だけでは、まったく不十分です。OSやライブラリの支援が必須です。
rm -rf /bin/laden