ぼく用あれこれまとめ
命名規則
最終更新:
bokuyo
-
view
命名規則
- 「システムハンガリアン使いたくないけど、じゃあどんな名前の付け方をすればいいの?」
- その疑問にぶつかったぼくのあれやこれやをだらだらまとめます。
システムハンガリアン?
- システムハンガリアンのどこがデメリットなのか~ってことはここでは考察しない方針でいきます。
- あくまでも、"ぼく"が書きやすく、見やすいソースを書くための命名規則なので絶対的なものじゃありません。
システムハンガリアン | データの型を表すプリフィックスをつける命名法。 |
システムじゃないハンガリアン | そのデータが何を表すのか、を意味する命名法。 |
ぼく用命名規則
だいたいの決まり。
- ハンガリアン記法は使わない。
- わかりやすい名前をつけよう。
○ | FinalFantasy | なるほど…! |
× | FF | FinalFightなのかFinalFantasyなのかが曖昧 |
- 省略形を使わないようにしよう。
- 簡潔さよりも、わかりやすさを優先しよう。
- いくらスコープがあるからって、有名な名前は使わないでね。
- 対抗して「printf()」とか関数作っちゃだめよ。
大文字or小文字?
- 次の3形式を用います。
形式名 | 例 |
Pascal形式 | FinalFantasy FFTactics |
Camel形式 | finalFantasy ffTactics |
全大文字形式 | FINALFANTASY |
"Ar-tonelico"の例。
- "Ar-tonelico"のような複数の単語(ArとTonelico)の組み合わせで出来た単語(複合語)を例にとる。
- "Artonelico"のように、1単語としてみなされるもの(閉じた単語)は
Pascal | Camel | |
○ | ArtonelicoTwo | artonelicoTwo |
× | ArTonelicoTwo | arTonelicoTwo |
- 複合語では「-(ハイフン)」や「_(アンダーバー)」を使うのは避ける。
- 複合語のJoystickも閉じた単語とみなされるから、「Joystick」「joystick」のほうが適切かな?
対応表
識別子 | 例 | 形式 |
class名 | Joystick D3DManager |
Pascal |
インターフェイス名 | ISoundManagaer | プリフィックスI, Pascal |
関数名 | SetString() | Pascal |
パラメータ名(引数) | bool Init(int windowSizeWidth) | Camel |
- | - | - |
.NET Frameworkでは。
- クラス名にはプリフィックス(=接頭辞のことをかっこよく言ってみた)を付けない。
- 例:CJoystick, CEnemy
- ただし、インターフェイスクラスは例外で、プリフィックス「I」を付ける。
- 例:ISoundManager, IScene
- MSDN - クラス、構造体、およびインターフェイスの名前
- パラメータ名は、型ではなく意味に基づいた名前をつけるべき。
- MSDN - パラメーターの名前
- メソッド名には基本、動詞をつける。
- 「定義の中で実際にどう動くのか」を示す動詞ではなく、使う人の立場で「使うとどうなるのか」を示す動詞をつける。
- 自販機でいうと、「これを使うと中で状態遷移が行われてどうのこうの~」ではなく、「100円いれるとジュースが出てくる」でおっけー。
- Set~, Get~, To~など?
めも。
- iだのfだのpだのといったデータの型はIDE(VC++とか)でわかるから書かなくていいとして、メンバ変数に「m_」をつけるのはやめられなくない?
- thisポインタ使えばどうでしょ?面倒?
- アンダーバーから始まる変数名はつけるな。
参考文献
- MSDN - 名前に関するガイドライン-
- MSDN - 一般的な名前付け規則
- MSDN - サイズと距離の指定 - システムハンガリアンについてはこちら