« 副落面子と点数の集計プログラム作成中 | トップページ | 頑張れ、ココログの中の人 »

2006/03/30

K&Rの弊害

綺麗なプログラムを書くのは難しい。
そもそも、綺麗の基準が人によって違ったりする。時々、つまらない違いで喧嘩になったりもする。
つまらない例の最たるものが、インデント、{のぶら下げ方、と2単語のつなげ方(fooBarかfoo_barか)、カッコの前後の空白。
これらは別にどのように書いたところで、統計的にバグの数に違いがないという結果が出てる。チームで統一さえ取れてれば別にたいした問題ではないんだけど、どいつもこいつも自分の感情だけでギャーギャーわめく。案外科学的じゃないんだなソフトウェア業界って奴は。

他にも、Cの場合で意外とケンカになるのが、K&R発祥のいかにもCっぽい書き方
例えば、こんなのとか

if ( (fp = fopen("file.txt", "r")) != NULL ){

こんなの
while (*p++ = *q++);

K&Rはそもそも、Cの特徴を際立たせるため他の言語(COBOLとかPascalとか)と違う部分を強調した書き方をしてる。「Cではこんな書き方も出来るんだよ」という例を載せているのであって、「こういう書き方が優れている」と言ってるわけではない。それなのに、聖書であるK&Rがこう書いてるからと、思考停止して受け入れる原理主義者が実に多い。

ま、私なんかがとやかく言ったところでK&Rの権威にかなうわけでもなし、もう、どうしようもないくらいに広まっちゃってるんで、ある程度は受け入れるしかないんだけど。

2006/3/30 追記:
トラックバックでご指摘を受けたので追記。

K&RはCのリファレンス的な本であって、綺麗なプログラムを書くための本ではない。文法の例のために載せているサンプルコードもあり、妄信して真似すべきではない。

では、どうしたらいいのか?
簡単な話だ。綺麗なプログラムを書くための文献を参考にすればよい。
プロの人ならば、職場でコーディング規約が決まっているだろうから、多少自分の考えとは違っていても、まずはそれに従うべき。

一般書籍なら、取り合えずお勧めは「Code Complete」。分厚すぎるので「通勤通学時間=勉強時間」な人には持ち運びがつらいけど、それ以外は文句ない。


 

「センス・オブ・プログラミング」もお勧めできる。文体がすごく読みやすい。
今日、本屋で見つけて衝動買いしたんだけれども、偶然にも、細かい違いで宗教論争はすべきではないとか、上記の2つの例題とモロに同じものが載っていた。

Java専門だと 「超図解 Javaルールブック 」がある。立ち読みしただけだけれど、こちらは若干初心者向けな印象。各ページの見出しが一部不適切と感じたのと誤字が目立ったが、Amazonでの評価は悪くない。

 

|

« 副落面子と点数の集計プログラム作成中 | トップページ | 頑張れ、ココログの中の人 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 副落面子と点数の集計プログラム作成中 | トップページ | 頑張れ、ココログの中の人 »