カニ本読書メモ 2章:美しいAPIを実装する
コードの共通化する時のコツの学べる本はないか? と、相談した時にお勧めされたので読んでみました
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (47件) を見る
2章 美しいAPIを設計する
- メソッドにおける順序付き引数の数は最小限にする
- メソッドにデフォルト値を持つパラメータが複数あるなら、optionsハッシュによる擬似キーワード引数の利用を検討する
- 同時に複数の引数処理を扱う必要がある場合、splat(*) 演算子を使う
- 必須のパラメータがあるなら、それはoptionsハッシュに入れない
2.3 コードブロック
ブロックの使い道
- each メソッドを実装して、Enumerable を include すれば、組み込みコレクションで使える機能が使えるようになる
- 後処理/前処理の抽象化
- 動的コールバック
- &block を配列とかに保存しておいてコールバックが必要な時に実行したりする
- instance_evalでインターフェースをシンプルにする
- おんなじインスタンスを何度も呼ぶ場合に
Server.run do handle(….) handle(….) … end class Server def self.run(&block) server = Server.new server.instance_eval(&block) end end
yeild と、block.call の戻り値は、与えられたブロックの戻り値とおんなじにしよう!!
2.4 驚かせないこと
- atter_reader, atter_writer, atter_accesser を使う
- get_something, set_something より、something, something= を使う
- メソッドに疑問符をつけた場合、ブール値を返す
- 感嘆符は破壊的であるというより、注意すべきメソッドという意味で使う
- カスタム演算子
- append, add は、<<, + にする