プログラマyasuhoの隠れ家

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

コーディングスタイル


私も含め、プログラマはそれぞれ独自のコーディングスタイルを持っている人が多い。
それは最初に使ったプログラム環境だったり、仕事でよく使うプログラムのソースから影響を受けたりする。
私の場合、初めて感銘を受けたプログラムが4.1BSDのカーネルソースであったので、そのスタイルにかなり影響されている。
なお、スタイルは言語によっても違うが、ここでは最もよく使われていると思われるC言語を前提とする。


私の場合、インデントはタブ、すなわちスペース8文字相当である。
Microsoft系の開発環境ではインデントの標準は4文字だが、あまり好きではない。
タブコードを入れても強制的に4文字になってしなうのは困りものだ。
ノートパッドなどで開くと、インデントがガタガタになってしまうからだ。
8文字だとインデントが多くなった時見づらいが、こまめに関数やメソッドを作るタイプなので、あまり気にならない。


グループ化する時の{はifやwhileのすぐ右に書く。


if (i == 0) {
...
}

最近は次の行に書く人が多い。バランスがいいからかな。

if (i == 0)
{
...
}

あと、Windows Programmingのハンガリアン記法とかいうやつ、あれは嫌いである。

DWORD dwCount;
LPSTR pszStr;
ULONG ulSize;

私は count, pstr, size など、簡略化して書く。


関数の上によくあるカンオケ、あれも使わない。


/*
* Function: int strcmp(char *s1, char *s2)
* Input: s1 strings to compare
* s2 strings to compare
* Output: < 0 s1 less than s2
* = 0 s1 equal to s2
* > 0 s1 greater than s2
* Note: none
*/

こういうのは最初しか書かなくて、関数の仕様が変わってもアップデートし忘れたり、面倒だから更新しなくなってしまうものだ。


他にもいろいろ細かいルールがあるが、たいていのプログラマは独自のルールを持っている。
他人のプログラムがあまりにも自分のルールとかけ離れている場合、全部書き直したくなることもある。
実際にはよほど暇な時しか全部書き直すなんてことはしないが。


どちらかといえば大雑把な人が多いプログラマ(わしだけかも)だが、こんな一見細かそうなスタイルにこだわっている。
ぼくが思うに、それはプログラマにとってプログラムは自分の作品であり、それを愛しているからである。
現実には納期があって、あまりきれいに仕上げられないことが多いが、できるだけそれを美しく仕上げようと努力する。


人のプログラムを見ると書いた人の性格なんかが分かって、なかなか面白い。
コンピュータはプログラムを忠実に実行するが、一つ一つのプログラムにはプログラマの個性が見え隠れしていて、見てるだけで飽きない。
ぼくがプログラムを飽きない理由の一つなのかもしれないな。