『Rubyクックブック』
Rubyでできること/したいことを、マクロな視点(データベースアクセスやウェブサービス構築)からミクロな視点(メソッドの削除や細かい言語仕様など)まで、一問一答形式で紹介した本。
Rubyの細かい知識を前提に書かれているのでRubyをはじめる人がいきなり読むには向かないと思うが、普段からRuby使っている人がもうちょっと知識を広げるためやRubyでの流行を把握するためには丁度良いレベル。
特に、帯にも書かれているが、リフレクション関係の説明が逆引きできる形でまとまっているものはあまり見たことがないので、リファレンスとして役立ちそう。
概要
最近なんだかベタな技術書を読んでいないと!と恐くなったので、近所の本屋で目をつぶって選んだruby関係の本を読んだ。一種のリハビリとして。
一年前の本だが、しばらく(転職してからだから4年くらいか)遠ざかっていたRubyのエレガント差や良い設計への情熱などを重い出して、少しカンが取り戻せた気がする。
しかし、細かいノウハウ本だから細切れに読み終えられたが、まとまったテーマの本や難易度が高い本、新しいパラダイムを学ぶ本を読めるかどうか、リハビリを進めないといかん、とも感じた。
細かい点では、Rails関係の知識がなんとなく得られたことと、標準ライブラリはやはり大事(使ううえでも、お手本としてでも)と認識した。
リファレンスとして見返したくなる本なので、職場におくか家に置くか悩むところ(2冊買う財力はないよ)。
詳細
- 1章 日付と時間
- 2章 コードブロックと反復処理
- enumeratorはeachをカスタマイズしたEnumerableを生成する(破壊的ではないよ)
- SyncEnumeratorで配列が2つの時は Array#zip と同じ
- 3章 モジュールと名前空間
- autoload はでかいライブラリを作る時に効率良さそう
- 4章 リフレクションとメタプログラミング
- メソッド取得用メソッドはいろいろ
- public: methods, instance_methods, singleton_methods, method_defined?, respond_to?
- protected: 頭に protected_ を付ける(singletonとrespond_to? 相当は無し)
- private: 頭に private_ を付ける(singletonとrespond_to? 相当は無し)
- メソッドをprocとして(ちょっと違うが)取り出して使うには #method, #arity, #call
- instance_variable_setにbindingを渡して、インスタンス変数自由自在
- メタプログラミング(evalみたいの)は、define_method, module_eval, instance_evalを使いける
- メソッドの削除は undef_method(継承したメソッドもOk)とremove_method(自分がdefしたもののみ)
- aliasはsymlinkじゃなくメソッドのコピーを作るので、元methodの再定義には影響を受けない
- AspectRというライブラリでelispのdefadvice(beforeとafter)が可能(インスタンスもclassも対応可)
- DbC(Design by Contract)の一部(引数オブジェクトのメソッドの確認)ができるライブラリ紹介
- メソッド取得用メソッドはいろいろ
- 5章 データベースと永続性
- Marshalはdump時にシリアライズエラーを教えてくれる(yamlは知らん顔する)
- 構造化テキスト検索の SimpleSearch と Ferret は要チェック(でもDB使っちゃうよね普通は)
- ActiveRecordがデザインパターンがベースと知った
- 6章 インターネットサービス
- 8章 テスト、デバッグ、最適化、文書化
- 10章 Rakeによるタスクの自動化
- rakeはmakeに比べて気が効く標準ルールを作りやすい、てことか
- 11章 マルチタスクとマルチスレッド
- 12章 ユーザインターフェイス
- OptionParserは適度に省エネになるのだがいかんせん行数が増えて困る(getopts比)
- やっぱりどこでもreadlineは必須
- GUI toolkitにはクロージャがやっぱり似合います
- wxRubyがあるのか。マルチプラットフォーム対応を考える時にはこれだな
- RubyCocoaはIDE付きですか。