Railsの基礎学習の中で覚えておきたいまたはよくわからなかった用語を調べてまとめてみました。これから学習が進み次第追記していこうと思います。
Webサーバソフトウェア
Webサーバソフトウェアは、ブラウザとアプリケーションサーバの間に立ち、ブラウザからのリクエストをアプリケーションサーバにリクエストし、アプリケーションサーバからのレスポンス(HTML、CSS、JavaScriptなど)をブラウザへ返す役割を持つ。静的ファイルの場合は、そのままブラウザへレスポンスを返す。
アプリケーションサーバソフトウェア
アプリケーションサーバソフトウェアは、ブラウザやWebサーバと通信し、動的なコンテンツを生成して送信する。また、リクエストによって、データベースサーバーにアクセスしデータの抽出や加工処理を行う。ローカル環境の場合、Webサーバを持たずアプリケーションサーバとブラウザが直接やりとりすることもある。
データベースサーバソフトウェア
データベースサーバソフトウェアはデータの記録、読み書きを行う。MySQLやPostgreSQLなどのソフトウェアを使用してデータの処理を行う。
Puma
Pumaはアプリケーションサーバとして動作するソフトウェアの一種で、マルチスレッドで処理することによって高速な処理が可能。Rubyで使用するアプリケーションサーバの別の例としてUniconがある。
Gem
GemはRuby以外の文脈ではライブラリと呼ばれ、プログラムが搭載されたの部品のようなもの。RailsもGemの一種で、複数のGemの集合体である。
Node.js
JavaScriptの実行環境。JavaScript自体はブラウザ上での動作しか担当していないが、Node.jsを使用することでOS上にてJavaScriptを実行できるようになる。
Webpacker
WebpackerはRailsでフロントエンド開発を行う際に使用されるGemで、webpackを実装している。WebpackはCSS、JavaScript、画像などのアセットを1つのファイルにまとめるための部品のこと。
MVC
MVCはアプリケーションの役割分担方式で、以下の役割ごとの概念の頭文字を取ったもの。
-
コントローラ: ModelとViewの間を取り持ち、ユーザからの値をModelに渡したり、Modelから受け取った処理結果をViewに渡す
-
モデル: データベースの操作やデータの計算などを担当する
-
ビュー: ユーザが見る画面への出力を担当し、HTMLを生成する
アクション
Railsガイドから引用:https://railsguides.jp/action_controller_overview.html
アプリケーションがブラウザからのリクエストを受け取ると、ルーティングによってコントローラとアクションが指名され、Railsはそれに応じてコントローラのインスタンスを生成し、アクション名と同じ名前のメソッドを実行します。
この文脈から、アクションはルーティング時に指定される名前のこと。メソッドは、アクションの指定によって実行されるコントローラクラスのメソッドのこと。
マイグレーション
マイグレーションはデータベースにあるテーブルを操作するための仕組みで、マイグレーションファイルを操作することでテーブルの操作が可能。マイグレーションファイルはテーブルの設計図のようなもので、カラムやデータ型の定義された情報が含まれる。
ルーティング
ルーティングはブラウザやWebサーバから受け取ったリクエストに対して適切な処理を行うコントローラに案内するためのルール。
参考にしたサイト
- Puma https://puma.io/
- 【Ruby/Ruby on Rails】重要用語・基礎知識まとめ【プログラミング学習開始128日目】
https://qiita.com/fuku_tech/items/4d2517ec5bbd53726997 - Railsガイド https://railsguides.jp/getting_started.html
- Webpackerとは https://zenn.dev/yusuke_docha/articles/550eee06b1ab1e
- Node.jsとはなにか?なぜみんな使っているのか?
https://qiita.com/non_cal/items/a8fee0b7ad96e67713eb - RailsにおけるMVC(モデル/ビュー/コントローラ)
https://www.javadrive.jp/rails/ini/index7.html - Railsにおけるマイグレーションとは
https://diveintocode.jp/blogs/Technology/migration - Railsのルーティングを学ぼう①
https://diveintocode.jp/blogs/Technology/Routing1