どういうコードは読みやすいか
読みやすい
- やってることが想像できるコードは読みやすい。
コードそのものの品質というより、読んでいる側が何をやっているかをよく知っていること。最近はWebブラウザやhttpdのソースをよく読んでいるが挙動を知っているので知らないコードでも容易に追える。
- Cで書いてあると読みやすい。
C++やJavaで書いてあるコードは実際何が呼ばれているのか字面ではわからないので読むだけでは何が起こるかわからない。# Javaはまだまし。
grep と etags+emacsのタグサーチの組合せで追う。
綺麗なソースとは?
- 綺麗なソースを書きやすい言語というのはあると思う。
Ruby, Perl, Pythonは汚いソースになりがち。Rubyで書かれていてで綺麗だと思ったソフトは一本しかない(何か忘れたけど) Perlはいわずもがな。Python はそもそもインデントがどうだという点で受け付けない。
- C, Java は綺麗なソースにでくわすことが多い。最近読んだのでは、esehttpdはなかなか綺麗なソースだ。めずらしくはない。綺麗なのはごろごろ転がっている。
一方で、うーん、ちょっとというソースもよくある。2chのread.c はかなりまずい方かな。これ子分から出されたらかきなおせというだろう。プログラムは使われてこそだから汚くても全く問題はないんだけど。
- Cだと綺麗なソースというのは以下の条件がそろうことだと思う。
- 関数名が英小文字とアンダーバーからのみなっていること。
数字は使われていてもごく少し。
- すべて大文字のマクロの使用頻度が少ないこと。
- *があまり使われないこと。typedef struct tag *tag_t;とすればかなり減る。
- if, while, for, switch のネストが少ないこと/深くないこと。
- 適度な長さの関数が整然と並ぶこと。
- ハンガリアン記法は使わない。m_とかをメンバ名の先頭につける
というローカルルールを使用しない。
- ローマ字関数は使わない。
- indentは、cb か gindentを使って手では整形していない。
- 複雑なifの条件式が少ないこと。
- あとよろしく。
- Javaだと綺麗なソースというのは以下の条件がそろうことだと思う。
- Sun の記法にそって記述されていること。
- C と同じくメンバーの頭などにローカルルールを使用してないこと。
- クラスメソッドはあまり使ってないこと。
- len = a.length; for (int i = 0; i < len; i++) なんて書かないこと。
- あとよろしく.
(最終更新 Thu Mar 30 19:22:28 2006)