ホーム ›
対応資格一覧 ›
Salesforce認定 Platform デベロッパー上級 出題範囲 上級デベロッパーの基本 ロジックとプロセスの自動化 ユーザインターフェース テスト、デバッグ、リリース パフォーマンス 例題に挑戦 スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。
例題1 Lightning Web コンポーネント (LWC) で @wire を使用してデータを取得している場合、命令的なメソッド呼び出しによってレコードを更新した後に、キャッシュを無効化して wired プロパティを最新の状態に更新するための標準的な手法はどれですか?
取得したデータの data プロパティのみを refreshApex に渡す wired メソッドの success コールバックを再実行する 更新されたレコードの ID を getRecordNotifyChange に渡す ワイヤサービスの結果オブジェクト全体を refreshApex に渡す コンポーネントを window.location.reload() で再読み込みする 解答と解説を見る 正解: ワイヤサービスの結果オブジェクト全体を refreshApex に渡す
Lightning Web Components (LWC) で @wire でデコレートされたプロパティや関数を最新化するには、refreshApex 関数を使用します。この関数の引数には、@wire から受け取った結果オブジェクト(data と error を含むオブジェクト全体)を渡す必要があります。これにより、キャッシュされたデータが期限切れとしてマークされ、新しいデータがサーバーから再取得されます。正解は『ワイヤサービスの結果オブジェクト全体を refreshApex に渡す』です。
例題2 Lightning Experience において、Lightning Web コンポーネント (LWC)、Aura コンポーネント、および Visualforce ページの間で、階層に関係なくデータを通信および同期するための推奨されるフレームワークはどれですか?
Salesforce Streaming API プラットフォームイベント Pubsub モジュール JavaScript カスタムイベント Lightning Message Service 解答と解説を見る 正解: Lightning Message Service
Lightning Message Service (LMS) は、LWC、Aura、Visualforce などの異なるプログラミングモデル間、あるいは DOM ツリーの異なるブランチにあるコンポーネント間での通信を可能にする標準的な仕組みです。pubsub はかつての一般的なパターンでしたが、現在は LMS が推奨される標準 API です。正解は『Lightning Message Service』です。
重要用語
Batch Apex 大量のレコードを数千件単位の小さなチャンクに分割して非同期に処理する仕組みです。Database.Batchableインターフェースを実装し、start、execute、finishの3つのメソッドで構成されます。ガバナ制限を回避しながら、数百万件規模のデータ更新や複雑な計算を行う際に利用され、共有制限やヒープサイズ制限の緩和に寄与します。
Queueable Apex futureメソッドの機能を拡張した非同期処理手法です。IDatabase.QueryLocatorではなく特定のジョブIDを返し、ジョブの監視や連鎖実行が可能です。引数にsObjectやカスタムApex型などの複雑なデータ型を渡せる点がfutureメソッドとの大きな違いです。非同期処理の実行順序を制御したい場合や、動的な処理フローが必要な場面で推奨されます。
@futureメソッド メソッドに付与することで、リソースが利用可能になった時点でバックグラウンドで実行させるアノテーションです。主に外部Webサービスへのコールアウトや、混合DMLエラー(設定オブジェクトと標準オブジェクトの同時更新)を回避するために使用されます。引数にはプリミティブ型またはそのコレクションのみが指定可能で、実行順序は保証されないという特性があります。
Platform Events イベント駆動型アーキテクチャを実現するためのメッセージング機能です。パブリッシャー(発行元)がイベントを公開し、複数のサブスクライバー(購読元)がそれを非同期に受信して処理します。Salesforce組織内だけでなく外部システムとのリアルタイム連携にも適しており、システム間の結合度を下げつつ、スケーラブルな自動化ロジックを構築できます。
カスタムメタデータ型 アプリケーションの構成情報をレコードとして定義できる機能です。カスタム設定とは異なり、レコード自体がメタデータとして扱われるため、変更セットやパッケージに含めて環境間で容易に移行できます。ApexからはSOQLを使用してアクセス可能で、環境ごとのマッピング情報やロジックの切り替えフラグを管理する際に、ハードコーディングを避けるための強力なツールとなります。
ガバナ制限 (Governor Limits) マルチテナント環境において特定ユーザーによるリソースの独占を防ぐための実行時制限です。1トランザクションあたりのSOQLクエリ発行数(100回)やDMLステートメント数(150回)、CPU時間などが厳密に定められています。上級デベロッパーには、コレクションを使用したバルク処理や非同期処理の活用により、これらの制限内で効率的なコードを設計する能力が求められます。
トランザクション制御 (Savepoint/Rollback) データベースの一連の変更操作をひとまとめとして管理する仕組みです。Database.setSavepoint()で特定の時点の状態を保存し、エラー発生時にDatabase.rollback()を呼び出すことで、保存した時点までデータの変更を完全に取り消すことができます。複雑なビジネスロジックにおいて、一部の処理が失敗した際にデータの不整合が発生するのを防ぐために不可欠です。
トリガーのベストプラクティス 効率的で保守性の高いApexトリガーを作成するための設計指針です。具体的には「1オブジェクトにつき1つのトリガーにする」「ロジックをハンドラクラスに委譲する」「単一レコードではなく常に複数レコードのバルク処理に対応させる」などの原則が含まれます。これにより、再帰実行の防止やガバナ制限の回避が容易になり、将来的な機能拡張にも柔軟に対応可能なコードを実現します。 Salesforce認定 Platform デベロッパー上級の対策はアプリで AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。