はじめに
こんにちは。
ナビタイムジャパンで社内JiraやBitbucketの運用をしている TAKE です.
弊社ではSonarQubeのCommunity版とDeveloper版の2つを使い分けています.
そこでわかったそれぞれの利点についてお伝えいたします.
結論
どちらか片方だけに絞るよりプロダクトや内部ツールなどリポジトリの重要度によって使い分けることが大切だと思います.
比較
料金
一番大きいところはこれですね.
下記の表のようになっています.
行数毎の課金は
- 100,000行 14,470円
- 250,000行 108,526円
- 500,000行 217,086円
- 1000,000行 361,810円
※ 2019/12/11時点の為替です
すべてのリポジトリにいれるとなると,しっかり検討したくなるお値段設定ですね.
環境構築
Community版が圧倒的に楽でDockerとdocker-composeで環境構築が可能です.
公式のGithubにdocker-compose.yamlのレシピもおいてあるのでコピーして起動するだけですね.
Developer版については公式ページからDLしたあとに,環境構築をして起動のためのshellを叩く形になります.
DBはデフォルトだとH2 Databaseを利用するのでPostgresなどを利用したい場合は /conf/sonar.properties の設定が必要になります
機能
対応言語
Community版に比べてDeveloper版が6言語多いです.
中にはC++やSwiftなどの利用者の多い言語も含まれるためこの段階でDeveloper版となる方もいるかもしれません.
Python,JS,TS,Go,KotlinなどはCommunity版でも解析してくれるので差分をみて確認してください
https://www.sonarqube.org/downloads/
Sonarには拡張機能があり,公式でなくとも言語を導入できる場合もあるのでCommunity版を選択することもできるかもしれません!
(参考にC++のフリープラグインを共有します)
https://github.com/SonarOpenCommunity/sonar-cxx
解析ブランチ
Developer版はブランチ名を渡してあげることによってブランチ解析が可能です.
しかしCommunity版はmasterブランチしか解析できません.
他のブランチを解析したい場合はmasterブランチだと偽装してsonarqubeにソースコードを解析してもらう必要があります.
ブランチ毎に解析することによってmasterにバグや複雑なコードがマージされる前に防ぐことができます.
バグを起こしたくない重要なプロダクトで利用すると良さそうですね.
※ Developer版の課金は解析した各ブランチの一番多かったソースコードで発生します.
プルリクエスト
圧倒的にDeveloper版が便利です.
プルリクだした段階でたくさんメッセージを出してくれます.
レビュアーにいっぱい指摘されて申し訳なさでいっぱいになる私でも機械だったら安心です.
まとめ
表のようにそれぞれに利点があるのでリポジトリ毎に使い分けるとよいです!