目次
はじめに
IT業界でお仕事されている方だと、コードの評価や改修、コーディングをする機会も多いのではないでしょうか。
そこで役に立つのが、PMD(Programming Mistake Detector)です。
Salesforceの開発においてはApexPMDが提供されており、誰でも簡単に業務効率と質の向上を図れるツールですが、ApexPMDの使い方を知らない方もいらっしゃるかと思います。
そこで本記事では、ApexPMDの使い方を知らない人に向けて、初心者の方でも分かるように3ステップで解説していきます。
今日から実践いただける内容になっているので、ぜひ参考にしてくださいね。
※以下の内容は、Windows10環境を前提として、すべて執筆時点(2023/7/14)のバージョンのものとなります。
そこで役に立つのが、PMD(Programming Mistake Detector)です。
Salesforceの開発においてはApexPMDが提供されており、誰でも簡単に業務効率と質の向上を図れるツールですが、ApexPMDの使い方を知らない方もいらっしゃるかと思います。
そこで本記事では、ApexPMDの使い方を知らない人に向けて、初心者の方でも分かるように3ステップで解説していきます。
今日から実践いただける内容になっているので、ぜひ参考にしてくださいね。
※以下の内容は、Windows10環境を前提として、すべて執筆時点(2023/7/14)のバージョンのものとなります。
ApexPMDとは
実用例
例えば、みなさんは以下のようなコードを見たときどのように対応していますか?
・読みにくいコード
・不要なコード
・セキュリティ面で不安なコード
目についたときに修正したり、検索して修正したりしていないでしょうか。
ApexPMDを活用することで、上記のような修正に対する業務効率化や、コードの品質向上が実現できます。
では次に、ApexPMDの具体的な使い方について解説していきます。
・読みにくいコード
・不要なコード
・セキュリティ面で不安なコード
目についたときに修正したり、検索して修正したりしていないでしょうか。
ApexPMDを活用することで、上記のような修正に対する業務効率化や、コードの品質向上が実現できます。
では次に、ApexPMDの具体的な使い方について解説していきます。
ApexPMDの使い方
ステップ1:インストール
こちらからインストールができたら、準備は完了です。
ステップ2:実行
インストール後に、上記画像の表示が確認できると思うので、コマンドパレット(ctrl+shift+p)で実行していきましょう。
※ワークスペースのパス名に日本語があると動かないので注意してください。
<各コマンドの意味>
「Apex Static Analysis: Clear Problems」:検知内容をクリアにすることができます。
「Apex Static Analysis: On File」:1つの資材で静的解析することができます。
「Apex Static Analysis: On Workspace」 :プロジェクト全体で静的解析することができます。
※ワークスペースのパス名に日本語があると動かないので注意してください。
<各コマンドの意味>
「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つ目の検知結果を抜粋して説明していきますね。
今回は、「Apex Static Analysis: On File」で1つの資材を検知しています。
検知内容の表示方法は、
検知内容詳細(rule:分類-検知内容)[検知列、検知行]
のように表示されています。
赤枠で囲った2つ目の検知結果を抜粋して説明していきますね。
6行目のループ内でDMLステートメントを使用していることが分かります。
このようにコマンド1つでコード解析を行ってくれます。
このようにコマンド1つでコード解析を行ってくれます。
<検知分類一覧>
# | 分類 | チェック内容 |
---|---|---|
1 | Best Practices | Apex開発でのベストプラクティスをチェック |
2 | Code Style | 特定のコーディングスタイルをチェック |
3 | Design | コードのメンテナンス性をチェック |
4 | Error Prone | バグにつながる可能性があるもの、ランタイムエラーが発生しやすい構造をチェック |
5 | Performance | ガバナ制限に接触しやすい記述等をチェック |
6 | Security | 潜在的なセキュリティ上の欠陥をチェック |
「Performance」に分類分けされています。
検知結果から、パフォーマンスに影響する可能性があることが分かりますね!
検知結果から、パフォーマンスに影響する可能性があることが分かりますね!
【応用編】独自のルールセットについて
ルールセットの設定方法
ApexPMDを利用するユーザによっては、
「デフォルトではif文は3階層で検知されるが、4階層で検知して欲しい。」
などのように、ユーザ好みの検知をして欲しいこともあると思います。
XMLファイルで作成することで、検知対象の追加、削除、検知内容の変更を、独自のルールセットでカスタマイズすることができます。
「デフォルトではif文は3階層で検知されるが、4階層で検知して欲しい。」
などのように、ユーザ好みの検知をして欲しいこともあると思います。
XMLファイルで作成することで、検知対象の追加、削除、検知内容の変更を、独自のルールセットでカスタマイズすることができます。
ルールセットによる検知内容の変更事例2選
例1
<デフォルト>1クラスに1フィールドが16以上で検知される
↓
<独自ルール>1クラスに1フィールドが20以上で検知される
例2
<デフォルト>1クラスにパブリックメソッドが25以上で検知される
↓
<独自ルール>1クラスにパブリックメソッドが20以上で検知される
ルールセットの詳しい設定方法はこちらから確認してください。
<デフォルト>1クラスに1フィールドが16以上で検知される
↓
<独自ルール>1クラスに1フィールドが20以上で検知される
例2
<デフォルト>1クラスにパブリックメソッドが25以上で検知される
↓
<独自ルール>1クラスにパブリックメソッドが20以上で検知される
ルールセットの詳しい設定方法はこちらから確認してください。
おわりに
いかがでしたでしょうか。
今回は、ApexPMDの使い方について、3ステップに落とし込んで解説しました!
ApexPMDを使いこなすことができれば、工数削減やコードの品質向上を実現することが可能です。
この記事を参考に、ぜひお仕事でApexPMDを活用してくださいね。
今回は、ApexPMDの使い方について、3ステップに落とし込んで解説しました!
ApexPMDを使いこなすことができれば、工数削減やコードの品質向上を実現することが可能です。
この記事を参考に、ぜひお仕事でApexPMDを活用してくださいね。
31 件