アットウィキロゴ
project5j
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

project5j

命名規約

最終更新:

kawauchi

- view
メンバー限定 登録/ログイン

命名規約

 1.英語と日本語
  全ての識別子の名前は英語を用いること。

 2.名前空間
  企業略式名.組織略式名.テクノロジー名.機能名を使用する。また、テクノロジー名にはソリューションが、機能名にはプロジェクトが対応していること。
   using Project5j.Bomberman...

 3.クラス名
  単語ごとに先頭大文字。
   例:class PascalCasing

 4.例外クラス名
  最後をExceptionとしたクラス名。
   例:class ClassNameEndsWithException

 5.インターフェイス名
  クラス名に同じ。また常に最初にIを付ける。
   例:interface INameOfInterface
  また、クラスにある能力を加える様な利用の場合、その能力を示す形容詞とし、-ableを接尾にする。
   例: IEnumerable, ICloneable, IXmlSerializable, …

 6.抽象クラス名
  抽象クラス名に適当な名前が無いとき、 Abstract から始まりサブクラス名を連想させる名前を付ける。
   例:abstract class AbstractBeforeSubClassName

 7.非パブリックメンバ
  先頭に"_"を付加する。
  単語の先頭は小文字。それ以降、単語ごとに先頭大文字
   例:private object _objectName;

 8.パブリックメンバ
  単語ごとに先頭大文字。
   例:public object ObjectName;

 9.定数(const)
  大文字もしくは大文字を"_"でつないだもの。
   例:const int UPPERCASE = 0;
     const int UPPERCASE_WITH_UNDERSCORES = 0;

 10.列挙型(enum)
  単語ごとに先頭大文字。
   例:enum PascalCasing

 11.列挙値
  単語ごとに先頭大文字。
   例:PascalCasing

 12.イベント名
  単語ごとに先頭大文字。
   例:event PascalCasingEvent()

 13.デリゲート名
  単語ごとに先頭大文字。変数名の末尾にHandlerを付加する。
  どのような場合に呼び出されるか変数名を見てわかる名前をつけること。
   悪い例:public delegate void StateHandler();
       public delegate void TimeOutHandler();

   良い例:public delegate void StateChangedHandler();
       public delegate void ThreadTimeOutHandler();

 14.メソッド名
  単語ごとに先頭大文字。
   例:void PascalCasing();
     object PascalCasing();

 15.ファクトリメソッド(オブジェクトをnewするもの)
  createの後に先頭が小文字で始まるオブジェクト名を付加する。
   例:ObjectName createObjectName();

 16.コンバータメソッド(オブジェクトを別のオブジェクトに変換するもの)
  to, fromの後に先頭が小文字で始まるオブジェクト名を付加する。
   例:void toObjectName();
     ObjectName fromObjectName(object obj1);

 17.プロパティ名
  単語ごとに先頭大文字。
   例:object PascalCasing {
     }

 18.Boolean変数を返すメソッド
  Is + 形容詞、Can + 動詞、Has + 過去分詞、三単元動詞、三単元動詞 + 名詞。
   良い例:bool IsEmpty()
       bool CanGet()
       bool HasChanged()
       bool Contains(object x)
       bool ContainsKey(string key)

   悪い例:bool Empty() //「空にする」という動詞的な意味に取れる。
       bool CheckXXX() // trueがどちらの意味か分かりづらい。
   理由 :if, while文等の条件が読みやすくなる。
       またtrueがどちらの意味か分かりやすい。

 19.bool変数
  形容詞、is + 形容詞、can + 動詞、has + 過去分詞、三単元動詞、三単元動詞 + 名詞。
   例:bool _isEmpty;
     bool _dirty;
     bool _containsMoreElements;

 20.名前の対称性
  クラス名、メソッド名を付ける際は、以下の英語の対称性に気を付ける。
   Add / Remove
   Insert / Delete
   Get / Set
   Start / Stop
   Begin / End
   Send / Receive
   First / Last
   Push / Pop
   Up / Down
   Upper / Bottom
   Show / Hide
   Source / Target
   Open / Close
   Source / Destination
   Increment / Decrement
   Lock / Unlock
   Old / New
   Next / Previous

 21.ループカウンタ
  スコープ(通用範囲)が狭いループカウンタには i, j, k という名前をこの順に使う。

 22.スコープが狭い名前
  スコープが狭い変数名は,型名を略したものを使って良い。
   例: DataSet ds = new DataSet();

 23.意味がとれる名前
  変数名から役割が読み取れる名前をできる限り指定すること。
   悪い例:Copy(string s1, string s2)

   良い例:Copy(string source, string destination)
最近更新されたスレッド
ウィキ募集バナー