# Platform Developer II Study Guide

*Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/platform-developer-ii*

The CertifyForce Platform Developer II study guide covers the official Salesforce Platform Developer II exam outline in 28 units across all 5 exam sections, one unit per exam-guide topic. The exam itself has 60 scored questions plus 5 unscored, a 120-minute limit and a 70% passing score, and its largest section is Process Automation, Logic, and Integration at 27%. Every unit is verified against official Salesforce documentation, cites its sources, and links to the practice questions that test it. Last updated October 16, 2026.

## Contents

### Advanced Developer Fundamentals (15% of the exam)

- [Localization, multi-currency and time zones in code](https://www.certifyforce.com/study-guide/platform-developer-ii/advanced-developer-fundamentals/localization-multi-currency-and-time-zones-in-code): How custom labels, toLabel(), CurrencyIsoCode, convertCurrency(), dated exchange rates and the Date, Datetime and LWC i18n APIs decide which language, currency, time zone and format your code returns to each user. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/advanced-developer-fundamentals/localization-multi-currency-and-time-zones-in-code))
- [Apex managed sharing and share objects](https://www.certifyforce.com/study-guide/platform-developer-ii/advanced-developer-fundamentals/apex-managed-sharing-and-share-objects): When declarative sharing can't express a requirement, how to write share rows with the right RowCause and AccessLevel, keep them correct with recalculation classes, check a user's real access with UserRecordAccess, and choose the right sharing keyword for each class. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/advanced-developer-fundamentals/apex-managed-sharing-and-share-objects))
- [Custom metadata types versus custom settings](https://www.certifyforce.com/study-guide/platform-developer-ii/advanced-developer-fundamentals/custom-metadata-types-versus-custom-settings): How to choose between custom metadata types, list custom settings and hierarchy custom settings, read them without spending SOQL, write custom metadata from Apex, protect secrets in packages and avoid the test and query traps each one sets. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/advanced-developer-fundamentals/custom-metadata-types-versus-custom-settings))

### Process Automation, Logic, and Integration (27% of the exam)

- [Order of execution across flows and triggers](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/order-of-execution-across-flows-and-triggers): Where before-save flows, Apex triggers, validation rules, assignment rules, after-save flows, roll-ups and post-commit work interleave in one save, why Trigger Order can't reorder Apex, and how one automation's DML re-fires another. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/order-of-execution-across-flows-and-triggers))
- [Choosing Flow, Apex or both for automation](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/choosing-flow-apex-or-both-for-automation): How automation density, one entry point per object and the before-save versus after-save split decide between a record-triggered flow, an Apex trigger and the hybrid of a flow calling bulk-safe invocable Apex, plus the requirements only Apex or only Flow meets. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/choosing-flow-apex-or-both-for-automation))
- [Advanced trigger context and handler patterns](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/advanced-trigger-context-and-handler-patterns): Which trigger context variables exist in each event, how merge and undelete fire triggers, how addError blocks saves and deletes, and how a single trigger with a handler, bulk-safe code and Id-based recursion guards survives 200-record chunks. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/advanced-trigger-context-and-handler-patterns))
- [Savepoints, partial success and custom exceptions](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/savepoints-partial-success-and-custom-exceptions): What Database.rollback does and doesn't revert, how to call out after a rollback, how allOrNone false retries and re-fires triggers, how to design and chain custom exceptions, and how to log errors that survive a rolled-back transaction. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/savepoints-partial-success-and-custom-exceptions))
- [Advanced SOQL keywords: locking, aggregates, TYPEOF](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/advanced-soql-keywords-locking-aggregates-typeof): Where FOR UPDATE, WITH USER_MODE, GROUP BY ROLLUP and CUBE, GROUPING, HAVING, TYPEOF, ALL ROWS and semi- and anti-joins go in a query, what each one does in Apex, and the keyword combinations SOQL rejects. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/advanced-soql-keywords-locking-aggregates-typeof))
- [Choosing Queueable, Batch, Scheduled or future Apex](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/choosing-queueable-batch-scheduled-or-future-apex): The advanced async decisions PD II tests: why Queueable replaces future methods, bulk-safe enqueueing from triggers, Database.Stateful and callouts in Batch Apex, callouts from Scheduled Apex, transaction finalizers, and async as the fix for mixed DML and slow saves. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/choosing-queueable-batch-scheduled-or-future-apex))
- [Dynamic Apex: describes, dynamic SOQL and Type](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/dynamic-apex-describes-dynamic-soql-and-type): Pick the dynamic Apex feature a requirement needs: sObject tokens and describes, dynamic SOQL bind rules and Database.queryWithBinds, SOQL injection defences, dynamic DML with get, put and getSObject, Type.forName for plug-in classes, and dynamic SOSL. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/dynamic-apex-describes-dynamic-soql-and-type))
- [Platform event publishing, subscribers and Pub/Sub API](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/platform-event-publishing-subscribers-and-pub-sub-api): Publish Immediately versus Publish After Commit, what EventBus.publish's SaveResult really means, how platform event Apex triggers run, retry and resume, and which subscriber to use: an Apex trigger, empApi in a Lightning component, or Pub/Sub API with replay IDs and EventUuid deduplication. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/platform-event-publishing-subscribers-and-pub-sub-api))
- [Apex callouts, Named Credentials and Apex REST](https://www.certifyforce.com/study-guide/platform-developer-ii/process-automation-logic-and-integration/apex-callouts-named-credentials-and-apex-rest): Outbound callout rules (uncommitted work, triggers, 100 callouts, 120 seconds), named credentials with external credentials, WSDL2Apex for SOAP, inbound Apex REST and SOAP web services, and the Composite resource for all-or-none multi-step requests. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/process-automation-logic-and-integration/apex-callouts-named-credentials-and-apex-rest))

### User Interface (20% of the exam)

- [Calling Apex from LWC and Aura components](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/calling-apex-from-lwc-and-aura-components): How to read an LWC or Aura component and its Apex controller and spot the fix: cacheable wires versus imperative calls, reactive parameters and undefined values, refreshApex, immutable wired data, the Aura server-action lifecycle and the @AuraEnabled rules for methods and wrapper classes. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/calling-apex-from-lwc-and-aura-components))
- [Visualforce partial page refresh and remoting](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/visualforce-partial-page-refresh-and-remoting): Which Visualforce tag calls a controller action from an event, a JavaScript callback or a timer; how reRender, actionStatus, actionRegion and immediate change what is processed and redrawn; the postback order behind setters and getters; and when JavaScript remoting beats actionFunction. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/visualforce-partial-page-refresh-and-remoting))
- [Displaying errors in LWC, Aura and Visualforce](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/displaying-errors-in-lwc-aura-and-visualforce): How a server or input error reaches the user: AuraHandledException instead of a stripped system exception, the different error.body shapes from Apex and Lightning Data Service, awaiting imperative calls, lightning-messages, lightning-input validity, toasts, apex:pageMessages with reRender, and how trigger addError messages surface. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/displaying-errors-in-lwc-aura-and-visualforce))
- [Choosing LWC, Aura or Visualforce](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/choosing-lwc-aura-or-visualforce): How to pick the UI technology from the requirement: Lightning web components by default, an Aura wrapper for global actions, list view actions and standard action overrides, the one-way Aura-to-LWC containment rule, Visualforce for PDF output, and Lightning Data Service versus Apex for the component's data. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/choosing-lwc-aura-or-visualforce))
- [Form factors and responsive component markup](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/form-factors-and-responsive-component-markup): Two layers decide what a phone, tablet or desktop user sees: supportedFormFactors in the LWC configuration file or Aura design resource decides whether a Lightning page renders the component at all, while @salesforce/client/formFactor, $Browser and lightning-layout device sizes decide how its markup adapts. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/form-factors-and-responsive-component-markup))
- [Component events, propagation and Lightning Message Service](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/component-events-propagation-and-lightning-message-service): Pick the communication channel from where two components sit: @api and aura:method calls down, LWC custom events and Aura component events up, Lightning Message Service or Aura application events across. Covers propagation flags, retargeting, message scope, owner versus container handling and LWC events caught by an Aura parent. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/component-events-propagation-and-lightning-message-service))
- [Static resources in Visualforce, LWC and Aura](https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/static-resources-in-visualforce-lwc-and-aura): Why files belong in static resources (name-based references, zip hierarchies, the content security policy, caching) and the exact reference syntax in each technology: $Resource and URLFOR in Visualforce, @salesforce/resourceUrl and platformResourceLoader in LWC, $Resource concatenation and ltng:require in Aura. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/user-interface/static-resources-in-visualforce-lwc-and-aura))

### Testing, Debugging, and Deployment (20% of the exam)

- [Apex mocks, stubs and advanced test techniques](https://www.certifyforce.com/study-guide/platform-developer-ii/testing-debugging-and-deployment/apex-mocks-stubs-and-advanced-test-techniques): Pick the right callout mock (HttpCalloutMock, static resource mocks, WebServiceMock), isolate classes with the Stub API and dependency injection, and control test context with @TestVisible, @testSetup, event delivery, fixed SOSL results, setCreatedDate, runAs and Assert-based negative and bulk tests. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/testing-debugging-and-deployment/apex-mocks-stubs-and-advanced-test-techniques))
- [Testing LWC with Jest and Visualforce controllers](https://www.certifyforce.com/study-guide/platform-developer-ii/testing-debugging-and-deployment/testing-lwc-with-jest-and-visualforce-controllers): Write Jest tests for Lightning web components (async rendering, shadowRoot queries, mocked Apex, wire adapters, labels and events), debug JavaScript with Chrome DevTools and Jest debug mode, and test Visualforce controllers, extensions, page messages and continuations in Apex. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/testing-debugging-and-deployment/testing-lwc-with-jest-and-visualforce-controllers))
- [Diagnosing Apex with debug logs and Replay Debugger](https://www.certifyforce.com/study-guide/platform-developer-ii/testing-debugging-and-deployment/diagnosing-apex-with-debug-logs-and-replay-debugger): Trace the right entity (user, Automated Process, class or trigger), tune log levels to beat the 20 MB truncation, read the Log Inspector and Limits output, replay logs with checkpoints, and decode DmlException rows, exception emails, AsyncApexJob errors and test-only failures. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/testing-debugging-and-deployment/diagnosing-apex-with-debug-logs-and-replay-debugger))
- [Source-driven deployment with Salesforce CLI and packages](https://www.certifyforce.com/study-guide/platform-developer-ii/testing-debugging-and-deployment/source-driven-deployment-with-salesforce-cli-and-packages): Convert metadata to source format, use .forceignore and source tracking with conflict resolution, choose test levels and per-class coverage, validate then quick deploy or dry-run, delete components with destructive manifests, shape scratch orgs, release unlocked packages, authorize CI with JWT, and pick DevOps Center over change sets. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/testing-debugging-and-deployment/source-driven-deployment-with-salesforce-cli-and-packages))

### Performance (18% of the exam)

- [UI performance: view state, LDS and lazy loading](https://www.certifyforce.com/study-guide/platform-developer-ii/performance/ui-performance-view-state-lds-and-lazy-loading): How to diagnose and fix slow Visualforce pages (view state, repeated getters, read-only mode, pagination) and slow Lightning web components (Lightning Data Service caching, fewer fields, lazy creation, listener cleanup, infinite loading and production settings). ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/performance/ui-performance-view-state-lds-and-lazy-loading))
- [Selective SOQL and large data volume queries](https://www.certifyforce.com/study-guide/platform-developer-ii/performance/selective-soql-and-large-data-volume-queries): How the query optimizer decides whether a filter can use an index, how to rewrite negative, null, OR and formula filters so it can, and which structure (SOQL for loop, Batch QueryLocator, SOSL, OFFSET, hard delete) fits a large data volume scenario. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/performance/selective-soql-and-large-data-volume-queries))
- [Continuations for long-running asynchronous callouts](https://www.certifyforce.com/study-guide/platform-developer-ii/performance/continuations-for-long-running-asynchronous-callouts): When and how to use the Apex Continuation class from LWC, Aura and Visualforce: background actions that don't block others, up to three parallel or chained callouts, the 120-second continuation timeout, no DML before the callback, and the 80 KB Visualforce controller-state limit. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/performance/continuations-for-long-running-asynchronous-callouts))
- [Code reuse with service layers, inheritance and modules](https://www.certifyforce.com/study-guide/platform-developer-ii/performance/code-reuse-service-layers-inheritance-and-modules): Where duplicated logic should live and which reuse mechanism fits: a bulkified, stateless service layer and selector classes in Apex, interfaces versus virtual and abstract inheritance, System.Callable across packages, LWC API module components, Visualforce templates and trigger-framework base classes. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/performance/code-reuse-service-layers-inheritance-and-modules))
- [Fixing inefficient Apex: loops, collections and caching](https://www.certifyforce.com/study-guide/platform-developer-ii/performance/fixing-inefficient-apex-loops-collections-and-caching): Read an Apex snippet, find the limit it will hit and apply the matching fix: sets and maps instead of queries in loops, map lookups instead of nested loops, values computed once outside the loop, COUNT() instead of loaded rows, static and Platform Cache caching, before-trigger field updates, changed-field guards and one bulk sendEmail call. ([markdown](https://www.certifyforce.com/md/study-guide/platform-developer-ii/performance/fixing-inefficient-apex-loops-collections-and-caching))

## Common questions about the Platform Developer II study guide

### Is the Platform Developer II study guide free?

Partly. Every unit's summary and its "What the exam expects", "Key facts" and "Check yourself" sections are free to read without an account. The "Core concepts", "Exam traps" and "Worked scenario" sections, reading progress and unlimited timed mock exams come with the Platform Developer II pack (USD $19).

### How current is the Platform Developer II study guide?

It is written to the current official Salesforce Platform Developer II exam outline, and each unit is checked against Salesforce documentation before it is published. The most recent update was October 16, 2026, and every unit shows its own last-updated date.

### How does the study guide map to the official Platform Developer II exam guide?

There is one unit per topic in the official exam guide, grouped under its 5 weighted sections: Advanced Developer Fundamentals (15%), Process Automation, Logic, and Integration (27%), User Interface (20%), Testing, Debugging, and Deployment (20%), Performance (18%). Each unit quotes the exam objective it covers word for word.

### How do the practice questions link to the study guide?

Each unit lists the reviewed practice questions that test it (300 questions are linked across the guide), so you can read a topic and practice it in one click. After a practice exam, every missed question links back to the unit that teaches it.
