programming style - プログラム作法
DESCRIPTION
Wikipedia http://ja.wikipedia.org/wiki/プログラミング作法 からの抜粋TRANSCRIPT
千葉工業大学
情報科学専攻
八島研究室
王 冀
PROGRAMMING STYLEプログラム作法
READABLE CODING
• プログラムの見やすさ ・ 読みやすさ• Readable (可読性)の要素
• インデント• 空白 ・ 桁合わせ• 変数名 ・ 関数名• 明示的な括弧• コメント
• 実行とは関係無し
インデント• 可読性向上の基本技術• 制御構造の範囲を明示
BSD/オールマンのスタイル K&Rのスタイル 制御文の後の中括弧を次の行に置く 制御文と同じ字下げ位置とする ブロック内の文は次のレベルに字下げ
ブロック開始の中括弧を制御文と同じ行に置き , ブロック内の文を字下げ
ブロックを閉じる中括弧を制御文と同じ字下げ位置に戻して記す
while (x == y) { something(); somethingelse(); } finalthing();
while (x == y) { something(); somethingelse();} finalthing();
Microsoft Visual Studio Xcode
空白
• 演算子の関係が明白• 様々なスタイルがある
空白をほぼ取らないスタイル 空白を多めに取るスタイルint count;for(count=0;count<10;count++) { printf("%d",count*count+count); }
int count; for (count = 0; count < 10; count++) { printf("%d", count * count + count); }
かなり個人差が大きい 折衷的「地の行では空白を入れるが、括弧内は詰める」もあり得る C 言語ファミリでは「タブ文字」使用の禁止が推奨される
桁合わせ• 隣接する行の桁位置を合わせる• 誤字や値抜けを見つけやすくなる
• search と replacement は何らかの関連があり、対応しているこれらは別個の無関係な変数ではない。
• search の方が項目が 1 つ多い。これがバグなら、より目立つようになっている。
$search = array('a', 'b', 'c', 'd', 'e'); $replacement = array('foo', 'bar', 'baz', 'quux');
$search = array('a', 'b', 'c', 'd', 'e'); $replacement = array('foo', 'bar', 'baz', 'quux');
変数名 ・ 関数名
規則 例
Camal 記法• 最初の単語のみ小文字で初め• 以降単語の先頭文字は大文字
thisIsAnExampleisPrime(int n)
Pacal 記法• 各単語の先頭文字は大文字
ThisIsAnExampleIsPrime(int n)
アンダーバー区切り• 単語は全て小文字• 区切りはアンダーバー
this_is_an_exampleis_prime(int n)
• 英語でつける• 動作や値がわかる名前• 適度な長さ
コメント
• コードを読めばわかるようなことは書かない• 関数(メソッド)の場合は複数行
まとめ• バグの修正やプログラムの追加のためにも可読性が高いほうがいい• 日頃から可読性を意識したプログラムを書く• 可読性の高いプログラムの記述は、自分のためでもある• ほとんどの場合、やりすぎにはならない
参考 URL : http://ja.wikipedia.org/wiki/プログラミング作法