2023.07.24

【ApexPMD】使い方を3ステップで解説!!

はじめに

IT業界でお仕事されている方だと、コードの評価や改修、コーディングをする機会も多いのではないでしょうか。

そこで役に立つのが、PMD(Programming Mistake Detector)です。

Salesforceの開発においてはApexPMDが提供されており、誰でも簡単に業務効率と質の向上を図れるツールですが、ApexPMDの使い方を知らない方もいらっしゃるかと思います。


そこで本記事では、ApexPMDの使い方を知らない人に向けて、初心者の方でも分かるように3ステップで解説していきます。

今日から実践いただける内容になっているので、ぜひ参考にしてくださいね。

※以下の内容は、Windows10環境を前提として、すべて執筆時点(2023/7/14)のバージョンのものとなります。

ApexPMDとは

ApexPMDとは、静的解析でソースコードの欠陥となりうる箇所を検知できる「VSCodeの拡張機能」です。

実用例

例えば、みなさんは以下のようなコードを見たときどのように対応していますか?

・読みにくいコード
・不要なコード
・セキュリティ面で不安なコード

目についたときに修正したり、検索して修正したりしていないでしょうか。

ApexPMDを活用することで、上記のような修正に対する業務効率化や、コードの品質向上が実現できます。

では次に、ApexPMDの具体的な使い方について解説していきます。

ApexPMDの使い方

ステップ1:インストール

こちらからインストールができたら、準備は完了です。

ステップ2:実行

インストール後に、上記画像の表示が確認できると思うので、コマンドパレット(ctrl+shift+p)で実行していきましょう。

※ワークスペースのパス名に日本語があると動かないので注意してください。

<各コマンドの意味>
「Apex Static Analysis: Clear Problems」:検知内容をクリアにすることができます。

「Apex Static Analysis: On File」:1つの資材で静的解析することができます。

「Apex Static Analysis: On Workspace」 :プロジェクト全体で静的解析することができます。

ステップ3:検知確認

実際の検知結果になります。
今回は、「Apex Static Analysis: On File」で1つの資材を検知しています。

検知内容の表示方法は、
検知内容詳細(rule:分類-検知内容)[検知列、検知行]
のように表示されています。

赤枠で囲った2つ目の検知結果を抜粋して説明していきますね。

6行目のループ内でDMLステートメントを使用していることが分かります。

このようにコマンド1つでコード解析を行ってくれます。
<検知分類一覧>
# 分類 チェック内容
1 Best Practices Apex開発でのベストプラクティスをチェック
2 Code Style 特定のコーディングスタイルをチェック
3 Design コードのメンテナンス性をチェック
4 Error Prone バグにつながる可能性があるもの、ランタイムエラーが発生しやすい構造をチェック
5 Performance ガバナ制限に接触しやすい記述等をチェック
6 Security 潜在的なセキュリティ上の欠陥をチェック
検知分類は、以上の6つで構成されています。

(より詳しいルールについてはこちらを参照してください。)

ステップ3の検知確認で例に取り上げた検知内容で確認すると、

「Performance」に分類分けされています。

検知結果から、パフォーマンスに影響する可能性があることが分かりますね!

【応用編】独自のルールセットについて

ルールセットの設定方法

ApexPMDを利用するユーザによっては、

「デフォルトではif文は3階層で検知されるが、4階層で検知して欲しい。」

などのように、ユーザ好みの検知をして欲しいこともあると思います。

XMLファイルで作成することで、検知対象の追加、削除、検知内容の変更を、独自のルールセット​でカスタマイズすることができます。

ルールセット​による検知内容の変更事例2選

例1
<デフォルト>1クラスに1フィールドが16以上で検知される

<独自ルール>1クラスに1フィールドが20以上で検知される

例2
<デフォルト>1クラスにパブリックメソッドが25以上で検知される

<独自ルール>1クラスにパブリックメソッドが20以上で検知される


ルールセットの詳しい設定方法はこちらから確認してください。

おわりに

いかがでしたでしょうか。

今回は、ApexPMDの使い方について、3ステップに落とし込んで解説しました!

ApexPMDを使いこなすことができれば、工数削減やコードの品質向上を実現することが可能です。

この記事を参考に、ぜひお仕事でApexPMDを活用してくださいね。
31 件
     
  • banner
  • banner

関連する記事