GoogleのObjective-Cスタイルガイドのメモ

Google Objective- C Stype GuideRevision 2.48 をザッと読んだメモ。なんかAppleの規約とGoogleの規約が混ざった状態のメモだけどメモなので…

ということで羅列

  • 具体的な命名をする。
    insertObject:atIndex:
    × insert:at:
    × sendPort
    ×displayName
  • 名前空間の代わりにプレフィクスをつける
    (クラス, 関数, 定数, プロトコル, typedef構造体) ただしアプリケーションレベルでは付けないほうが良い。
  • インスタンス変数は Xxx_ のようにアンダースコア接尾辞
    インスタンス変数は基本的にプロパティで公開する。
    Appleのガイドラインでは アンダースコア接頭辞となっている。
  • 使用可能な略語: alloc, alt, app, calc, dealloc, func, horiz, info, init, max, min, int (NSINtegerに対してはNG), msg, nib, rect, temp, vert
  • privateメソッドのプレフィックスにアンダースコアを使用してはならない(予期せぬオーバーライドを防ぐため)。_xxxMethod なんかはダメ
  • プライベートメソッドは XX_ のようなプレフィックスを使う。
  • プロトコル名として、例えば NSLocking はOK。NSLock はNG
  • NSObjectみたいなものはNSObjectプロトコルでOK。
  • メソッド名は基本的に動詞からはじめる。can, should, will は使っていいけど、do のような意味の曖昧なものは使ってはならない。
  • メソッド名に含める And は メソッドが2つの個別のアクションを行う場合に使用可能
  • 分詞を利用して動詞を形容詞化した単語をメソッド名などに含めてはならない
  • 引数名に pointer だの ptr だのポインタ型であることを表現する単語を入れてはならない。
  • IBOutletのプロパティは基本weekなのでstrongの時はコメントで補足する
    IBOutlet NSButton * button_; // strong
  • IBOutlet以外のプロパティをweekとする場合にコメントで補足する
    NSData *data; // week
  • コメントのシンボルは |(縦線)で囲む // |hoge| is Metasyntactic variable
  • if( isXxx == YES ) は予期しない動作をする可能性があるので使ってはならない。
  • initメソッド内で変数に 0nil を代入してはならない(冗長なので)
  • init, dealloc でのアクセサの使用は避ける(非ARC)
  • 1行の文字は80文字以下とする(Xcode > Preferences >Text Editing > Show Page Guide で設定)
  • スペースの入るところ( で表示)

    -□(id)method□{
    □□return□[[self□alloc]□init]; // インデントはスペース2つ
    □@public // publicやprivateはスペース1つ
    }
    
Share