Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rubocop対応のすゝめ

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 Rubocop対応のすゝめ

Rubocop対応の進め方についてまとめました。

Avatar for Hiroki Tanaka

Hiroki Tanaka

August 06, 2021
Tweet

More Decks by Hiroki Tanaka

Other Decks in Technology

Transcript

  1. Rubocop とは - Rubyお馴染みの静的コード解析ツール。 - 他言語だとFindBugs(Java)・ESLint(JavaScript)に当たるもの。 - Rubocopの良い所 - 各ファイルのインデントや改行・カンマの位置といった本来、人が考える必要がない部分を自動で

    修正し、全体の整合性を取ってくれる。人が考えるべきことに集中出来る。 - 複数人開発時にコードの書き方をある程度統一出来るので、可読性が向上し、コード品質を保つ事 が出来る。コードの書き方が統一されるので、レビュアーの負荷も軽減出来る。 - PJによっては全ての警告を採用したくない場合があるが、状況に合わせて柔軟に警告のカスタマイ ズを行うことが出来る。 - 新規にJOINされた方が書き方に迷わず開発出来る。
  2. Rubocop 導入の機運 - 社内で行ったRubocop導入に関するアンケートによると(回答数:20) - Rubocopを導入すべきだと思いますか?⇒ Yes:19票 - 理由(抜粋) -

    スペースやインデントが機械的に修正されるので、コードレビューで本質的なことに集中でき るようになる。 - 実装時によくないコードの書き方をレビュー前・リリース前に知ることができる。 - Rubyを触る機会が少ないメンバにとって、たまの実装時に自動チェックがあるのは安心感が ある。 ※202008時点でtanakaは入社前のため、アンケートには不参加。
  3. Rubocop対応の進め方:修正実施~PR作成編 1. .rubocop_todo.ymlからコメントにCop supports --auto-correct.と付いているcopを選択し、警告内容を確認。確認 後、.rubocop_todo.ymlからそのcopに関する部分を削除する。 2. 警告の出ていたファイルに対して、自動修正コマンドを実行する。 a. 実行コマンド:bundle

    exec rubocop -a --force-exclusion XXX(ファイル名) YYY(ファイル名) b. 修正箇所が巨大になりそうな場合はファイルを分割対応を行う。 c. -aオプションを使用して、破壊的変更の加わらない安全な自動修正のみを行う。 3. 自動修正が行われたことを確認し、PRを発行する。 a. 修正されたファイルを確認し、問題があれば手動で修正する。 b. 手動修正は変なインデントを直す程度なのでロジックには手を加えない。 4. レビューでapprove頂き次第、Rubocopの修正まとめブランチにPRをマージ。