Contents
はじめに
・Salesforceの開発知識を証明するためにデベロッパーの資格を取得したい。
・試験費用が2万と高いので、できれば1発で合格したい。
・効率的に勉強して寄り道せずに最短で資格取得したい。
・開発知識が0だがなんとかして合格したい。
本記事はそのような人向けにぼくがどうやって試験勉強をしたかを紹介します。
試験概要
Salesforce認定Platformデベロッパーの試験概要は下記の通り。
- 内容: 多肢選択/複数選択方式の 60 問
- 試験の所要時間: 105 分
- 合格点: 68%
- 受験料: 20,000 円 (税抜)
- 受験方法: テストセンターにおける監督下の試験、またはオンライン環境における監督下の試験
必要な勉強時間
これは人によってスキルも経験も違うと思うが、仮に新卒で開発経験0の人を想定して一日0.5hから1hを1ヶ月継続できれば、充分取得可能だと断定できる。
具体的な勉強方法
▼ 過去問題集の内容をExcelファイルにまとめてひたすら周回する。
試験勉強過去問題をExcelファイルにまとめて、自分なりに要約する。理解した上で再度問題を解く。
間違えた問題を次の日にもう一度解く。を繰り返し行った。
サイト
試験に向けて覚えておく内容
クロスサイトスクリプティング (XSS)
ウェブサイトのセキュリティ脆弱性の一つ。
攻撃者が悪意のあるスクリプトを信頼されたウェブサイトに注入し、他のユーザーのブラウザで実行させる。
これにより、ユーザーのクッキー情報やセッションデータが盗まれたり、偽のコンテンツが表示されたりする。
デバッグログ
対策
ユーザー入力をエスケープして表示する。
安全なコーディング を遵守する。
Webアプリケーションファイアウォール(WAF)を使用する。
これらの対策により、XSS攻撃のリスクを軽減できるらしい。
→「安全なコーディングとは?」おそらく開発ガイド通りのコーディングを心がけろということだと思う。
→「WAFって何?」サーバー側の設定みたいだから、一旦概念だけ押さえておく。
特定のユーザー、クラス、およびトリガーに設定できる
デバッグログは特定のユーザー、特定のApexクラス、またはトリガーに対して有効にできる。
これにより、必要なコンポーネントに焦点を当てたデバッグが可能です
デバッグログの最大サイズは5MB
Salesforceのデバッグログの最大サイズは5MBです。ログがこのサイズに達すると、新しいログエントリは追加されずに切り捨てられる。
ユーザーの最新の20個のデバッグログのみが保持される
Salesforceは、ユーザーごとに最大20個の最新のデバッグログを保持します。古いログは自動的に削除されることがある。
オーバーライド
「override」は親から受け継いだものを上書きするためのもの。
でも、それを使うには、親が「これは上書きしていいよ」という印「abstract」をつけている必要がある。
例えで理解しよう
クラス:
まず、クラスは設計図みたいなもので、その設計図を使って「もの」を作ることができる。
たとえば、「車」という設計図があれば、その設計図を使って「トヨタの車」や「ホンダの車」といった具体的な車を作ることができる。
メソッド:
メソッドというのは、クラスの中で「この設計図に従って、こんな動きをしてください」という指示書のようなもの。
たとえば、「走る」という動きをさせたいときは、その車のクラスに「走るメソッド」を書く。
抽象クラス:
抽象クラスは「そのままでは使えない設計図」で、誰かがもっと具体的な設計図を作るためのベースになる。
たとえば、「車」という抽象的な設計図だけではまだどんな車なのか決まっていないので、
実際に「トヨタの車」や「ホンダの車」という具体的な設計図を作って初めて車を作ることができる。
オーバライド:
親から受け継いだメソッド(動きの指示書)を「ちょっと変えたい」ときに使う。
たとえば、トヨタの車が「走る」という動きをちょっと特別にしたいと思ったら、その部分だけ書き換えることができる。
これをオーバーライドと言う。
非同期トランザクションとは?
非同期トランザクションは、プログラムがすぐに実行されるのではなく、少し後で順番に実行される処理です。
例えば、今すぐ1万件のデータを一度に処理するのは難しいけれど、100件ずつに分けて少しずつ処理することができる仕組みです。
これをBatch Apexと呼びます。
例えで理解しよう
想像してみてください。
あなたはとても大きなケーキを持っています。
このケーキを一度に食べるのは無理ですが、少しずつ切り分けて食べることならできます。
Batch Apexは、ケーキを小さく切って、一口ずつゆっくり食べる方法と同じです。
ガバナ制限とは?
Salesforceでは、プログラムが「たくさんの仕事を一度にやりすぎてシステムに負担をかけないように」するためのルールがある。
これをガバナ制限と言います。
このルールは、たとえば「一度に何回までデータベースからデータを取り出せるか」や「一度に何回までデータを保存できるか」が決まっています。
非同期トランザクションとガバナ制限
Batch Apexのような非同期トランザクションでは、ガバナ制限が少し緩めに設定されていますが、それでも制限を超えることはできません。
つまり、プログラムが少しずつ仕事をする間、ルールを守りながら処理を進めます。
例えば、100件のデータを処理するたびに「ここまでできるよ」というルールがリセットされ、
また新たな100件を処理するためのルールが適用されます。
だから、大量のデータでも少しずつ処理できるんです。
なぜガバナ制限を超えられないのか?
たとえ非同期トランザクションであっても、ガバナ制限は超えることができません。
非同期トランザクションでは、通常の処理よりも少し多めに処理できるように制限が高くなっていますが、
制限そのものを超えることはありません。
つまり、制限を守りながら、たくさんのデータをうまく処理するための工夫が必要です。
例えで説明すると
考えてみてください。あるお店で一度に10個までしか買い物できないルールがあったとします。
でも、そのお店には、後でまとめて買えるサービスがあります。
このサービスを使うと、少し多めに買い物できますが、いくら非同期でも、お店のルールを破ることはできません。
それと同じで、非同期トランザクションでは少し多めに処理できるけど、ルール(ガバナ制限)は守らなければいけないということです。
まとめ
1. クロスサイトスクリプティング (XSS)
XSSは、ウェブサイトのセキュリティ脆弱性の一つです。攻撃者が悪意のあるスクリプトを信頼されたウェブサイトに注入し、他のユーザーのブラウザで実行させることで、クッキー情報やセッションデータが盗まれたり、偽のコンテンツが表示されたりします。
対策:
- ユーザー入力をエスケープして表示する。
- 安全なコーディングを心がける。
- Webアプリケーションファイアウォール(WAF)を使用する。
これにより、XSS攻撃のリスクを軽減できます。WAFはサーバー側の設定なので、概念を押さえておく程度で問題ありません。
2. デバッグログの基本
Salesforceのデバッグログは、特定のユーザーやApexクラス、トリガーに対して有効にすることができ、必要なコンポーネントに焦点を当ててデバッグが可能です。
- ログの最大サイズ: 5MB
- 保持されるログの数: 最新の20個まで
この数を超えると、古いログは自動的に削除されるため、必要な情報は早めに確認しましょう。
3. オーバーライドの概念
「オーバーライド」は、親クラスから受け継いだメソッドを上書きするためのものです。親クラスが「このメソッドは上書きしてもいいよ」という印として「abstract」を使います。
例え:
クラスは「設計図」、メソッドはその設計図に基づいた「動きの指示書」と考えてください。抽象クラスは「そのままでは使えない設計図」であり、具体的な設計図を作って初めて役立つものです。オーバーライドは、この指示書を「ちょっと特別に変えたい」ときに使う技術です。
4. 非同期トランザクションとは?
非同期トランザクションは、プログラムがすぐに実行されず、後で順番に処理される方法です。Batch Apexという仕組みを使うと、大量のデータを少しずつ処理することが可能です。
例え:
大きなケーキを一度に食べるのは無理でも、少しずつ切り分けて食べることならできます。Batch Apexは、このケーキを小さく切って、一口ずつゆっくり食べるようなものです。
5. ガバナ制限と非同期トランザクション
Salesforceには「ガバナ制限」というルールがあり、システムに負担をかけすぎないように制限が設けられています。非同期トランザクションでは、これらの制限が少し緩和されますが、それでも制限を超えることはできません。
例え:
お店で一度に10個までしか買い物できないルールがあったとしても、少し多めに買えるサービスを使うことができますが、ルールを破ることはできません。非同期トランザクションでも、同じように制限内で処理を行います。
以上のポイントを押さえて、試験対策に活用しましょう!