DC4

Rails、Ruby関係で最近読んだ本まとめ。

11月中旬より業務でRailsの開発をやる事になったのですが、Rails未経験でRubyHello World状態でした。
周りにRails経験者も居なかったためこれはヤバイぞと思い、色々な本を読み漁りました。
その際に読んだ本と感想をまとめました。以下読んだ順番で掲載しています。

はじめてのRuby

初めてのRuby

初めてのRuby

他の言語を知っている人が最初に読む本としておすすめされていたので最初に読みました。 Rubyのバージョンが1.8と少し古いですが、学習の際は問題ありませんでした。 Rubyの特徴をざっくりと理解できてました。

Ruby on Rails チュートリアル

Ruby on Rails チュートリアル

Ruby on Railsの入門として実施しました。
Rails開発に必要な事が網羅的にTDD形式で学べました。
このボリュームで無料とは凄いですね。

パーフェクト Ruby on Rails

パーフェクトRuby on Rails

パーフェクトRuby on Rails

最近の開発で使用されているGemや環境を周りを含めた情報を知りたかったので読みました。
アセット周りのSprockets、Turbolinks等の情報がまとまっていたり、開発に必用なGemのトレンドを知ることができました。
特に6章のRailsアプリケーション開発ではイベント告知アプリケーションを作りながら、実際の開発にもよく登場する以下の実装を体系的に学ぶことができました。

  • OmniAuthによるTwitterログイン
  • Ajax周りの実装方法
  • kaminariによるページャー
  • ransackによる検索機能
  • carrierwaveによる画像アップロード

その他にもminitest と RSpecの比較、Vagrant、Chef、serverspec、RackなどRailsを取り巻く環境を含めて広く学ぶことができました。

Everyday Rails - RSpec による Rails テスト入門

Everyday Rails - RSpec による Rails テスト入門

簡単なRailsアプリをいくつか作成してみてRSpecやCapybaraの構文を調べるのに時間を費やしたり ベストプラクティスがわからなくて悶々としていたので読みました。
Rails 4.0 / Ruby 2.0 / RSpec 2.14 に対応していてとてもわかり易かったです。
コントローラスペックやRSpec 3についても触れられている点も中々見つからない情報なので助かりました。
内容について変更が発生した場合でも、無料で最新版をダウンロードする事が可能です。

パーフェクト Ruby

パーフェクトRuby

パーフェクトRuby

Rubyの言語仕様、メタプログラミングSinatraを使用したWeb開発、Bundler等のツールと幅広く紹介されています。 先頭から読み進めるのではなく、机に常に置いておくリファレンス本として重宝してます。

メタプログラミング Ruby

メタプログラミングRuby

メタプログラミングRuby

ライブラリのソースを読むためにはメタプログラミングの知識が必用だと聞いたので読みました。
読む前までとても難しい内容と思っていました。
いざ読んでみるととてもわかり易く解説されていて、前半がストーリー仕立てだったのでスラスラ読めました。
モジュールのincludeやextend、特異クラス、特異メソッド等、解説を見るだけでは中々理解できない部分がスッキリしました。
各所でクイズが出題されるのも理解度が測れて良かったです。
ただ、師匠と弟子のくだりがよく分からないままでした・・・。

リファクタリング Ruby エディション

リファクタリング:Rubyエディション

リファクタリング:Rubyエディション

Rubyで良いとされる書き方のお手本を見てみたいと思い読みました。 オリジナル版を読んだことが無かったのでとても勉強になりました。

様々な臭うコードの嗅ぎ分け方と解決案が載っていているので開発中に何度も読み返したいと思います。

  • リファクタリングは機能を追加しないように努力する。
  • パフォーマンスを意識するのは開発後期の最適化段階に入ってからだ。

といった基本的な部分にも思い当たる所があるので今後は注意しようと思いました。

その他

始めたタイミングでRspec3が登場してて検索で出てくる情報とのギャップに混乱しました。
Rspecではfeature、request、controllerの使い分けにとても悩まされたのですが、このQAを見たり、歴史を調べる事で理解できました。

現在

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

設計について中々しっくりこなくて、 どうするべきかとか考えてたらこの記事に出会ってDDD読んでます。
圧倒的ボリューム。

今後

前々から気になっていた Rubyのしくみ -Ruby Under a Microscope-

来月発売する Effective Ruby

先輩に進められた UMLモデリングの本質 (日経ITプロフェッショナルBOOKS)

とかを読もうと思っています。