Effective Objective-C 2.0 読書メモ #20

2015年10月5日月曜日

途中の番号から始まる読書メモシリーズ。
Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programsは、ObjCを読み書きする際には読んでおいたほうが良い本だと思います。言語の文法を把握してそこそこコードを書けるようになってきたぐらいの人がハマりがちな罠や当該言語流の作法といったものが豊富に書かれていて*2かなりオススメ度が高いです*1
ちなみにObjC関連で私がしっかり読んだ本はこれと@splhack先生のエキスパートObjective-Cプログラミング — iOS/OS Xのメモリ管理とマルチスレッドで、あとは大体オンラインドキュメントと各種公開コードで学んでいった記憶があります。
私はこの本を読み始めてから結構長く、2年少々経ちます。発売日を調べてみると、どうやら刊行後すぐに買って読み始めたようですね。同年の暮れには日本語訳も出ているので、これから読み始めるならこちらのほうが楽だと思います*3。私は、さっと通読した後はObjCを書くタイミングでポイントにより振り返ってたまに読んでいます。
当初はメモを取らずに読んでいて途中からメモを書くようにした都合上、このメモは初回なのに#20からスタートというわけです。実際はもう少し手前のメモも残っているので、気が向いたら整理してみます。
[*1] まあ、他のObjC本をそんなにしっかり読んではいないので、比較ベースで語ることはできないのですけれど。
[*2] 他のEffectiveシリーズと共通するところです。
[*3] Amazonの商品ページを見てみると、翻訳が独特というレビューがついていますね。どの程度なのかは翻訳版を読んでいないのでわかりません。

#20 Prefix Private Method Names

前回は名前付けの話で、またしっかり戻ってきたい話でした。
今回はプライベートメソッド名にプリフィックスをつけろという話です。ObjCには言語的なプライベートメソッドの仕組みがないのでうまく運用でカバーするというのが前提です。
  • Appleのライブラリ群では_をプリフィクスにしているんだけど、それに倣ってはいかんという話が面白かった
    • ObjCの事情として実行時にメソッドが反応できるものを判断するので、不意にでも被ってしまうのは避けたほうが良い
      • コンパイル時に全部確定するわけじゃないという_objc_msg方面の動的解決な話
  • _をプリフィクスとして使ってしまうとクラスの継承タイミングなどで意図せずAppleのメソッドと被る危険性がある
  • なのでp_をプリフィクスにするのが良いという話。
言われてみると確かにそのほうが安全だなー、なるほどなー感が強い回でした。

0 件のコメント:

コメントを投稿