はじめに
いきなりですが、コードの品質ってかなり重要ですよね?
汚いコードを書くと、自分だけでなく一緒に開発しているメンバーにも迷惑をかけてしまいます。この記事では品質を上げるために必要なものを紹介します!
CI(継続的インテグレーション)について
CIとは、コードの更新に対して自動でテストを実行させる仕組み
のことです。
これを実行する有名なツールやサービスとして、、
- CircleCI
- Travis CI
- Github Actions
などがあります。
その中でも自分が使っていたGithub Actionsについて記事を執筆したので、良ければこちらをご覧ください。
Gemの定期アップデートについて
Gemは日々更新されているので、アプリケーションの方で定期的なアップデートが必要です。怠ってしまうと、更新時の作業コストが大きくなってしまうので定期的に行いましょう。
手動で更新する
手動で、bundle update
を行なって、最新をメインブランチにpushすれば更新完了です。
Dependabot
まずは手動でbundle update
して、現時点の最新バージョンにしておきます。
ブラウザから設定する場合
以下の記事を参考にセットアップしてください。
設定ファイルをリポジトリに追加する場合
以下のファイルを作成する。
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
へ結果が出力される。
終わりに
ここまで、コードの品質を上げるための方法を見てきましたが、どれも現場では導入されていることが多いので抑えておきましょう!