PR:この記事にはアフィリエイトリンクが含まれます。
Salesforceで項目更新や関連レコードの処理が増えると、クリック設定だけでは追い切れない場面が出てきます。ApexではSOQLやトリガー、テストを組み合わせて処理を作れます。ここが本選びでも大切な視点です。
Salesforce Apexの本を探すときは、複数件の処理やテストまで学べるかを見ておきたいところ。紹介する4冊は扱う段階が異なるため、今の経験に合う本を探しやすいでしょう。
本の早見表
4冊の対象読者と主なテーマを一覧にしました。基礎を順に学ぶ本、Developer I認定を意識した本、設計を深める本と、狙いが分かれています。
| 書名 | ページ数・版 | 主な内容 | 向く読者 |
|---|---|---|---|
Learning Salesforce Development with Apex | 302ページ・第2版 | Apex、SOQL、トリガー、テスト、デプロイ | Apexを初めて学ぶ人 |
| Salesforce Developer I Certification: Learn the Basics of Apex, Lightning Web Components, and Flow | 200ページ・第1版 | Apex、SOQL・SOSL、Flow、テスト、認定対策 | Developer Iを目指す人 |
Mastering Apex Programming | 394ページ・第2版 | トリガー設計、テスト、非同期処理、性能 | Apexの基礎を終えた人 |
Salesforce Platform Enterprise Architecture | 712ページ・第4版 | 設計パターン、大量データ、依存性注入 | 中上級の開発者 |
紙版の価格は販売先や時期によって動きます。版や送料で総額も変わるため、購入時点の販売価格を目安にしてください。ページ数と学習段階の両方を見ておきたいですね。
Apexを初めて学ぶ人には、環境準備からコードの基礎、トリガー、テストへ進む本が読みやすいでしょう。
Developer Iの勉強とFlowも並行するなら、Salesforce Developer I Certificationがおすすめです。
Salesforce Developer I Certification: Learn the Basics of Apex, Lightning Web Components, and Flow
Apress
Amazonで探すすでに小さなApexを書いている人には、トリガーフレームワークやモック、非同期処理まで掘り下げた本が実務に結びつきます。
大規模な組織設計を扱う本は、基礎を身につけてから読むと理解しやすいですね。
SOQLの組み立て
SOQLはSalesforceのレコードを取得するクエリ言語です。最初に対象オブジェクトと必要な項目を決め、結果をどの処理で使うかまで整理すれば、クエリの目的が読み手にも伝わります。
商談の更新後に取引先情報を使う例なら、対象商談から取引先IDを集めて、関連する取引先をまとめて取得します。レコードごとに問い合わせる形では、件数が増えた時に処理上限へ近づきます。
親から子を取得するリレーション問合せと、子から親をたどる問合せは、必要な情報の方向に応じて使い分けます。関連データをまとめて取ればSOQLの回数や不要なループを減らせますよね。
項目を増やしすぎるとコードの意図が見えにくくなり、不要なデータも抱えることになります。取得項目と検索条件を一緒に確かめる習慣が、性能と保守性を支えます。
トリガーの設計
トリガーはレコードの登録、更新、削除をきっかけに自動実行されるApexです。保存前に値を整える処理ならbefore、保存後のIDを使う関連処理ならafter。まず実行タイミングを押さえましょう。
Salesforceでは複数レコードがまとめて処理されるため、1件単位で動く前提は危険です。SOQLや更新をループ内に置かず、対象IDを集めて一括取得し、最後にまとめて更新する。これがバルク処理の基本です。
更新時はTrigger.newとTrigger.oldMapを比べ、対象項目が変わった場合にだけ後続処理を動かします。変化のない更新にも反応すると、不要な再計算や連鎖更新につながりかねません。
トリガー本体に小さな処理を書けても、条件分岐が増えるとテストも変更も難しくなります。処理をクラスへ分ければ、機能が増えたときにも整理しやすいですね。
テストで確かめる
Apexのテストでは組織の実データに頼らず、テスト用レコードを作って処理を検証します。登録が成功するケースに加え、更新条件に合わない場合や異常な入力も試すと、運用時の見落としを減らせます。
1件の実行では、複数レコードを受け取った時の不具合を見逃すことがあります。200件程度の一括登録や更新もテストすれば、ループ内SOQLなどの問題を見つけやすくなります。
assertで期待した項目値や関連レコードの結果を確かめます。行カバレッジと業務上の結果を両方見ることで、実務に近いテストになります。
非同期処理ではTest.startTestとTest.stopTestで実行範囲を区切るのが基本です。テストデータファクトリや@TestSetupを使えば、同じデータ準備を複数のテストで繰り返さずに済みます。
現場に接続する
商談が受注になった時に取引先の集計項目を更新する処理を例にします。商談の状態が変わったかをTrigger.oldMapとTrigger.newで確認し、対象取引先のIDを集めて一括取得する流れです。
複数商談を一括更新してテストし、取引先の値も確かめます。1件での成功確認では、データローダーや連携処理から多くのレコードが届く状況での問題を見つけられません。
Apexの処理を増やす前に、Flowで足りるか、コードとして共通化する必要があるかを整理しましょう。同じ項目を複数箇所から更新すると原因を追いにくくなるため、処理の担当を明確にしておきます。
本番へApexをデプロイする際は通常、組織全体で75%以上のコードカバレッジが必要で、各トリガーもテストで実行する必要があります。数字を満たすだけで終わらず、SOQLの対象、処理条件、業務結果まで確認しましょう。
結論
Apex未経験の人には、環境準備からテストまで段階的に学べるLearning Salesforce Development with Apexがおすすめです。入門書として基礎を順に確認できます。
Developer Iの受験とFlowの学習も進めたい人には、Salesforce Developer I Certification: Learn the Basics of Apex, Lightning Web Components, and Flowをおすすめします。
トリガーや非同期処理を実務で扱うならMastering Apex Programmingが有力です。複数の層や依存性注入まで設計したい中上級者には、Salesforce Platform Enterprise Architectureを勧めます。
SOQL、トリガー、テストをひと続きの処理として捉え、複数レコードを扱った結果まで検証する。学んだ知識を現場のコードに生かすための視点です。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。




