ひよったところからほころびはじめる

POBoxなどのUIの神,増井さんが提唱してる「富豪的プログラミング」という考え方がある.
http://pitecan.com/fugo.html


ざっくり言うと「今の世の中マシンパワーとかあまりまくってるからヘタにチューニングしたりメモリや実行効率なんかは考えずにガンガン行こうぜ!」というお大尽な方法だ.

増井さん的にはUIに特化した話のつもりだと思うんだが,どうも一般のシステムにも上記思想を持ち込んでるケースが多々見られる.
まぁ.マシンパワーはモリモリ増えてるので,それでもいいんだろうけど,富豪すぎるのもどうよ?と日々感じてたところ下記のエントリがあった.


平民的プログラミングのススメ
http://www.oiwa.jp/~yutaka/tdiary/20051229.html#p02

> しかし、個人的に最近気になってることとしては、一方で
> やたらと富豪的プログラミングが度を過ぎていて、プログラムが
> 機能として破綻していることもよく見掛ける気がするのだ。
> 破産的プログラミングとでも呼ぼうか。


たいていのシステムはほぼ100%拡張され,かつアクセスもデータ量も予想以上に増える運命にある.その結果としてシステムはほころび始める.
ほころび始めるのはたいてい設計的にひよったところ(=手を抜いたところ)で,経験をつむと事前にどこからほころびはじめるかわかる.なので同僚たちのひよった設計を見つけるたびに「この部分が100倍になったらどうするの?」とか注意するようにしている.


ポイントは大体以下のとおり,

  • 処理する要素数nが3桁より多く,O(n)以上で処理してる.

→ O(log(n))なアルゴリズム

  • データ量が増えるとメモリがあふれる可能性がある.

→ あふれてもサーバの分割でスケールアウトできる設計に

  • 並列処理させすぎ.

→ シリアル処理に


> というわけで、「無駄に金は使わないけど、奢るべきところで
> ケチケチして後ろ指さされたりはしない、ごく普通のマットウな
> 社会人としての生き方」と対比させて表題の「平民的プログラミング」
> となるわけだが、いいネーミングは何か無いかな。


上記を受けて富豪一辺倒でないリーズナボーなプログラミングスタイルを
「金持ち父さん的プログラミング」と勝手に名づけることにしました.


なお「ひよった所からほころびはじめる」というのは,システムだけではなく,日々の生活にも適用できることが多いので気をつけていきたい(奥さんとの仲とか).

(おしまい)