プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

自分の書くプログラムは美しいか?


なんとなくふだん思ってるけど、あまりよく分からないこと。それは、
自分の書いているコードは美しいのか?
ってこと。


よくプログラムの書き方の本なんかに、
「プログラムはシンプルに書きましょう」とか
「他人に分かりやすいプログラムを書きましょう」とか
書いてあるのをよく見かける。
でも、実際に自分の書いたコードがきれいなのか、他人が見て分かりやすいのか、そういうことを知る機会って、ほとんどない気がする。


オブジェクト指向とか、アルゴリズムの手法とか、プログラムの構成はこうしましょうとか、まあヒントになるようなものは多くの本がある。
でも、そういうのを組み合わせて、一つのプログラムを作るのって、それだけじゃないよね。
うまく説明できないけど、なんかこう、理論整然としていて、流れを追いやすい、って感じかな。


プログラムに間違いがあった時とか、修正する時「あー、ここはこうしておけばよかったな」なんて時とか、けっこうヒントがあるような気もするけど。
何人かでコードレビューをした時、たまにここは分かりづらいとか、こうした方がいいとか言うアドバイスをもらえることもあるけど、レビューは主にコードの間違いを見つけることが目的なので、そういうことは少ない。
逆に最悪なコードの例をいっぱい上げて、反面教師にする、なんてのはどうだ!?:)
XPで言うところのペアプログラミングとかすれば、そういうことも可能なのかな?経験ないから分からないんだけど。


そもそもプログラマはプライドが高い人が多いので「あなたのコードは美しくない」みたいなことを言われるのがイヤな人も多いだろうね。
そういう指摘をしてくれそうな人ほどプログラマの性格をよく知ってるはずで、あえて言わないことの方が多いと思う。


そうなると結局分かりやすくてシンプルと「言われている」コードを見て、自分で学ぶしかない、ってことになるような気がするんだよね。
もちろんコードが美しいか美しくないかというのは、かなり主観に依存する部分が多いので、客観的に評価するのって難しい。
よいプログラムを書くことが経験と実績だけというのが、プログラミングを非効率化させている主な原因なんじゃないかと思うわけです。
自動化どころか、未だに手工業、いざとなったら人海戦術、みたいな。


そんなわけで、機会があれば他のプログラマさんに聞いてみたいんだ。「ぼくのコードって美しい?」って。
「この部分はこうした方が、このような変更に強い」とか「ここはこういうデザインの方法もある」とかね。
そんなレビューの機会があると、プログラマの経験と知識だけが頼りのプログラミング手法を、効率化できるような気がします。


それともぼくが知らないだけで、実はすでに有効な手法があったりして。
もしそのような方法があれば、教えていただけると嬉しいです。


ちなみにGeocitiesの方では、拙作アプリのソースなんかも公開しております。
「てめーのコードは最悪だ」とか「分かりづらくてよく分からん」とか言うコメントも歓迎しまーす。^^;