カーネルのコーディング規約読んだ

JF: Linux Kernel 2.6 Documentation: CodingStyleをなんとなく読んでいたのですが、案外面白かったです。

単なるコーディング規約と言うより、よいコードを書くためにはというのにも通じるんじゃないんでしょうか。以下、心の琴線をはじいたフレーズ。

まず最初に、「GNU コーディング規約」(GNU coding standards)を入手して印刷
してみてください。でも、読むために印刷するのではありません。印刷した物を
燃やすのです。この儀式は晴れがましい意思表示なのです。

大きなインデントの恩恵は、20時間連続してモニタを眺めてい
るときなどに特に実感できます。

C言語はスパルタ言語なのですから、それにふさわしく変数や関数を命名しまし
ょう。

関数の型を関数名に含める方式(いわゆるハンガリー記法)は、明らかに間違っ
ています。そんなことをしなくても、とにかくコンパイラは型を知っていますし、
型のチェックもできます。結局はプログラマ自身を混乱させるだけです。
Microsoft がバグの多いプログラムを作っているのも不思議ではありません。

あなたが複雑な関数を作成してしまい、「平凡な高校1年生では決して、この関
数の全てを理解できないだろうな」と感じたら、相手を思いやる意味での最大限
の対策を施してください。その際には、わかり易い名前の補助関数を利用してく
ださい(関数呼び出しに伴う性能低下を懸念するのであれば、コンパイラへイン
ライン展開を要求しましょう。自分でやるよりずっと上手に対処してくれること
でしょう)。

大丈夫です。失敗は誰でもするものです。たぶんあなたは長年 UNIX の使い方を
アドバイスしてくれるような先輩から、「GNU emacs」のCソースコード自動整形
を教わってきて、それを正しいと思い込んでいたのでしょう。確かにそうなので
すが、emacs のデフォルト設定では望んだ結果にはならないのです。(実際、適
当にプログラムを打ち込むほうがまともになります - 無数のサルが延々と GNU
emacs へプログラムを打ち込んでも、決して素晴らしいプログラムは完成しませ
ん)