[Rails]コードの品質を上げるために僕らが出来ること。


はじめに

いきなりですが、コードの品質ってかなり重要ですよね?
汚いコードを書くと、自分だけでなく一緒に開発しているメンバーにも迷惑をかけてしまいます。この記事では品質を上げるために必要なものを紹介します!

CI(継続的インテグレーション)について

CIとは、コードの更新に対して自動でテストを実行させる仕組みのことです。
これを実行する有名なツールやサービスとして、、

  • CircleCI
  • Travis CI
  • Github Actions

などがあります。

その中でも自分が使っていたGithub Actionsについて記事を執筆したので、良ければこちらをご覧ください。

Gemの定期アップデートについて

Gemは日々更新されているので、アプリケーションの方で定期的なアップデートが必要です。怠ってしまうと、更新時の作業コストが大きくなってしまうので定期的に行いましょう。

手動で更新する

手動で、bundle updateを行なって、最新をメインブランチにpushすれば更新完了です。

Dependabot

まずは手動でbundle updateして、現時点の最新バージョンにしておきます。

ブラウザから設定する場合

以下の記事を参考にセットアップしてください。

設定ファイルをリポジトリに追加する場合

以下のファイルを作成する。

dependabot/config.yml
version: 1
update_configs:
  - package_manager: 'ruby:bundler'
    directory: '/'
    update_schedule: 'weekly'
    allowed_updates:
      - match:
          update_type: 'all'

静的解析について

Rubocop

問題のあるコードがある場合に指摘してくれるツールです。これを利用すると、バグの可能性を潰したり、コーディング規約に則ってチームメンバーと書き方を統一したりできます。導入方法や設定方法は以下の記事を参考ください。

copの種別

ルール名 概要
Layout cops インデントやスペースの有無を検査する
Lint cops バグの可能性があるコードを検査する
Metrics cops クラスやメソッドの長さ、コードの複雑さを検査する
Naming cops メソッド名や変数名など、命名に関する検査をする
Security cops セキュリティ観点での検査をする
Style cops コーディング規約に沿っているか検査する

Breakman

コードを解析して脆弱性に関係ありそうな箇所をレポート出力します。

カバレッジ測定について

カバレッジとは、アプリケーションコード全体でテストコードにより実行されたコード割合がどれくらいなのかを表す指標のことです。カバレッジを測定することで、テストで網羅しきれていない部分を見つけて効率よくテストを実行することができます。ここでは、SimpleCovを紹介します。

SimpleCov

カバレッジを測定できるgemです。テストコード実行時にカバレッジ測定結果レポートをHTMLレポート出力します。

使い方

1.gemを追加し、bundle installを実行する。

group :test do
  ...
  gem 'simplecov'
end

2.テストを実行すると、coverge/index.htmlへ結果が出力される。

終わりに

ここまで、コードの品質を上げるための方法を見てきましたが、どれも現場では導入されていることが多いので抑えておきましょう!