背景
Railsを使用する場面があったのです
Railsって何?となって軽くアウトプットがてらブログを書く流れになりました
自分への理解を深めたいのでしっかりアウトプットしていきます。
基礎知識のアジェンダ
今回のアジェンダはこちらになります。
- Ruby
- Ruby on Rails
- Gem
- Gem file
- Bundler
- Gemfile.lock
現在、Dockerを学んでいるのですが
RubyとRailsについても初めて(progateではやったけど忘れたw)
なのでアウトプットしていきます!
Ruby
Ruby
- Rubyとはプログラミング言語そのもの
- 1995年に一般公開されたオブジェクト指向スクリプト言語
- Rubyの制作者は「まつもと ゆきひろ(通称:Matz)」さん
Rubyが活用される場面
- Webアプリ開発(Railsで作るサービスやサイト)
- スクリプト処理(ファイル操作や自動化)
Rubyの特徴
- 柔軟性が高い:同じ処理をいろんな書き方で書ける
- ライブラリ(Gem)が豊富:拡張機能を簡単に追加できる
- 日本発の言語で、ドキュメントや解説が日本語で多い
ふーむ調べてみるとおもろいけどキリないな![]()
Ruby on Rails
Ruby on Rails
- Rubyで書かれたWebアプリケーションフレームワーク
- 「同じことは繰り返さない(DRY: Don’t Repeat Yourself)」 と
「設定より規約(Convention over Configuration)」 という思想が有名
Ruby on Railsの特徴
- Webアプリの基本機能が最初から揃ってる
(ログイン機能、DB接続、フォーム、バリデーションなど) - 大量のGem(ライブラリ) を使って拡張しやすい
- 日本発の言語で、ドキュメントや解説が日本語で多い
Railsで作れるもの
- ECサイト(商品登録、決済、カート機能)
- SNS(ユーザー登録、投稿、コメント機能)
Ruby on RailsはRubyで動く、Webアプリを素早く・効率よく開発できる仕組みってことね!
Gem
-
Rubyのライブラリやパッケージのこと
「便利な機能をまとめた部品」を配布する仕組み -
Pythonでいう pipパッケージ、JavaScriptでいう npmパッケージ みたいな存在
パッケージ → 機能が入った部品(ライブラリ)
パッケージマネージャ → それらをまとめて管理する仕組み(インストール・更新・削除・依存関係の調整)
Gem(大文字) → Rubyのパッケージのこと
gem(小文字・コマンド) → パッケージマネージャのこと
ここら辺しっかり理解しておきたかった!
Gem file
-
Ruby(特にRails)プロジェクトで使う Gem を一覧管理するファイル
-
「このアプリはどんなライブラリ(Gem)を使ってるか」を明文化したもの
こんな感じでこんなGemをもってるよーって感じね!
Bundler
-
RubyのGem(ライブラリ)をまとめて管理するツール
-
gem コマンド単体では「インストール・削除」
しかし、Bundlerを使うと
Gemfileをもとに依存関係やバージョンをしっかり管理できる
Bundlerが解決する問題
例えば
AというGemは「ライブラリXの1.0」が必要
BというGemは「ライブラリXの2.0」が必要
このような依存関係の衝突 がよく起きる。
Bundlerはそれを整理して「このプロジェクトではこのバージョンで固定!」と解決してくれる。
Bundlerの役割まとめ
-
Gemfileを読む
-
Gemをインストールする
-
依存関係を解決する
-
Gemfile.lockにバージョンを固定する
-
実行時に正しいGemを読み込ませる
BundlerはGemの依存関係やバージョンをまとめて管理して、プロジェクトを安定させるための必須ツール
Gemfile.lock
-
Gemfileで宣言したGemの「確定版リスト」 を記録したファイル
-
Bundlerが 依存関係やバージョンを解決した結果 をここに書き出す
-
他の開発者や本番環境でも 同じバージョンのGemを使うための保証になる
Gemfile.lockの重要性
-
チーム開発
みんな同じGemのバージョンで作業できる -
本番環境での安定性
「開発環境では動くのに、本番では動かない」を防ぐ -
依存関係の固定
Gem同士のバージョン衝突を防ぐ
まとめると
-
Ruby → 言語
-
Ruby on Rails → Webアプリ作るためのフレームワーク
-
Gem → Rails や Ruby に便利機能を追加するパッケージ
-
Gemfile → 使いたいライブラリのリスト
-
Bundler → そのリストを読んで管理する人
-
Gemfile.lock → 実際に入れたライブラリのバージョン記録
感想
RailsについてもDockerについてももっと理解できるようになりたい!
プログラミングができるようになりたい!と思ったので
ブログを書いてみました!
めっちゃ楽しかったです✨
これからも勉強を楽しみたいです!
