2008-01-21

_ プログラマの心がけ

バカが征くより:

若いヤツと仕事してると、よく『なんとなくこのへんが おかしい気がするんですけど』っていうのを聞く。

若くなくても、そういう人はいるんですよねえ、というのは置いといて、 私がしばしば言っていることは

プログラマは一行一行に責任を持て。

ってことなんですね。 「プログラムというのはロジックを記述するためのものなのであって、 詩や小説じゃないんだから、無意味な行があっても仕方がない。 自分がそこで何を意図しているのか責任を持てないようなコードを書いちゃ駄目。」と。

もっとも、詩や小説にも本当には無意味な行なんてものはなくって、 雰囲気を作り上げるためとか、話のテンポを調節するためとか、 それ相応の意味があるわけですが、 プログラムというものには「論理的に」関係のない行があっては駄目だと思うんですね。 もちろん、読みやすくするための空行とかは別ですが、 何かやっているのに実は何の役にも立っていない処理があったって、 無駄でしかないわけです。 こういうコードを書く人は自分が何をやっているのか理解していなくて、 結局何かの役に立っているところもおかしいことが多いのです。

エンジニアというのは、何か実用に供するものを作る仕事です。 エンジニアの成果は誰かが使う、そして、その結果として、 何かがうまくいったり、いかなかったりします。 時にはそれが人命に拘ることもあります。 生死にまで関係なくても、相当大きな損害を生み出す可能性が多々あります。

そこで、自分でも何やっているのかよくわかっていないようなものを作って、それを他人に使わせるなんて、私はあんまりだと思ってます。 使う人の身にもなってほしいものです。 そういう人は、ちゃんとわかるようになるまで、あまり重要な仕事には関わってもらいたくないと思います。

ちなみに、そういう「わかってないのに書いている人」を見抜くのはそれほど難しくありません。 その人が書いたコードをざあーっと眺めて、 怪しそうなところをいくつかピックアップして、 逐一「ここは何してるの?」と尋ねれば容易に判明します。 「そこは読みにくいかもしれないが、こういう意図であって..」と説明できたり、間違っていたとしても「自分はこう考えて書いていたが、言われてみると、正しくなかった」と認められるなら、大丈夫。 「えーっと、よくわかりません」とか「それでいいような気がした」とか「...(沈黙)」とかだと、やばい。

しかし、こういうのは意識の持ち方次第で改善できることですから、 それほど悲観はしてませんね。 書く気力がある限り、経験していくうちに良くなっていきますから。

本日のツッコミ(全2件) [ツッコミを入れる]
_ knok (2008-01-22 12:55)

コーディングレベルより上の段階になると、たとえば<br>「このロジックではどこかでまずいことになる気がする」<br>というようなケースが時々あって、こういうときの直感は<br>割と重要な気がします。<br>昨日まさにそんな状況に陥って、いろいろ検討を重ねた結果<br>「これはやっぱりまずい」という実証ができました。<br><br>これは言葉にすると「なんとなくこの辺がおかしい気がする」<br>とあまり変わらないのですが、経験的に「どうもおかしい」<br>というケースは一応あるような気がします。<br><br>重要なのはその後きちんと追求する態度ですかね。

_ okuji (2008-01-22 15:11)

そうですね。野首さんがおっしゃるような、いわゆる「勘」はとても大切ですよ。私はプログラミングは数学に似た側面があると感じていますが、直感を元に洞察を深めて、最終的には論理的に突き詰める、という態度が必要だと思います。

本日のTrackBacks(全1件) []
_ カビ対策:カビ対策 (2009-08-24 21:22)

カビ対策をして家の中からカビを除去しましょう。


トップ «前の日記(2007-12-31) 最新 次の日記(2008-02-01)»