Rails7ベーシック試験の実施を前にして、「試験に備えよう!」というこのコラム。
第2回目は前回の続きとなる出題範囲、「Scaffolding機能によるRails開発の基礎」について概要と抑えておきたいことを解説します。
Scaffolding機能によるRails開発の基礎
出題範囲「Scaffolding機能によるRails開発の基礎」では、以下のような項目について全体の5%の割合で出題されます。
- Scaffolding機能の使い方
- Scaffolding機能によって生成されるルート
- Scaffolding機能によって生成される各画面(アクション)
この出題範囲では、以下の3つのことを抑えておきましょう。
抑えておきたいこと1: Scaffolding機能の目的
Scaffoldingという言葉に馴染みがない方も多いかと思います。
Scaffoldingとは「足場」という意味で、Railsでは基本的なCRUD機能が一通り揃った動作可能なアプリケーションを指します。
Scaffolding機能はこの「足場」を自動生成する機能です。
「足場」が有効に使える場面、「足場」を拡張して自分のアプリケーションを組み立てていく方法について理解しておきましょう。
The Rails Doctrine
Scaffolding機能はRailsの重要な原則、The Rails Doctrineを体現した機能とも言えます。
公式な邦訳は用意されていませんが、必ず目を通しておきましょう。
Scaffolding機能によってもたらされる原則の一部をご紹介します。
Convention over Configuration (設定より規約)
Scaffolding機能はRailsの規約に沿った動作可能なアプリケーションを提供します。
- 規約に沿ったファイルの配置
- 規約に沿った命名
The menu is omakase (メニューはおまかせ)
外部フレームワークや機能について、Railsの標準的な選択を提供します。
ここでは各選択の詳細までは問いませんが、「Railsの標準」が何なのかは確認しておきましょう。
- CSSやJavaScriptのフレームワーク、ビルドシステム
- データベース
Exalt beautiful code (美しいコードを賞賛する)
Scaffolding機能で生成されるコードは、Railsコミュニティが考える「美しいコード」を表しています。
「美しいコード」とは何なのか、難しい問題ではありますが、その一例となるコードについて覚えておきましょう。
抑えておきたいこと2: Scaffolding機能によって生成される要素
Scaffolding機能を実行すると、Railsの三要素、それらをブラウザから利用するためのルートを始めとした様々な要素のためのファイルが生成、設定されます。
各要素の詳細については別途独立した試験項目となっていますが、役割についてはここでも一通り抑えておきましょう。
- Railsの三要素「コントローラー」「モデル」「ビュー」
- ルート
config/routes.rb
に追記されるresources
メソッド
- ヘルパー
- アセット
- JavaScriptやスタイルシート
- マイグレーション
- テスト
抑えておきたいこと3: Scaffoldingによって生成される各画面の機能
「抑えておきたいこと1」で「CRUD機能」という言葉を掲げました。
これはRailsアプリケーションに限らず、データを取り扱うソフトウェアが一般的に備えている以下4つの機能の頭文字を取った物です。
- Create
- Read
- Update
- Delete
これらの用語がしっくり来ないという方は、まずはCRUD機能について学習しておきましょう。
Scaffolding機能はこのCRUD機能を備えた各画面、アクションを生成します。index
show
を始めとした各画面の役割、各画面の機能がどのファイル、どの部分に実装されているか全て把握しておきましょう。
まとめ
ベーシック試験の試験範囲「Scaffolding機能によるRails開発の基礎」について解説しました。
出題割合は5%と大きくはありませんが、「抑えておきたいこと1: Scaffolding機能の目的」に示したとおりRailsの原則を表している重要な項目です。
試験勉強に留まらず、是非Railsの考え方についても触れてみてください。
具体的な学習については、Ruby on Rails チュートリアルをお薦めしています。
Ruby on Rails チュートリアル
https://railstutorial.jp/
また、今後公式問題集の発売も予定しておりますのでお待ちください。
お知らせ
当委員会はRails7ベーシック試験ベータ試験実施結果を踏まえ、ベータ2試験を実施することといたしました。
詳細については以下のページをご覧ください。