Salesforce 認定 Platform デベロッパーを受けて振り返ってみた

Salesforce 認定 Platform デベロッパー受講結果

▼受講日時
9/8(日) 10:00-11:40
 
▼合格率
試験合格率:68%
試験結果合格率:64%
◆内訳
デベロッパーの基本 71%
プロセスの自動化とロジック 61%
ユーザーインターフェース 66%
テスト、デバッグ、リリース 61%

▼試験結果
結果:不合格


---------学習実積🗓️---------

毎日:0.5h〜1.0h
勉強時間:40h
期間:1ヶ月半


試験を受講して振り返り

・30問目あたりから集中力が切れたため、対策が必要。
・4%足りなくて落ちた。めちゃくちゃ悔しい。

個人的に怪しかった問題5選

※殴り書きになってしまいますが、備忘録として残しておきます。

Q1.積み上げ集計項目の具体的な使い方

問題:

取引先(Account)とカスタムオブジェクト(A__c)が主従関係で結ばれており、都道府県の選択リストを作成しています。選択リストの値を親(取引先)と子(A__c)の関係で連動させたい場合、開発者はどのようにすればよいでしょうか?

A. 積み上げ集計項目を使う
B. 数式を使う
C. Apexトリガを利用する
D. ワークフロールールを使う

答え:

B. 数式を使う

理由:

選択リストの値を親オブジェクトから子オブジェクトに連動させるためには、数式を使って親オブジェクトの値を子オブジェクトの選択リストに反映させるのが一般的です。数式フィールドを使うことで、親オブジェクトの選択リストの値を子オブジェクトに自動的に反映させることができます。

Q2.複数インターフェースをサブクラスで利用したい場合

問題:

開発者が複数のインターフェース A と B を作成しています。これらのインターフェースをサブクラスで利用したい場合、どのように定義すればよいでしょうか?

A.implement A, B
B.extend A, B
C.implement A, implement B
D.extend A, extend B

答え:

A.implement A, B

理由:

複数のインターフェースをサブクラスで利用する場合、インターフェースを実装するためには implement キーワードを使い、その後にカンマで区切ってインターフェースを指定します。したがって、implement A, B が正しい構文です。

正しい構文:

public class MyClass implements A, B {
   // インターフェースAとBのメソッドを実装
}

間違った構文:

Cの implement A, implement B は誤りです。implement キーワードは1回だけ使用し、インターフェースをカンマで区切って続けて書くのが正しい方法です。

Q3. 連結オブジェクトの使いどころ

問題:

取引先(Account)とバグオブジェクト(Bug__c)が存在しており、1つのバグが複数の取引先で管理されている状況です。

開発者がこの要件を満たすには、どの方法を選択すべきですか?

A. 参照関係を使う  
B. 主従関係を使う  
C. 取引先とバグオブジェクトの間に連結オブジェクトを作成する  

答え:  

C. 取引先とバグオブジェクトの間に連結オブジェクトを作成する

理由:  

このケースでは、多対多の関係が必要です。
1つのバグが複数の取引先に関連し、1つの取引先も複数のバグを持つことができるため、
連結オブジェクトを使用するのが最適な方法です。

Q4 積み上げ集計項目と数式

問題:

A社は注文システムを構築しようとしています。取引先(Account)と注文のカスタムオブジェクト(Order__c)が存在し、取引先と注文は主従関係にあります。全ての注文が完了したら次のアクションを実行するために、どの方法を使用すべきでしょうか?

A. 最新の日付を積み上げ集計する
B. Day 関数を使って注文の件数をカウントする積み上げ集計項目を使う
C. Apexトリガを使用する

答え:

A. 最新の日付を積み上げ集計する

理由:

全ての注文が完了しているかどうかを判断するためには、注文の完了日を基に判断するのが適切です。最新の日付を積み上げ集計することで、取引先の注文の中で最も遅い完了日を確認し、すべての注文が完了したかどうかを判断できます。

結論:

最新の日付を積み上げ集計することで、すべての注文の中で一番遅い「注文完了日」を確認できるということです。この方法を使えば、「すべての注文が完了した」かどうかをその最新の日付を基に判断できます。

具体的には、注文が完了するたびに「完了日」を更新し、積み上げ集計項目で「完了日」の最大値を親オブジェクト(例: 顧客)に反映させます。この最大値がすべての注文に対応していれば、それを基にして「全ての注文が完了したか」を確認できます。

Q.5 Apexトリガのテストクラスについて

問題:

Apexトリガとヘルパークラスが存在しており、ヘルパークラスのテストカバレッジを95%に達成しました。この状態で変更セットを使ってリリースしようとしたところ、次のエラーが発生しました。

「Apexトリガのカバレッジ率が0%です。少なくとも1%以上必要です。」

このエラーを解消するためには、開発者はどうすればよいでしょうか?

A. Apexトリガを担保するApexテストクラスを作成する
B. 検証時のテスト実行を「すべてのテストクラスを実行」に設定する
C. ヘルパークラスのカバレッジを100%にする
D. トリガの無効化を検討する

答え:

A. Apexトリガを担保するApexテストクラスを作成する

理由:

エラーの原因は、Apexトリガに対するテストカバレッジが不足しているためです。Apexトリガもカバレッジ対象であり、少なくとも1%以上のカバレッジが必要です。したがって、Apexトリガの動作をカバーするApexテストクラスを作成する必要があります。

・C: ヘルパークラスのカバレッジを100%にすることは関係ありません。トリガ自体にテストがないとカバレッジは0%のままです。

•D: トリガを無効にするのは、テストカバレッジの問題の解決にはなりません。

まとめ

試験結果を振り返ると、次回への対策が明確になりました。

特に以下のポイントが重要です:
1.集中力の強化: 試験時間が長いため、後半の問題への集中力を維持するための練習が必要です。

2.弱点の補強: 試験での合格ラインを越えるために、特に不安な分野や問題に対して、再確認と強化が求められます。

3.勉強方法の改善: 勉強時間を計画的に使い、問題演習や模擬試験を通じて理解を深めることが重要です。

4.次回の対策: 模擬試験を増やし、特に低い点数の分野を重点的に学習することで、次回の試験に向けて準備を整えましょう。

とはいえ、今は悔しい気持ちでいっぱいなので2,3日休んでから次回に向けて対策を練っていこうと思う。

では、また次の記事でお会いしましょう。

おすすめの記事