iOSのコーディング規約を考えてみる
iOSのコーディング規約を少し考えてみようと思います。ちょっとまとめてみよう。
ざっくり基本
インデント
space4文字、tabは使わない
キャメルケースで記述(例外あり)
複数の語から成る名前の場合、その一部として、あるいは区切り文字として、句読点類(アン ダースコア、ダッシュなどを含む)を使わないでください。代わりに、各語の先頭を大文字に し、(runTheWordsTogetherのように)続けて表記します。このような表記法をキャメルケース と言います。ただし次の点に注意してください。
関数や定数の名前は、関連するクラスと同じプレフィックスをつけ、各語の先頭を大文字にします。
クラス名、プロトコル名
- 大文字2文字のプレフィックスで始める
- 一般に、動名詞(「...ing」)形の名前にするとよいでしょう。
メソッドの命名
- 何通りにも解釈できるメソッド名など、曖昧なAPI名は避けてください。
- 先頭を小文字とし、2つめ以降の語の先頭を大文字にします。
- プレフィックスはつけません。
- メソッド名の先頭にアンダースコアをつけて非公開(private)である旨を表すことは避けてくだ さい(ただしインスタンス変数名の先頭をアンダースコアにすることは可)。
- オブジェクトが実行するアクションを表すメソッドは、先頭を動詞とします。
- レシーバーの属性を返すメソッドは、その属性と同じ名前とします。出力引数を介して間接的に 値を返す場合を除き、「get」をつける必要はありません。
デリゲートメソッド
- クラス名からプレフィックスを除去し、先頭を小文字にしてください。
- 何らかの事象が発生した、あるいは発生しようとしている旨をデリゲートに通知するためのメ ソッドは、名前に「did」や「will」をつけてください。
- 他のオブジェクトに代わって何らかのアクションを実行するよう、デリゲートに指示するための メソッドは、名前に「did」や「will」をつけても構いませんが、「should」の方が望ましいでしょ う。
メソッドの引数
- メソッド名と同様に、引数名も先頭は小文字、2つめ以降の単語の先頭は大文字で表します
- 1~2文字の短い引数名は避けてください。
関数の命名
- 一般的な命名規則に従ってつけてください。
- メソッド名と同様に考えてつけますが、例外が2つあります。
- クラスや定数に用いるのと同じプレフィックスをつけてください。
- プレフィックスに続く語の先頭は大文字で表します。
- 関数名の多くは、先頭にその関数の効能を表す動詞を置きます。
プロパティやデータ型の命名
- プロパティ名が形容詞として表現される場合、「is」はつけませんが、対応するgetアクセサには、明示的に「is」で始まる慣例の名前を指定します。
- インスタンス変数は、アンダースコア(_)で始まるインスタンス変数名にするとよいでしょう。
定数
- 関数の命名規約に従います
参考
https://developer.apple.com/jp/devcenter/ios/library/documentation/codingguidelines.pdf