Your SlideShare is downloading. ×
第3回yidev coding guideline読み
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

第3回yidev coding guideline読み

321
views

Published on

過去の遺産

過去の遺産


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
321
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CodingGuideLine for Cocoa を(なんとなく)読んでみた 沖田@tmokita12年11月17日土曜日
  • 2. 参考 • 原文 http://developer.apple.com/mac/library/ documentation/Cocoa/Conceptual/ CodingGuidelines/CodingGuidelines.html (またはCodingGuidelines.pdf) • 日本語訳を公開してくれているサイト http://park15.wakwak.com/~concordia/ cocoa_break/ http://potting.syuriken.jp/12年11月17日土曜日
  • 3. C/C++の命名規則例 • メンバ変数に「m」や「_」 • global変数に「g」 • static変数に「s」 • static関数に「_」 • Boolを返すのは「is∼」「can∼」 • 動詞で始まる • アクセサは「set∼」「get∼」 • クラス名は「C∼」 • ポインタは「p」12年11月17日土曜日
  • 4. 前まとめ • 8割位 「あぁそうですか」 「まぁそうだよね」 • 1割くらい 「あぁ、そういうことでしたか」 • 1割くらい すいません、よくわかりませんでした (For Framework Developer とかそのへん)12年11月17日土曜日
  • 5. 以上12年11月17日土曜日
  • 6. だとあんまりなので12年11月17日土曜日
  • 7. Code Naming Basics12年11月17日土曜日
  • 8. General Principal • Clarity 曖昧にしないではっきりと • Consistency 一貫性をもって • No Self Reference 余計な説明はいらない12年11月17日土曜日
  • 9. Prefix • 2∼3文字で • クラス、プロトコル、関数、定数、 typedef、につける • ClasssMethod, InstanceMethod にはいらない12年11月17日土曜日
  • 10. Typographic Conventions • キャメルケースで • 関連するPrefixをつける12年11月17日土曜日
  • 11. Class and Protocol Names • 目的が明らかな名前をつける • プロトコルは 「動名詞」(~ing)をつかう12年11月17日土曜日
  • 12. Header Files • ごちゃまぜにしない • 関連クラスやプロトコルはまとめる • Frameworkは同名の.hを含める • 拡張する場合は元の名前に追加する • 関連するデータ型はまとめておく12年11月17日土曜日
  • 13. Naming Methods12年11月17日土曜日
  • 14. General Rules • キャメルケースで • 余計なことは書かない • 引数の宣言をちゃんと書く • 引数の前に引数の説明がくるように • 拡張する場合は元の引数の後ろに追加 • 「and」はつかわない • if the method describe two separate actions , use “and” to link them.12年11月17日土曜日
  • 15. Accessor Methods • setter -(void)setColor:(NSColor*)aColor; • getter -(NSColor*)color; -(BOOL)is~~~ • 動詞を形容詞的につかわない • is,can,should,をつかう do,doesをつかわない • 複数の要素をReferenceで返すときだけ”get”をつかう12年11月17日土曜日
  • 16. Delegate Methods • メッセージを 送っているモノの名前からはじめる • 引数がヒトツの場合はsenderが基本 • 処理の結果を返す場合も引数がヒトツ (の場合もある) • 「did」「will」で通知する • 確認的なものは「should」12年11月17日土曜日
  • 17. Collection Methods • 順番ものはNSArrayを バラバラものはNSSetを返す • insertでretain, removeでrelease12年11月17日土曜日
  • 18. Method Arguments • 小文字で始まるキャメルケース • ポインタでもptrとか使わない • 1,2文字の短すぎるのも使わない • あまり省略しすぎない12年11月17日土曜日
  • 19. Private Methods • _ を頭につけないで • わかりやすくしたいなら 会社名とかプロジェクト名とかつける • 不注意にオーバーライドしないように 気をつけてね12年11月17日土曜日
  • 20. Naming Functions12年11月17日土曜日
  • 21. • 他の規則+α • Prefixをつけるよ • Prefixの後は大文字だよ • 動詞ではじめるよ • 最初の引数のPropertyを返すときは動詞は省略するよ • Referenceで戻り値を受け取るときはGetだよ • Bool返すときは、Isとか12年11月17日土曜日
  • 22. Naming Instance Variables and Data12年11月17日土曜日
  • 23. Instance Variables • publicなinstance変数はつくらない • @private @public @protected を ちゃんとつける • わかりやすい名前をつける12年11月17日土曜日
  • 24. Constants • 整数で関連するグループ → enum • 浮動小数点 → const • その他 → define • コンパイラは__を使ってるから注意 • 辞書のキーとかには定数がオススメ12年11月17日土曜日
  • 25. Exceptions and Notifications • Exception [Prefix] + [UniquePartOfName] + Exception 例外よりもエラーコードが多いよ • Notification [Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification12年11月17日土曜日
  • 26. Acceptable Abbreviations and Acronyms P.25 参照12年11月17日土曜日
  • 27. Tips and Techniques for Framework Developers12年11月17日土曜日
  • 28. Initialization • Class Initialization ごめんなさい これもよくわかりません • Designated Initializers 基底クラスのinitを呼ぶイニシャライザを作ろ うね • Error Detection During Initialization ちゃんとエラー返そうね12年11月17日土曜日
  • 29. Versioning and Compatibility • Framework Version ドキュメントをちゃんと作ろう バージョンを取得できる方法を • Keyed Archiving ごめんなさい 言ってる意味がよくわかりません • 互換性を保ちたかったら オブジェクトのサイズにもきをつけてね12年11月17日土曜日
  • 30. Exception and Errors • 例外処理は強制じゃないよ • っつか例外はテストで潰しておいて12年11月17日土曜日
  • 31. Framework Data • Constant Data なるべく定数を使って小さくしようね • Bitfields unsignedを使った方がいいよ エンディアンとか気をつけてね • Memory Allocation (フレームワークでは) できるだけスタック使うのがいいんじゃない?12年11月17日土曜日
  • 32. Language Issues • nilにメッセージを送ってもOK nilが返る • 必要な場合は isEqualを使う(作る) • プロトコルを後から返るのは大変だから慎重に • new, alloc, copy 以外はauoreleaseだよ • autoreease使わない方が パフォーマンスが良い場合もあるよ • autorelease回避のために NSDictionaryやNSArrayをつかうのもありだよ12年11月17日土曜日
  • 33. 後まとめ • キャメルケース • 無駄な事は省きつつ • 言いたいことははっきりと12年11月17日土曜日
  • 34. • ご利用は計画的に12年11月17日土曜日
  • 35. • ありがとうございました12年11月17日土曜日