Railsメモ

Rails6で確認。

設定

開発ツール

  • デフォルトで入っている:rack-mini-profiler
  • 必須:RuboCop、RSpec、FactoryBot
  • あった方が良い:Brakeman、Bullet、rack-dev-mark、bundler-audit
  • テストカバレッジを気にする場合:SimpleCov
  • ファイル変更時に自動チェックしたい場合:Guard
  • 入れても良いかも:rails_best_practices、better_errorsとbinding_of_caller
  • まずいコードになりがちな場合:Reek
  • 大規模なリファクタリングを考えている場合:debride
  • 入れなくて良い:Fasterer、MetricFu

Linter、静的コード解析ツール

  • RBSとSteepメモ
    • Ruby、Railsにおける型付け
  • RuboCopメモ
    • RubyのLinter
  • Brakemanメモ
    • Rails用の脆弱性チェックツール
  • Reekメモ
    • 設計的に問題がありそうなコードを指摘する静的コード解析ツール
  • debrideメモ
    • 呼ばれていないメソッドを探す静的コード解析ツール
  • rails_best_practicesメモ
    • Rails用の静的コード解析ツール。Rails Best Practicesの内容に基づくチェックを行う。
    • ただし、サイトを見ればわかる通り、定義された時期が相当古く、完全に時代遅れとなっているものも存在する。
  • Fastererメモ
    • Fast Rubyの内容をチェックしてくれる静的コード解析ツール
    • rubocop-performancegemでもFast Rubyの内容をチェックしているので、Fastererは使わなくても良いかも。
  • MetricFuメモ
    • rails_best_practices、roodi、flay、flog、Churn、reek、Caneをまとめて実行するツール
    • 古くなっているツールも含まれるし、必要なものを個別で実行すればよいので個人的には使わなくていいと思う。

プロファイラ

  • Bulletメモ
    • N+1クエリが実行されているとき、不要なeager loadingが実行されているとき、カウンターキャッシュを利用すべきときに通知してくれるプロファイラ
  • rack-mini-profilerメモ
    • パフォーマンスのプロファイリングをするためのツール。ブラウザ経由で使う。

RSpec

その他の開発ツール

機能追加Gem

Gemの選定基準

  • Kaminariメモ
    • ページング機能
  • Punditメモ
    • ACL機能(いわゆる認可機能)
  • Sorceryメモ
    • 認証機能
    • 認証機能のライブラリで自分で認証処理を組み立てるGem
  • devise
    • 認可機能
    • 認証機能のパッケージですでに作られている認証処理をカスタマイズしていくGem
    • 個人的には好かん
  • CarrierWaveメモ WIP
    • 画像アップロード機能
  • Interactorメモ
  • dry-rb

ドキュメント

RSpec

どうも、Relishの問題で表示されなくなっているようである。生成元のGitHubのディクトリのリンクを付記しておく。

Rails

  • Ruby on Rails API
    • 古いバージョンを参照するときは「https://api.rubyonrails.org/v5.2.4/」のようにバージョン番号をつける
  • APIdock
    • 追加されたメソッドや廃止されたメソッドがどのバージョンで使えるのか調べたいときに使う
    • たまに代替コードがコメントで記載されている
    • 検索の使い勝手は悪いので、「apidock activerecord all」といった感じにググった方が早い。

スタイルガイドやコードサンプルなど

コマンド

Rails 6.1.3で確認。

  • bin/rails about
  • bin/rails action_mailbox
  • bin/rails action_text
  • bin/rails active_storage
  • bin/rails app:template
  • bin/rails app:update
    • Railsのアップデートを行うコマンド
  • bin/rails assets
  • bin/rails cache_digests
  • bin/rails console
  • bin/rails credentials
  • bin/rails db
  • bin/rails dbconsole
    • RDBのクライアントを起動する
  • bin/rails destroy
  • bin/rails dev:cache
    • 開発環境でキャッシュのオンオフを切り替える
  • bin/rails generate
  • bin/rails initializers
    • イニシャライザの一覧を表示するコマンドらしい
  • bin/rails log:clear
  • bin/rails middleware
    • 利用しているRackミドルウェアを一覧表示する
  • bin/rails new
  • bin/rails notes
  • bin/rails restart
    • Railsを再起動する。touch tmp/restart.txtと同じ。
  • bin/rails routes
  • bin/rails runner
  • bin/rails server
  • bin/rails stats
  • bin/rails time:zones
    • タイムゾーンを一覧表示する
  • bin/rails tmp:clear
    • tmp/cachetmp/socketstmp/screenshotsの中身を削除する
    • 個別に削除したい場合はbin/rails tmp:cache:clearのようにする
    • bin/rails tmp:ceateは上記ディレクトリを作成するコマンド
  • bin/rails version
    • 利用しているRailsのバージョンを表示する
  • bin/rails webpacker
  • bin/rails yarn:install
    • yarnを使ってJavaScriptの依存パッケージをインストール。bin/yarn installyarn installとの差異はよくわからない。
  • bin/rails zeitwerk:check
    • Zeitwerkでロードできるファイル名やクラス名になっているかチェックする