「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ感想

こんにちは!

今回は「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ感想についてまとめます。

対象読者

  • 何か他の本や動画でRailsの全体像を学んだ人
  • 実際にRailsで開発してみたことがある人

良かったところ

  • 基礎知識を深掘りしていくのに最適
    • 最初の一冊にするには基礎知識の説明が不足しているが、その分発展的な内容が多い
  • テスト技法について学べる
  • チーム開発に向けた必要事項を学べる
  • MVCに則った設計技法を学べる
    • 初学者向けのRailsの本とは思えないほど詳しく学べる

悪かったところ

  • Rubyの入門知識は対象読者には不要と感じる
  • slimで書かれているので慣れるまで認知的負荷がかかる

学んだこと

  • マイグレーション
    • バージョンを上げて終わりではなく、確実に下げられるように記述する
    • db:migrate:redoでバージョンを下げても問題ないか確認する習慣をつける
  • JavaScriptとの連携
    • AjaxRailsを組み合わせた動作
    • Turbolinks時の注意点(<script>の記述位置など)
  • MVCでのコードの書き方
    • ビジネスロジックをコントローラからモデルに移す方法
      • 複雑なparamsは一括代入できるようにして対応する
      • オブジェクトの代入や処理の呼び出しはコールバックや統合的なメソッドで対応する
    • ビジネスロジックをビューからモデルに移す方法
      • モデルの状態を判断するロジックは~?のような名前のメソッドを作ると扱いやすい
    • モデル、コントローラ、ビューそれぞれの共通化の方法
      • 通化の前提は、コードがあるべき場所に書かれていること
      • 通化の方法:モジュール、継承、サービスオブジェクト
    • サービスオブジェクトの作り方、使い方
      • 意味のまとまりで処理を集約し、別オブジェクトとして独立させる
      • 複数のモデルを扱う処理では、コントローラに処理を書くのではなく、独立したサービスオブジェクトを作る
      • モデルに書くべき処理は書かない。ドメインモデル貧血症を避ける

難しかったこと

  • CSVの扱い、Jobスケジューリング、webpacker
    • 実際に使ったことがないのでイメージが掴みにくかった

おわりに

今回は「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ感想についてまとめました。

本書はRailsの3冊目ぐらいの本に最適だと思います。

特に設計についての章が良かったです。実際に開発してみるとどうしてもコントローラにロジックを書いてしまったり、ビューにロジックを書いてしまったり、モデルが空っぽだったりしてしまっていたので、それらの具体的な対処方法が書かれていて参考になりました。早くこの内容を生かしてコードを書いていきたいと思います。