付録B RuboCop
RuboCop は、Ruby のコードを静的に確認するためのツールです。
本編では、Web アプリケーションの仕組みを理解することを優先したため、RuboCop は扱いませんでした。自分のアプリケーションを提出物や公開物として整える段階で、Ruby コードの書き方を確認するために使います。
RuboCop で分かること
RuboCop は、例えば次のような点を指摘します。
- インデント
- 空行
- 使っていない変数
- 長すぎる行
- 条件分岐の書き方
- Ruby の一般的なスタイル
RuboCop は、アプリケーションが正しく動くことを保証するツールではありません。HTTP メソッド、PRG、XSS 対策、JSON 保存が正しいかは、本文で学んだように動作確認と Network タブでも確認します。
導入例
RuboCop を使う場合は、Gemfile に開発用の gem として追加します。
group :development do
gem "rubocop", require: false
end
追加したら、依存関係をインストールします。
bundle install
実行するときは、Bundler 経由で実行します。
bundle exec rubocop
指摘を読む
RuboCop の指摘は、機械的にすべて自動修正すればよいものではありません。
特に初学者のうちは、次の順で確認します。
- どのファイルの何行目を指摘しているか。
- 何が問題だと言っているか。
- 自分のコードをどう直すと読みやすくなるか。
- 直したあともアプリケーションが動くか。
自動修正を使う場合も、差分を確認します。
bundle exec rubocop -A
-A は強い自動修正です。予想より大きな変更が入ることがあります。実行後は、git diff で何が変わったかを必ず確認してください。
本文の学習とは役割が違う
RuboCop は、Ruby コードの形を整える助けになります。
一方で、次のようなことは RuboCop だけでは判断できません。
- POST 後にリダイレクトしているか。
PATCHとDELETEが method override で届いているか。- 利用者入力を表示時にエスケープしているか。
data/movies.jsonをpublic/に置いていないか。
コードを整えることと、Web アプリケーションとして正しく動くことは別の観点です。両方を確認します。