コーディングルール

coding-rule.png

変数名

スコープの接頭辞

java風 C++風 ObjectiveC
メンバ変数 m変数名 m_変数名
publicメンバ変数1 小文字スネークケース 小文字スネークケース _変数名
static 変数 s変数名 s_変数名
ローカル変数 小文字 小文字
グローバル変数 g変数名 g_変数名
定数 CAPITAL_UNDERSCORE

型の接頭辞

ブール変数 b
整数 i,n
浮動小数点数 f
p ポインタ

スコープと型、両方の情報を入れるときは
m_bCanFly
s_pHeap
のようにする

関数

関数の名前

小文字から始める(*Window API系は大文字から始まってます)

大文字で始めるのはクラス名なので関数名は小文字にしましょう

動詞+目的語の形にする

boolean値を返す関数はIsやHasで始める

private関数はアンダースコア_で始める

引数の規則

なるべくconst(c++) ,final(java)をつける

この引数は、この関数の中で変更しませんよ、という印です。
出力結果はreturnで出すのが理想的です。
しかしAndroidアプリ(java)の場合、GCの発生頻度を減らすためになるべくnewしない書き方になるので、
出力専用の引数を作ることになるでしょう。そういう場合は引数にfinalはつけません

引数の接頭辞

ここは流儀が色々分かれるところです。私が今まで遭遇したのだと

  • 先頭にaをつける
  • 先頭に_をつける
  • 先頭に$をつける

など色々あるようです。みんな引数を簡単に区別できるように工夫しています。
最近は、シンタックスカラリングが優秀で引数だけ別の色にできるので、まぁ印をつけなくても見分けはつくかなと思います

関数を並べる順番

  1. コンストラクタ達
    1. デフォルトコンストラクタ
    2. 普通のコンストラクタ
    3. コピーコンストラクタ
  2. 代入演算子のオーバーロード
  3. その他オペレータのオーバーロード
  4. アルファベット順
  5. デストラクタ

doxygenでグループ分けするなら、必ずしもアルファベット順にならなくてもいい。
ただし、グループの内側はアルファベット順に並べる。

関数の作り方

40行超えるようだったら関数化することを考えること

メンバに何の影響も及ぼさない関数はstaticで!

コードを読む時はこの方が読みやすい

出力結果になる引数は一番後ろ

アノテーション

@Deprecated この関数は利用が推奨されていない
@Override 関数のオーバーライド
@SuppressWarnings どうしても警告を取り除けない事情がある場合にのみ使う なるべくこれが出ないように頑張ること

[JavaPractice.com http://www.javapractices.com/home/HomeAction.do]


coding-style

サポートサイト Wikidot.com coding-style