2008-02-01 (金) [長年日記]
■ [本]
思考を変える!見方が変わる!会社が変わる!―会社のダメなところがわかる“TOC思考プロセス”(石田 忠由/佐々木 俊雄/村上 悟)
上に行き過ぎててつまらん。窒息しかけた。
■ [Ruby] Writing Effective Ruby Code - Patterns(3)
続き。そしておしまい。
日付フォーマット
- 文字列から日付型をつくるのは非常に遅い(parse_date)
- 様々なフォーマットに対応しないといけないから
- 使うフォーマットを決めて自前で変換メソッドを作るとよい
一時データ構造のための定数
- 中間インスタンスを生成しないで定数にする
ファイルシステムへのアクセス
- 遅いよ
ObjectSpace.each_object
ObjectSpace.each_object(Class) {|c| f(c) }
ObjectSpace.each_object {|o| o.is_a?(Class) && f(o) }
ブロックの引数が必要ないとき
- どんなメソッドにもブロックが渡せるよ
- ブロック引数を明示しないほうが速いよ
Symbol.to_proc
- Railsにあるよね
mapメソッドのチェーン
- hoge.map(..).map(..) とかするよりも hoge.map {|i| .. } のが速い
動的にrequireする
- Railsは見たこと無い定数をみつけると勝手にロードしてくれる
- なので明示的にrequireしなくていい
- 弊害として従来のrequireの挙動がおかしくなることがある
- なので、たとえばHogeクラスを拡張したいときは、
require 'hoge' class Hoge ...
じゃなくて
Hoge class Hoge ...
とする。
インクルードモジュール vs クラスオープン
- モジュールの呼び出しはちょっとだけ遅い
- ので、1つのクラスにしか使われないんだったらクラスをオープンしたほうがよい
■ bliki_ja:TestCancer
訳しました。
[ツッコミを入れる]
