kent備忘ログ

お仕事と趣味生活と

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

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

良かったところ

 各章ごとにステップアップしていく感じでRailsアプリ自体の構成と、その実装コードをわかりやすく解説されていました。

 特に、他の教材では開始直後からMVCの説明に入り、各ファイルのコード記述が始まり、CRUD機能を備えたデモアプリ作成の流れになりますが、この書籍では、もちろんMVCの説明は入るのですが、いきなりアプリ作成から入るのではなく、Railsのファイル・ディレクトリ構成を含めた全体像の説明から入り、各機能の実装に移るといった流れで解説している為、全体のどの位置を解説しているか、分かりやすいと思いました。

 また一例ですが、データベース検索の際、RailsではSQLのクエリ文に対応したメソッドが用意されており、そのメソッドを使用しコードを実装良いのですが、本書ではクエリ文とメソッドの対応表が記載されている為、絞り込みにどのメソッドを使えば良いか一目でわかります。他にも、要所要所で使い分けごとに主要なコマンドが異なる場合は、一覧表を記載しています。
 その上、巻末にはアプリ開発の際に使用するRailsコマンドの一覧が掲載されており、逆引きのように調べる事ができます。  


学んだこと

第1章〜第2章

第3章〜第4章

  • 今回のwebアプリで使用するSlim・Bootstrapの導入
  • モデルとデータベースの実装
  • CRUD機能に基づいたコントローラとビューファイルの実装
  • クライアントから受け取ったデータの検証とモデルへの追加制限の実装
  • ユーザアカウント作成とログイン機能の実装
  • フィルタ機能を使用したコード重複の排除

第5章〜第6章

  • RSpec, Capybara, FactoryBotを使用したテストコードの実装
  • RailsにおけるRESTfulなルーティングについて
  • アプリ上での時刻の扱い方
  • 悪意あるユーザへのセキュリティ対策
  • アセットパイプラインについて

第7章〜第8章

  • データベース検索機能の追加
  • 確認メール送信機能の追加
  • ファイルアップロード機能の追加
  • CSV形式でのDBのインポート・エクスポート機能の追加
  • Ajaxを使用したサーバ通信の使用
  • YarnとWebpackerについて

第9章〜第10章

  • GitとGitHubについて
  • 複数人でチーム開発をする際の開発環境について
  • アプリケーションの複雑性に立ち向かう3つの鍵
    • その1、然るべきところにコードを書く
    • その2、上手に共通化する
    • その3、新しい構造を追加して役割を分担させる

難しかったこと

 第10章の「アプリケーションの複雑性に立ち向かう」から先の解説は、実務でアプリ開発をする中で、どのような形でコードを実装することがベストになるかを解説していますが、論点となるケースがチーム開発の中での考え方や、大規模なアプリを対象としている事がありました。
 現状、あまりアプリ開発をした事がなく、記載されているコードのイメージがしにくいですが、一方で、著者が述べていたように、「アップデート」と「複雑性」の2つの課題が生じる場合が十分にあることを念頭に、実務で行き詰まりそうになった際は、こういったケーススタディを読み返して問題解決の糸口にしたいと思いました。

本書も、Rails5を題材としてある為当たり前ですが、2023年現在主流となっているRails7で生じた疑問に関しては別途調べる必要があります。

その点に関しては同じく10章で著者も述べていた様に、Railsが元々3年程度という短いスパンで「アップデート」が繰り返されてきたという前提に立ち、近年執筆された書籍や、公式ドキュメントを参考にしたいと思います。