今回は、「現場で使える 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年程度という短いスパンで「アップデート」が繰り返されてきたという前提に立ち、近年執筆された書籍や、公式ドキュメントを参考にしたいと思います。