はじめに
2016年10月より、Force.com Security Source Code Scannerが一部を除き、有償化されてしまいました。セキュリティレビューのために必要なチェックを実施できるツールですが、コード品質を向上させるためにも利用できていました。
今回の有償化処置により、Lintのように定期的に実施してコード品質の維持・向上に役立てる使い方ができなくなってしまいました。ということで、今回は代わりとなるツールがないか調査した結果をまとめてました。
調査結果(2016年12月25日時点)
今回調査した範囲で見つかったはツール・サービスは以下のとおりです。
CxSAST Salesforce Plugin
CheckMarxが提供するツールです。Salesforce組織にアプリケーションをインストールして利用します。静的コード解析の対象としては、Apex Classes (Test Classes included)、Apex Triggers、VisualForce Pagesになります。結果をPDF、XMLで受け取ることができます。
提供元のCheckMarxはForce.com Security Source Code Scannerも作成している会社なので、同等製品の有償版と思われます。
価格については記載が見つけられませんでした。
{/code.scan} :: Code Analysis for Salesforce
SonarQubeのプラグインとして利用できるサービスです。160以上のチェックルールが用意されており、各種メトリクスも収集できます。
価格は下記のように記載されていました。
Menu | Description | Pricing |
---|---|---|
On-Premise Standard | Annual Commitment Ideal for smaller or multiple Orgs |
$1,400 / year / 'code block' $140 / month / 'code block' |
On-Premise Multi-Sandbox | Annual Commitment Ideal for multi-sandbox environments |
$2,800 / year / 'code block' $280 / month / 'code block' |
Eclipse | Requires an On-Premise License | $50/month/user |
Clayton
Space Heroes Ltdが提供するコードレビューサービスです。リポジトリを登録すると、自動的に静的コード解析を実行し、結果をプルリクエストとして返してくれます。静的コード解析の範囲としては、performance, security, complexity, styleになります。
価格は下記のように記載されていました。Professionalはユーザー数に応じ価格が変わるようになっていました。
Menu | Description | Pricing |
---|---|---|
Personal | Public repositories only. | FREE UP TO 5 REPOSITORIES |
Professional | Unlimited public and private repositories,pay based on the size your team. | $75 PER MONTH Billed annually. $90 if billed monthly. Up to 5 users |
Code Climate
PMDをエンジンとして利用したコードレビューサービスです。リポジトリを登録すると、自動的にコードレビューを実行してくれます。静的コード解析の範囲としては、test coveragemcomplexity、duplication、security、styleなどになります。
価格は下記のように記載されていました。
Menu | Description | Pricing |
---|---|---|
Standard | Ideal for smaller teamsand individuals | $1667per seat / month billed annually |
Enterprise | Ideal for larger organizations | 要問合せ |
オープンソースとして公開されているので、自分でホスティングする場合は無料で利用できるようです。
ApexMetrics - Code Climate engine for Salesforce.com Apex
PMD Apex
オープンソースの静的コード解析ツールです。広く使われているツールで、様々な言語の静的コード解析が提供されており、EclipseやIntelliJ IDEAなどのIDEのプラグインも提供されています。また、Maven/Antからも実行し、Jenkinsと連携することもできます。
静的コード解析の範囲としては、ApexUnit、Complexity、Performance、Security、Styleになります。ルールセットの説明はこちらにあります。
おわりに
コードレビューは、不具合を効率的に除去でき、チームによるコード所有を推進します。
コードレビューの問題点として、機械的にチェックできるような問題のためにコードレビューの時間を無駄にしてしまう、軽微な問題がノイズとなりコードレビューに集中することができない、といった点があります。
昨今の開発では、このような問題に対処するためにLintやコードレビューサービスを利用してコーディングした開発者自身が軽微な問題をチェック・修正できるようにする流れがあります。
今回調査してみて、個人的に想定よりも多くのツールやサービスが提供されているように感じました。調べきれなかったサービスや新サービスなどありましたら、お知らせいただければ幸いです。
まずは、無料で利用できるPMD Apexあたりを試してみようかと考えています。
Merry Christmas!
※ この投稿はSalesforce App Cloud Advent Calendar 2016 の15日目の代打記事です。