はじめに
Railsの学習として「現場で使える Ruby on Rails 5速習実践ガイド」を読んだので、感想をまとめました。
良かったところ
タスク管理アプリを作成しながらRailsの基礎と、アプリ開発でよく実装される機能の作成方法を学ぶことができたところが良かったと感じました。
また、テストを実施することの重要性や、複数人で開発を行う際に、開発現場で必要となる実践的な知識を学べたところも良かったです。
学んだこと
MVC
MVCとはRailsが採用しているソフトウェアをどのような構造にするかについての考え方のパターンの1つです。
アプリケーションはさまざまな処理によって構成されますが、UIの部分はアプリケーション固有のデータや処理の扱いとは性質が異なり、両者を混ぜて記述するとコードが複雑化して保守性が悪くなってしまいます。そのため、UIに関わる部分(View)、アプリケーション固有のデータや処理の扱いの部分(Model)、モデルやビューを統合的に制御する部分(Controller)の3つに役割を分け、管理しやすくすることがMVCの目的です。
コントローラ
コントローラはユーザーが操作するブラウザなどのクライアントからリクエストを受け、適切なレスポンスを作成するための制御を行う部分です。
Railsでコントローラを作成する場合、RESTfulに則ったCRUD(Create,Read,Update,Delete)のアクションを設計します。CRUDはよくある機能のため、下記のようにパターン化された設計があります。
HTTPメソッド | アクション名 | 機能名 |
---|---|---|
GET | index | 一覧表示 |
GET | show | 詳細表示 |
GET | new | 新規登録画面 |
POST | create | 登録 |
GET | edit | 編集画面 |
PATCH/PUT | update | 更新 |
DELETE | destroy | 削除 |
モデル
モデルはデータとデータに関わるビジネスロジック(アプリケーション特有の処理)をオブジェクトとして実装したものです。Railsの場合、データベースのテーブル毎にモデルが用意され、リクエストで呼び出されたアクションは、モデルを介してデータベースとやり取りを行い、データを取得したり新しいデータを格納したりします。
ビュー
ビューはブラウザに表示する画面、すなわちHTMLなどの中身を実際に組み立てる部分です。コントローラからモデルのオブジェクトなどを受け取り、画面表示に利用しています。
アプリケーションでよく実装される機能の作成方法
本書ではシンプルなCRUD機能を備えるタスク管理アプリケーションを実用的なものにするために、以下の機能の実装方法を学ぶことができました。実際に自分でアプリ開発をするときに、全体の流れを把握するために本書が参考になると思いました。
- ログイン機能
- 確認画面の作成方法
- 検索機能の作成方法
- ソート機能の作成方法
- メイラーの作成方法
- 画像ファイルの添付機能の作成方法
- csvファイルのインポート/エクスポート方法
- ページネーションの作成方法
- 非同期処理/定期実行の方法
難しかったこと
本書はHTML/CSS、Bootstrap、Rubyの知識があることを前提として解説されているので、全体的に難易度は高めであったと感じました。
また、覚えることのボリュームも多く、プログラミング初学者は本書を1周読んだだけでは概要を理解できても、実際にアプリケーションを作る際に読み直し、知識を定着させていく必要があると思いました。
まとめ
本書はRailsを使ったアプリケーション開発の流れを理解するにはとても良い本であったと感じました。ただ、Rails5対応の内容となっているため、思わぬところでエラーが出る場合がある点は注意が必要と感じました。