SSブログ

シンプルな設計とは何か、について考る [プログラミング]

使う人、買う人が怒らない範囲で、できるだけシンプルな仕様が良いと思う。
というようなことは、「機能を削れば買ったも同然」で書いたとおり。
http://blog.so-net.ne.jp/nakagami/2007-02-07
ただ、「何がシンプルか」というのは、時と場合によって変わるので、そこらへんがプログラミングの難しいところだし、面白いところでもあるのかなぁと思う。
#それは、プログラミングする人の仕事じゃないだろうという意見は無視する
プログラミング言語 C++ http://www.ascii.co.jp/books/books/detail/4-7561-1895-X.shtml の中で Bjarne Stroustrup が「できるだけ言語をシンプルに保つようにした。実装上の難しさと使う上での難しさが対立した場合は後者を選ぶようにした」というようなことを書いてた。
それを読んで以来、ただシンプルに保つだけでなく誰にとってどのようにシンプルなのかも考えるようにしてるつもり。

僕のような場末のプログラマは、(言語のデザイン上の問題なんて)難しい選択を迫られるようなことはないけど、↓のようなことはある。
http://d.hatena.ne.jp/micro-8/20071110/1194715098
A が(通常は) B - C で導かれるような場合に、 B, C をパラメータとして持っていて、A は自動的に算出されるほうが良いのか、 A, B, C をパラメータとして設定させたほうが良いのか?
若い頃であれば、 A は計算で出したほうが間違いなく親切であると考えていた。
今は、多分 A もパラメータとして設定させるようにするだろう。というのも、当初 A は B - C であったものが、途中でそうでない場合が出てくることがあまりにも多いから。
プログラムを直すのもパラメータを直すのも僕から見たら同じだけど、世の中プログラマーばかりじゃないのでプログラムを直さずに必要なことができるようにできるのと、プログラムを直さないとダメなのでは大違い。それがたとえスクリプト言語で、その場でちゃちゃっと直せばよいような場合でも。
ただし、A, B, C を設定させておきながらロジックのどこかで A = B - C であることを前提としているロジックがあると破綻するので、その場合は A の値は自動計算する。そして、できることなら A の値はユーザーに見せない。

結局のところ、 A = B - C の前提が崩れる可能性があるかどうかにかかっているので、良い設計とは結局のところ勘頼りになってしまうのか・・・


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0