IT・情報処理 / Salesforce認定

Salesforce認定 Platform デベロッパーの無料問題集・例題・出題範囲

Apex・Visualforceを使ったプログラム開発の基礎スキルを証明する資格。60問 / 110分 / 合格スコア65% / 前提条件なし

  • 384問
  • 4分野
  • 解説つき・無料で演習
  • 問題の最終更新:

出題範囲(4分野)

  • 開発者の基本事項100問
  • プロセスの自動化とロジック100問
  • ユーザーインターフェース84問
  • テスト、デバッグ、リリース100問

Salesforce認定 Platform デベロッパーの例題(6問・解説つき)

スキルサートのAIが出題範囲に沿って作成した演習問題です(過去問ではありません)。アプリでは毎週新しい問題が追加されます。

例題1開発者の基本事項

Salesforceのマルチテナントアーキテクチャにおいて、ガバナ制限が設けられている主な目的は何ですか?

  1. 単一のテナントが共有リソースを独占するのを防ぐため
  2. 特定のユーザープロファイルによる機密データへのアクセスを制限するため
  3. 開発者が記述するApexコードの行数を最小限に抑えるため
  4. データストレージの容量を制限し、ディスク使用量を抑えるため
  5. 本番環境でのデプロイメント時間を短縮するため
解答と解説を見る

正解: 単一のテナントが共有リソースを独占するのを防ぐため

正解は『単一のテナントが共有リソースを独占するのを防ぐため』です。Salesforceはマルチテナントアーキテクチャを採用しており、CPU時間、メモリ、データベースクエリなどの計算リソースは複数の組織で共有されています。ガバナ制限は、特定の組織が不適切なコードを実行してリソースを過度に消費し、他の組織のパフォーマンスに悪影響を与えることを防ぐために厳格に適用されます。これにより、プラットフォーム全体の安定性と公平なリソース配分が確保されます。

例題2プロセスの自動化とロジック

開発者が1,000件のレコードを一括更新する際に、一部のレコードでエラーが発生しても、成功したレコードはデータベースに保存されるようにする必要があります。この要件を満たすために使用すべきコードはどれですか。

  1. upsert records;
  2. try { update records; } catch (Exception e) {}
  3. update records;
  4. Database.update(records, false);
  5. Database.update(records, true);
解答と解説を見る

正解: Database.update(records, false);

正解は「Database.update(records, false);」です。Salesforceにおいて、通常のDMLステートメント(例:update records;)は「All-or-None」方式であり、1件でもエラーが発生すると全レコードの処理がロールバックされます。一方、Databaseクラスのメソッド(Database.updateなど)で第2引数(allOrNone)にfalseを指定すると、部分的なコミットが許可されます。これにより、エラーが発生したレコードのみが除外され、有効なレコードは正常に保存されます。処理結果を個別に確認するには、戻り値として返されるDatabase.SaveResultオブジェクトをループ処理して確認することが一般的です。

例題3ユーザーインターフェース

ある開発者が、子のLightning Webコンポーネントから、その親コンポーネントに対してデータの変更を通知する必要があります。この要件を満たすために、開発者が実装すべき標準的な手法はどれですか。

  1. Lightningメッセージサービス(LMS)を使用して、同じブラウザタブ内のすべてのコンポーネントにメッセージを送信する。
  2. 子コンポーネントからCustomEventを作成し、dispatchする。親コンポーネントはHTMLテンプレート内でそのイベントをリスンする。
  3. pubsubユーティリティモジュールを使用して、コンポーネント間でイベントをパブリッシュおよびサブスクライブする。
  4. Auraコンポーネントのアプリケーションイベントを使用して、DOMツリー全体に通知を送る。
  5. 親コンポーネントで定義されたパブリックプロパティを、子コンポーネントから直接変更する。
解答と解説を見る

正解: 子コンポーネントからCustomEventを作成し、dispatchする。親コンポーネントはHTMLテンプレート内でそのイベントをリスンする。

正解は『子コンポーネントからCustomEventを作成し、dispatchする。親コンポーネントはHTMLテンプレート内でそのイベントをリスンする。』です。Lightning Webコンポーネント(LWC)の通信において、子から親へ情報を伝える標準的な方法は、DOMイベントのモデルに従ったカスタムイベントのディスパッチです。開発者はCustomEventオブジェクトを生成し、dispatchEventメソッドを呼び出します。親コンポーネントは、テンプレートタグ上で「onイベント名」という属性を使用してこのイベントを捕捉し、対応するJavaScriptハンドラを実行します。これにより、コンポーネント間のカプセル化を維持しながら、階層を上方向に通信することが可能になります。

例題4テスト、デバッグ、リリース

開発者が Sandbox から本番組織へ変更セットを使用して Apex クラスをデプロイしようとしています。デプロイを成功させるために、本番組織で満たす必要がある条件はどれですか。

  1. 組織全体の平均コードカバー率が 75% 以上である必要があります。
  2. 全ての管理パッケージのコードカバー率が 75% 以上である必要があります。
  3. 全てのトリガーに対して少なくとも 1% のコードカバー率が必要です。
  4. デプロイする Apex クラスのテストのみを実行し、合格する必要があります。
  5. 本番組織の全ての既存の Apex テストを事前に無効化する必要があります。
解答と解説を見る

正解: 組織全体の平均コードカバー率が 75% 以上である必要があります。

正解は「組織全体の平均コードカバー率が 75% 以上である必要があります。」です。Salesforce の本番環境へのデプロイメント要件として、Apex コードの全体的なカバー率が 75% 以上であること、およびすべてのトリガーに何らかのカバー率(1%以上)があることが義務付けられています。なお、管理パッケージのコードは通常この計算には含まれません。デプロイメント時には、指定されたテストまたはすべてのローカルテストが実行されますが、最終的な成功判定には組織全体のカバー率が基準となります。これにより、コードの品質と既存機能の退行(リグレッション)を防ぐ仕組みとなっています。

例題5開発者の基本事項

ソース管理システムとの統合が容易で、継続的インテグレーション(CI)パイプラインの構築に最も適した開発ツールはどれですか?

  1. Sandbox 設定ウィザード
  2. Salesforce CLI
  3. Developer Console
  4. アンマネージドパッケージのビルダー
  5. 変更セット(Change Sets)
解答と解説を見る

正解: Salesforce CLI

正解は『Salesforce CLI』です。Salesforce CLIは、コマンドラインインターフェースを介してソース駆動型開発を実現するための中心的なツールです。Gitなどのバージョン管理システム(VCS)との連携が容易であり、スクリプト化が可能なため、JenkinsやGitHub ActionsなどのCI/CDツールを用いた自動デプロイメントパイプラインの構築に不可欠です。Developer Consoleや変更セットは、主にブラウザベースの対話的または個別の操作に適したツールであり、自動化には向きません。

例題6プロセスの自動化とロジック

Salesforceの保存順序(Order of Execution)において、ワークフロールールによってフィールドが更新された直後に実行される処理はどれですか。

  1. 重複ルールの実行
  2. BeforeトリガーとAfterトリガーの再実行
  3. 入力規則の再実行
  4. 承認プロセスの開始
  5. 積み上げ集計項目の計算
解答と解説を見る

正解: BeforeトリガーとAfterトリガーの再実行

正解は「BeforeトリガーとAfterトリガーの再実行」です。ワークフロールールによってフィールド更新が実行されると、Salesforceは標準の入力規則や重複ルールなどは再実行しませんが、Before UpdateトリガーとAfter Updateトリガーをもう一度(1回だけ)実行します。この際、カスタム入力規則やフローなどは再実行されない点に注意が必要です。ただし、この再実行プロセスの後、さらに積み上げ集計項目の更新などが続く一連の順序があります。プラットフォーム開発者試験では、この「ワークフローによる再帰的なトリガー実行」がガバナ制限やロジックの重複に与える影響がよく問われます。

Salesforce認定 Platform デベロッパーの重要用語

ガバナ制限
マルチテナント環境において、共有リソースの公平な利用を確保するためにSalesforceが設けている実行制限です。1つのトランザクション内で実行できるSOQLクエリの回数やDMLステートメントの数、CPU時間などに上限があります。制限を超えるとランタイム例外が発生し処理が停止するため、効率的なコーディングが不可欠です。
Apexトリガ
レコードの挿入、更新、削除などのDML操作の前後で自動的に実行されるApexコードです。Beforeトリガは保存前のバリデーションや値の設定に使用され、Afterトリガは関連レコードの更新やシステム項目の参照に使用されます。試験では、1つのトランザクションで複数レコードを処理するバルク化の概念や、再帰呼び出しの防止策についての理解が重要となります。
Lightning Web Components (LWC)
Web標準の最新技術を活用して構築されるSalesforceのUIフレームワークです。パフォーマンスに優れ、HTMLやモダンなJavaScriptを使用して開発します。再利用可能なカスタム要素を作成でき、セキュリティ機能であるLightning Web Securityによって保護されています。開発効率が高く、現在のSalesforce開発における主流の選択肢となっています。
単体テスト
Apexコードが意図通りに動作することを確認するためのプログラムです。Salesforceでは、本番環境へのデプロイ時に組織全体のコードカバー率が75%以上であること、および全てのトリガーに1%以上のカバー率があることが求められます。テストを実行することで、コードの品質を担保し、将来的な機能変更による既存機能への影響(退行)を最小限に抑えることができます。
SOQL (Salesforce Object Query Language)
Salesforceのデータベースから特定のレコードを取得するためのクエリ言語です。SELECT句を使用してオブジェクトの項目を指定し、WHERE句で条件を絞り込みます。SQLに似ていますが、データの取得のみに特化しており、ガバナ制限を回避するためにループ内での発行を避けるなどのベストプラクティスが求められます。
ガバナ制限
マルチテナント環境において共有リソースの独占を防ぐために設けられた実行制限です。1トランザクションあたりのSOQLクエリ発行数(100回)やDML操作回数(150回)などが厳格に定められています。開発者はこれらの制限を超えないよう、ループ内でのクエリ発行を避け、コレクションを活用した効率的なコーディングを行うことが求められます。
Auraコンポーネント
LWC以前から提供されているコンポーネントベースのフレームワークです。双方向データバインディングや独自のイベントシステムを特徴とします。LWCと共存可能で、LWCを子として呼び出すことができますが、新規開発ではLWCが推奨されます。動的なUI構築が可能であり、既存の多くのアプリケーションで利用されている重要な技術です。
Test.startTest() / Test.stopTest()
テストメソッド内でガバナ制限をリセットするために使用されるメソッドです。これらの間に記述された処理には、新しいガバナ制限が適用されます。また、stopTestを呼び出すことで、バッチApexやfutureメソッドなどの非同期処理が同期的に実行完了するのを待機し、その後のコードで実行結果を確実に検証できるようにする役割も持っています。

よくある質問

Salesforce認定 Platform デベロッパーの問題はスキルサートで何問解けますか?
全384問・4分野の問題を用意しています。問題は出題範囲に沿って随時追加しています。
無料で使えますか?
無料プランで週10回の演習(1回10問)と、毎日の「今日の1問」を利用できます。解説を読み、わからない点はAIに質問できます。
ここの問題は過去問ですか?
過去問ではありません。出題範囲に沿ってAIが作成した演習問題です。すべて解説つきで、間違えた問題は繰り返し解けます。

Salesforce認定 Platform デベロッパーの対策はアプリで

AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。