はじめに
・Salesforceの開発知識を証明するためにデベロッパーの資格を取得したい。
・試験費用が2万と高いので、できれば1発で合格したい。
・効率的に勉強して寄り道せずに最短で資格取得したい。
・開発知識が0だがなんとかして合格したい。
本記事は試験に向けて覚えておいた方が良かったことをまとめた記事となります。
試験概要
Salesforce認定Platformデベロッパーの試験概要は下記の通り。
- 内容: 多肢選択/複数選択方式の 60 問
- 試験の所要時間: 105 分
- 合格点: 68%
- 受験料: 20,000 円 (税抜)
- 受験方法: テストセンターにおける監督下の試験、またはオンライン環境における監督下の試験
試験に向けて覚えておく内容
①Salesforceでレコードを保存する際に実行されるイベントの順序を覚えておくこと
Salesforceでレコードを保存する際に実行されるイベントの順序は次の通りです:
1.バリデーション:
- オブジェクトのバリデーションルール → システムバリデーションルールの順で実行。
2.beforeトリガ:
- before insert、before updateのトリガが実行される。
3.レコード保存:
- レコードが一時保存される(★まだコミットされない)。
4.afterトリガ:
- after insert、after update、after deleteのトリガが実行される。
5.自動プロセスの実行:
- 割り当てルール
- 自動レスポンスルール
- ワークフロールール
- プロセスビルダー
- フロー
- エスカレーションルール
6.再帰トリガ:
- ワークフロールール等で更新が発生すると、トリガが再実行される。
7.ロールアップサマリーフィールド更新:
- 集計フィールドが更新される。
8.更新レコードの再保存:
- 変更が適用されたレコードが再度保存される。
9.カスタムApexとコミット前アクション:
- コミット前にカスタムApexロジック等が実行される。
10.トランザクションのコミット:
- すべての変更がデータベースにコミットされる。
11.ポストコミットアクション:
- 送信済み電子メールの追跡などの後処理が実行される。
覚え方のポイント
- バリデーション → トリガ → 自動プロセス → コミット
- バリデーションはオブジェクト→システムの順
- トリガはbefore→afterの順
- 自動プロセスはルールやフローが中心
- 最後にコミットと後処理
※自動プロセスも実行順序があるので注意。
割り当てルール>自動レスポンスルール>ワークフロールール>プロセスビルダー>フロー>エスカレーションルール
②デコレーターとアノテーションは似たような概念だが、異なっているので注意
アノテーション
- 主に使用される場所: Apex
- 機能: メタデータを提供し、コードの補足情報として使用される。コンパイラやランタイムに特定の動作を指示するために使われる。
例:
@AuraEnabled
public static List<Account> getAccounts() {
return [SELECT Id, Name FROM Account];
}
デコレーター
- 主に使用される場所: JavaScript(LWC)
- 機能: 関数やクラスの振る舞いを変更したり、追加の機能を注入するために使われます。関数やプロパティに対して動的に機能を追加することができます。
例:
import { LightningElement, wire } from 'lwc';
import getAccounts from '@salesforce/apex/AccountController.getAccounts';
export default class AccountList extends LightningElement {
@wire(getAccounts)
accounts;
get hasAccounts() {
return this.accounts && this.accounts.data;
}
}
使用目的:
- アノテーション: 主にメタデータを提供し、コンパイラやランタイムに特定の情報を伝えるために使われる。
- デコレーター: 関数やクラスの動作を変更したり、追加の機能を注入するために使われる。
使用される言語:
- アノテーション: Apexの言語で使用される。
- デコレーター: JavaScript(LWC)で使用される。
つまづいたこと、挫折しそうになったこと
最初の5分を耐える
勉強を始めるまでが一番大変だった
勉強の習慣が身についていないので、机に向かって試験問題を見て問題を解く。という行為が学生の時からどうも苦手で
社会人になったら特に苦手になった。
開発用語が多い
専門的な用語「アノテーション」や「プログラム」が記載されており、問題の問いが複雑になってよくわからなくなった。
対策:その問題の問いのポイントはなんなのかを時間をかけてもよいから考えてみる。
わからない用語はとりあえず用語一覧にまとめて後ほど調べてみる。
自分なりの言葉にたとえてみる。
参考サイトの答えがそもそも間違っている
参考にしているサイトがそもそも問題の解答が間違っていることが散見していた。
対策:
ChatGptにコピペで貼り付けて本当の答えを教えてもらう。
集中できない、計画崩れしてしまった。
僕の場合は仕事が終わった後に夜勉強しようと思い、意気込んでいたが蓋を開ければ仕事が終わるのが遅くなり、結果やらないで終わったということが頻発した。
対策:
勉強時間を朝にずらして朝起きた際に30分行うようにしてみた。
勉強するモチベーションが上がらない、時間の確保が難しいといった場合は、朝の時間帯を利用して勉強するのをおすすめする。
理由は、朝の時間帯は唯一誰にも邪魔されない時間帯だからだ。
Java言語で出来ることが実はApex言語ではサポートされていないということがある。
たとえば、以下の問題はJava言語だとDo { } while (条件)が答えとなるが、Apex言語だとDo { } while (条件)は利用できないため、
答えはC,Dとなる。
レコードセット内のレコード数が不明な場合に `.size()` または `.length()` メソッドを呼び出して、
そのレコード数を利用して繰り返し処理を行う方法を選ぶ際に、適切なループの形式はどれか?
A. Do { } while (条件)
B. While (条件) { ... }
C. for (init_stmt, exit_condition; increment_stmt) { }
D. for (変数: list_or_set) { }
覚える構文が少なくて助かるなと思ったのと同時に使えるものだけで実現していけないといけないので
その文、頭を使わないといけないなという印象を受けた。
中途半端にですが、本日はここまでとします。おやすみなさい。
では、また次の記事でお会いしましょう。