月曜日までに考えておきます

ITネタとゲームネタ中心に興味のあること色々書きます。

パーフェクトRuby on Rails 読みました

パーフェクトRuby on Rails買って、家庭持ち朝方エンジニアなので毎日朝25分ずつコツコツ読んでて読み終えたので感想書きます。

全体として

実践的なテクニックがいっぱい書いてあって、「これいいね、すぐやろう!」とか、「こんな便利なものあったのか!」みたいな感動をたくさん経験できる本です。

一方で、リファレンス的なことはそんなに書かれていないので、そういうのはRails公式ドキュメントを読むか別の本を読むのが良さそうです。 手元において調べ物をしたいときに読む本というよりは、まず読んでみて、「なにこれすごい」って思ったことをすぐに実践してみて、またしばらく時間を置いてから読むとその時に気づかなかった別の凄いテクニックに気づく、みたいな本だと思います。Ruby本で人気のあるメタプログラミングRubyとかもそんな感じですね。

これやろうと思ったこと

NewRelicの導入(p.313)

NewRelicの導入手順や画面での導入手順が書かれており、今まさにRailsで新サービスを開発している自分にとってダイレクトに役に立つ情報でした。 計測にあたって見るべきポイントも詳しく書かれているので、すでに導入済みの人にとっても読むべき情報だと思いました。

Rack::CommonLogger::Fluent(P.327)

最近のログ集積のデファクトスタンダードと言えるFluentdや、それを可視化するkibanaについても書かれています。

FluentdでRailsのログ収集をするにあたって、RailsのログをltsvにするGemを試したりしていたのですが、ユーザのアクセス情報については細かくltsv化してくれるわけではないようでした。このGemを利用することでFluentdで扱いやすい形になってデータ収集できるようなのでこちらも使ってみようと思います。

値オブジェクトとcomposed_of(p.353)

まったく知らなかった知識だったので、非常に勉強になりました。

関連している属性を別モデルに切り出してスッキリさせたいけど、データベース的には同じレコードで保持しておきたいというケースはあるので、そういうときにこういう解決策があるというのが知れたのはとても良かったですね。使うべきところを見極めて、活用していきたいと思います。

その他にも良かったことリスト

初耳だったり、あまりはっきりと知らなかったことを改めて知れて良かったです。

  • コールバックの条件分岐の書き方と、コールバックが走らないメソッド
  • ActiveRecordenum
  • distance_of_time_in_words_to_now => タイムライン型のサービスで使うと捗りそう
  • jbuilderの使い方
  • coffee-rails-source-maps
  • 特定のパスをautoload対象にする
  • sideKiqの使い方
  • exception_notification
  • shoulda-matchers
  • brakeman
  • unicornの設定
  • capistrano-github-release

まとめ

即実践できる内容が盛りだくさんで、とても満足度の高い書籍でした。 Railsで仕事している人なら買いだと思いますので、ぜひ読んでみてください。

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails