« IT企業の超階層化構造 | トップページ | [Web application] ajaxWrite »

2006/03/23

[Programming] Keep sourcecode simple and stupid !

いきなりだが、次の2つのコードを見てほしい。動作は両方とも同じものだが、前者は一行で、後者は4行で書かれている。

rtn_list = [ x+y for x in int_seq1 for y in int_seq2 ]
rtn_list = []
for x in int_seq1:
	for y in int_seq2:
		rtn_list.append( x + y )

さて、どちらが読みやすいだろうか?ロジックを理解しやすいのはどちらだろうか?
わたしは後者のほうが理解しやすいと思う。

わたしは、プログラムは次の原則を守るべきだと思う。

"Keep it simple and stupid!"

よく、読みにくいコードを書く理由として「パフォーマンスが高くなるから」といわれるけど、メモリ1MB が普通だった時代ならともかくとして、個人向けのコンピュータですら 3GHz で動作する CPU が使われていてメモリも 512MB 搭載されているような今では、実行速度の差はなんてほんの僅か。

体感できないような差ならば、開発者の視点から見て、見やすくて理解しやすいコードを書いたほうがいい。理解しづらいコードは作っているときにバグを入れてしまう可能性が高くなるし、バグが見つかったときの修正がとても困難になる。チームで開発することを困難にする。機能を拡張することになったとしても誰もやりたがらないものだよ。

ユーザから見ても、多少早くてバグがあるソフトよりも、そこそこの速さでも安定していてより便利な方向へどんどん進化していくソフトのほうを使いたいと考えるんじゃないかな。少なくともわたしはそうだ。

読みにくいコードをがんばって書いたとしても、得られるメリットはその場しのぎのちょっとしたものだ。読みやすくて理解しやすいコードは、ユーザと開発者の両方にとてもたくさんのメリットをもたらしてくれる。

Explicit is better than implicit.
Simple is better than complex.
Readability counts.

I think so.

|

« IT企業の超階層化構造 | トップページ | [Web application] ajaxWrite »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Programming] Keep sourcecode simple and stupid !:

« IT企業の超階層化構造 | トップページ | [Web application] ajaxWrite »