Ruby・Rails よく使うGemについて
gem rails
なぜ6系か?
- rails5系を使う理由がないから
- ドキュメントも多く、エラー時の対応も容易
- はじめからWebpackerが梱包されているから
gem pg
なぜMySQLでなく、PostgreSQLなのか?
- PostgreSQLの方が、複雑なクエリを実行するのに適してる
gem puma
なぜunicornでなく、pumaなのか?
- Pumaはマルチスレッドで動くので、プロセスを増やす必要がないからリソースが少ない中でも効率的にリクエストをさばくことが可能になる。
- 大量のアクセスをさばくような想定ではないから...Pumaの方がパフォーマンスが良いと判断した。・
gem sass-rails
デフォルトで導入されているgemで自動的にCSS圧縮してくれる。
gem webpacker
Webpackerとはgemの名前で、Webpack
を導入してくれるもの
Webpackを使用してRails上でJavaScript開発をするために必要な一連のまとまりを実装することができるgem
gem turbolinks
Turbolinksとは、画面遷移を高速化させるライブラリ
1.リンクのクリックイベントが発火
2. 画面遷移を阻害し、非同期でリクエストを送る
3. HTMLをレスポンスとして返す
4. headタグに含まれているJSとCSSが、現在のページと一致しているかチェック
5. headタグはマージ、bodyタグは差し替えることで画面遷移が起きたように見せかける
gem jbuilder
JSON形式のデータを簡単に作成する事が出来るgem
gem bootsnap
railsの起動時の処理を最適化する(パスとrubyのコンパイル結果をキャッシュ)ことで起動時間を短縮してくれる便利なgem
gem rails_heroicons
アイコンを使用できるようになるgem
font-awesomeで有料でないと利用できないようなアイコンがあったりする。
gem rails-i18n
アプリケーションの文言を英語以外の別の1つの言語に翻訳する機能や多言語サポート機能を簡単かつ拡張可能な方式で導入するためgem
gem sorcery
Railsに認証機能の実装を行うためのライブラリ
deviseとの違い
- sorceryの方がシンプルでカスタマイズ性がある
- deviseは簡単なコマンドですぐに実装できるがその分ブラックボックス化されがち
gem groupdate
所定のタイムゾーンに基づいて、日時のデータを扱い、メソッドが増えて扱いやすくなるgem
gem go
Railsの変数を、JSで使える変数に変換してくれるgem
gem rails_admin
管理画面を簡単に作成してくれるgem
gem cancancan
Railsの権限管理のgem
gem faker
ある項目のデータを自動で出力してくれるgem
gem gimei
ランダムな日本語のデータを作成してくれるgem
gem active_hash
変更されないデータ(都道府県名やカテゴリー選択など)をモデルファイル内に直接記述することで、データベースへ保存せずにデータを取り扱うことができるgem
gem will_paginate
ページネーションを簡単に実装できるgem
gem meta-tags
RailsアプリケーションをSEO対応にするためのgem
gem config
定数管理を簡単にできるようにするgem
gem byebug
標準で搭載されてるデバッグツール
gem factory_bot_rails
サンプルデータ(≒ ダミーのインスタンス)を簡単に作成することができるテストツール
rspec-rails
RSpec とは Ruby プログラマー向けの BDD(Behaviour-Driven Development) ツール
gem capybara
ラックベースのWebアプリケーション用の統合テストツールです。ユーザーがWebサイトをどのように操作するかをシミュレートする
gem selenium-webdriver
プログラミングを介して、ブラウザを操作するライブラリ
gem webdriver
クロームで動かしたいときに使用する。
selenium-webdriver
とほぼ同じ?
gem better_errors
デフォルトのエラー画面を見やすくしてくれるgem
gem bindingof_caller
better_errors
のエラー画面にirbをつけてくれるgem
gem bullet
「N+1問題」を見つけてくれるgem
gem letter_opener_web
開発環境で送信したメールをブラウザで確認することができるgem
gem web_console
View 内でコンソールを立ち上げて、変数や parameter などの状態を見る事の出来るデバック用のgem
gem listen
ファイルの変更を検知して変更について通知してくれるgem
gem rubocop
Rubyの静的コード解析を実行するgem
gem rubocop-performance
Rubocopのプラグインで性能低下につながるコードを指摘し修正を促す Cop の集合のこと
gem rubocop-rails
gem rubocop-rspec
gem overcommit
git hooksの管理・拡張をサポートするgem
gem capistrano
デプロイ作業を自動化してくれるgem
gem capistrano-rails
Capistranoでマイグレーションやアセットのコンパイルを可能にするgem
gem capistrano-rbenv
Capistranoでrbenvでインストールしたrubyを使用可能にするgem
gem capistrano-rbenv-vars
rbenv-varsをインストールするためのCapistranoプラグイン
gem capistrano3-puma
Capistrano3のPuma統合してくれるgem
gem tzinfo-data
TZInfoが参照するタイムゾーン情報を提供するgem