はじめに
ここ半年間ぐらい、SonarCloudとGitHubを連携してPullRequestのレビューを一部自動化しているのですが、
その使用感について振り返ってみたいと思います
SonarCloudって何
一部無料で使える、自動コードレビューのためのSaaSです。
GitHubと連携すると、PullRequestをバグ・脆弱性・コードスメル・コード重複などの視点で自動レビューし、問題があればステータスに反映してくれます。チェックの結果は下の図のようなイメージでPullRequestに表示されます。
色々なプログラミング言語に対応しているのですが、うちではPythonとTypeScriptのプロジェクトに対して適用しています。
(画像引用: SonarCloud公式の機能説明ページ)
使ってみて
実際に使ってみると、たまに人でのレビューが行き届かないバグを見つけてくれることもあり、コードの品質を維持する目的ではとても役に立っていると思います。
VSCodeのプラグインなども提供してくれているため、PullRequestに出す手前の段階でも事前に一部の問題に気づくこともできるような工夫があってありがたいです。
悩ましいところとしては、PullRequestに表示されるのはあくまでもバグの個数などで、指摘内容の詳細についてはSonarCloudのWebページに遷移して確認する必要があり、そのときにログインが必要になるのですが、そこで1ステップ挟まってしまうのでどうしても確認のための心理的ハードルが高くなってしまうということがあります。
また、自動チェックだと避けられない部分もあるとは思うのですが、うちの場合テストコードなどを書くときにどうしてもコード重複が発生することがあり、それが原因でチェックが通らないことも多々あります。そういうときは、SonarCloudを無視してマージせざるを得なくなるのですが、その辺り、適切に運用するためには、開発スタイルにあったチェックのルールをメンテナンスする必要は出てくるかと思います。(その辺り、ルールをカスタマイズできるようにはなっています)
まとめ
短くなってしまいましたが、備忘的にSonarCloudの使用感について振り返ってみました。
まだまだ、これから成長しているSaaSだと思うので、これからさらに進化することを期待しつつ使っていきたいと思います。
GitHub copilotとかもそうですが、どんどんコードの解析が賢くなっていて、いつかコードを書かなくても良い日が来るのではないかと期待してしまいますね。