[Rails 5] rails newで常に使いたい厳選・定番gemリスト(2017-2018年版)

こんにちは、hachi8833です。 主にRails 5を念頭に、BPSのWeb開発で厳選された定番gemリストをまとめました。この記事は今後も随時更新しますのでよろしくお願いします。 2017/07/24: LicenseFinderとRufoを追加しました。 2017/11/09: Annotate(AnnotateModels)を追加しました。 2018/10/24: database_cleanerがRails 5.1以降で不要であることを追記しました。 2018/10/24: rails_best_practicesを追加し、Rails5.2.1で検証しました。 概要 Rails でrails newした後、rails generateする前に「そうだ、あのgemとあのgemも追加しなきゃ」となることはよくあります。 gemをあれもこれも追加すると余分な問題を抱えることになりがちなので、gemリストはrails newするときからスリムに保っておきたいものです。Railsを始めて間もない人には特にgemを厳選することをおすすめします。 なお、以前は定番gem追加済みのGemfileやアプリケーションテンプレートを作ってみたこともありましたが、rails newを頻繁に行うのでなければメンテナンスの手間に引き合わないのでやめました。 環境 Rails: 5.2.1 Ruby: 2.5.3 Bundler: 1.16.6(gem update bundlerで最新にアップデートできます) TechRacho記事『[Rails 5] rbenvでRubyをインストールして新規Rails開発環境を準備する』の方法でRuby/Rails環境を構築する前提です。 定番gemリスト(プロジェクト非依存) 案件や開発環境にかかわらず、常に追加・変更しておきたい厳選gemです。 gem名のリンクをクリックすると記事後半の詳細に移動します。 ファイル保存時のRSpec自動実行など、IDEでカバーできるgemは含めていません。 RDBMSはデフォルトのSQLiteのままにしてあります。MySQLにするかPostgreSQLにするかについては別途設定してください。 gem 機能 development test production rubocop コーディングルールのチェック ◯ brakeman 開発中の静的セキュリティチェック ◯ bundler-audit gemのセキュリティ情報のチェック ◯ RSpec一式 テスティングフレームワーク ◯ ◯ rack-mini-profiler パフォーマンスをブラウザに表示 ◯ better_errorsとbinding_of_caller エラー時に表示される使いやすいデバッグ画面 ◯ bullet n+1問題を検出 ◯ LicenseFinder 依存関係のあるライブラリのライセンスをチェック ◯ ◯ rufo ミニマムなRubyフォーマッタ ◯ Annotate モデルなどにスキーマをコメントで貼ってくれる ◯ rails_best_practices コードのベストプラクティスをサジェスチョンする ◯ Gemfile Rails 5.0.1の新品Gemfileに厳選gemのみを追加したものを参考までに貼ります。 元のコメント行は削除してあります。 rails newで使うのが前提なので、既存プロジェクトでは状況に合わせてGemfileに追記してください。 source ‘https://rubygems.org’ git_source(:github) do |repo_name| repo_name = “#{repo_name}/#{repo_name}” unless repo_name.include?(“/”) “https://github.com/#{repo_name}.git” end gem ‘rails’, ‘~> 5.0.1’ gem ‘sqlite3’ gem ‘puma’, ‘~> 3.0’ gem ‘sass-rails’, ‘~> 5.0’ gem ‘uglifier’, ‘>= 1.3.0’ gem ‘coffee-rails’, ‘~> 4.2’ gem ‘jquery-rails’ gem ‘turbolinks’, ‘~> 5’ gem ‘jbuilder’, ‘~> 2.5’ # Use Capistrano for deployment # gem ‘capistrano-rails’, group: :development group :development, :test do gem ‘byebug’, platform: :mri gem ‘rspec-rails’ gem ‘factory_bot_rails’ gem ‘license_finder’ end group :development do gem ‘web-console’, ‘>= 3.3.0’ gem ‘listen’, ‘~> 3.0.5’ gem ‘spring’ gem ‘spring-watcher-listen’, ‘~> 2.0.0’ gem ‘rubocop’ gem ‘brakeman’ gem ‘bundler-audit’ gem ‘rack-mini-profiler’ gem ‘better_errors’ … Continue reading [Rails 5] rails newで常に使いたい厳選・定番gemリスト(2017-2018年版)