Rails新規開発時のスピードを極限まで高めるテンプレートを公開してみた

1 min read

これはなに?

Rails の初期設定ってめんどくさくないですか?
rails new してからの単純作業。

せっかくスピード感があるフレームワークなのに最初の単純作業はほぼ同じことを毎回していますし、地味に時間もかかるので嫌でした。
今や Docker を使ってサクッと環境を構築するのは当然ですが、それでもやっぱり面倒。

特に、

  • RSpecのセットアップ
  • devise の設定
  • お決まりの Gem を入れる手間

この辺が嫌いでしたし、皆さんにもやって欲しくない!!

そうだ、テンプレートを作ろう

んで、どうせなら皆さんにも公開して是非使って頂こう、あわよくば改善案も貰ってしまおうという非常に厚かましい企画となっております。
ちなみに他にもテンプレートを公開されている方はいらっしゃいましたが少し古くなっていますし、Docker を使っていないことも多かったです。

今回は Docker を使って爆速で Rails 開発を始められるテンプレートを丸ごと公開します!!

バージョンなど

  • ruby:2.6.6
  • rails 6.0.3
  • postgresql:12.3

こららのモダンな環境をサクッと構築してすぐに開発に取り掛かれます!!

どんな人におすすめか

主に個人開発や簡単なRailsアプリをサクッと作りたい場面で有用だと思います。
逆にメジャーとは言え、使わない Gem も入ることになると思うので(最初に取り除けば全く問題ありませんが)、スピード重視じゃない場合には合わないかもしれません。

行った設定等の解説

リポジトリはこちらです 👇

https://github.com/tatsuro-m/rails_base_app

基本的には README に手順が書いてあるので問題なく使えると思います。
手順が多いようにも見えますが、本当にすぐに終わります。

  • devise の初期設定(rails generate devise:install を実行。viewの生成はしていない。)
  • rspec のセットアップ(システムスペックを含む)
  • test ディレクトリの削除(使わないので)
  • database.yml の編集(postgresコンテナに設定した環境変数と合わせてあります)
  • .env.gitignore への追加
  • webpack-dev-server の設定

こんな感じで Docker イメージをビルドして起動 + 最低限必要なコマンドを何個か打つ
ぐらいでサクッと Web アプリケーションの開発が始められると思います。

んで、 Gem 何入れたの?

Gemfiile
gem 'devise'
gem 'devise-i18n'
gem 'dotenv-rails'
gem 'ransack'
gem 'kaminari'
gem 'carrierwave'
gem 'mini_magick'
gem 'fog-aws'
gem 'rails-i18n'
gem 'draper'
gem 'pundit'

デフォルトのものに加えて、こちら入れました。どれも定番ですね。必要な Gem があれば Gemfile に書き込んでから docker-compose build でももちろん大丈夫です。

今後の改善案など

  • CircleCI で rubocop と RSpec を走らせる設定ファイルはもう定番だし入れても良いかもしれない(不要なら消せば良いだけですし) 。。。
  • rails が動いているコンテナの中に SystemSpec 起動用の chrome を入れているけど、コンテナを分けるべきかもしれない

他にも何かあればコメントください。PR もお待ちしてます!!


どなたかのお役に立てたら幸いです。