The Salesforce Platform Developer 1 certification is a credential developed for Salesforce professionals who have experience in implementing programmatic solutions on the Salesforce platform and are looking to verify their expertise. Working experience of the product is important for this certification in particular as it’s designed specifically for professionals with knowledge of development.
- The exam is made up of 60 multiple choice questions (plus 5 unscored questions)
- 110 minutes to complete
- The passing score is 65%.
- There are no prerequisites
- Cost is USD$200 and the retake fee is USD$100 if you are unsuccessful
This guide will explain everything you need to think about if you’re interested in becoming Platform Developer 1 certified and the core topics of the exam.
In Platform Developer 1, there are 6 topics covered. The topic with the highest weighting is Logic and Process Automation. As it is weighted at almost half of the entire exam, this is an area that you must focus on to do well in the exam.
Logic and Process Automation
Data Modeling and Management
Debug and Deployment Tools
Salesforce Platform Developer 1 Certification Contents
The following are the core topic areas of the Salesforce Platform Developer 1 certification and what you’re expected to know:
Developing in a multi-tenant environment with shared resources needs different considerations compared to traditional development. There are a number of considerations that a developer needs to be aware of, such as shared resources, governor limits and automatic upgrades.
The MVC pattern separates the data layer (model) from the business logic (controller) and from how the data is presented in the user interface (view). You need to know how the Salesforce platform features correspond to one of the 3 components of the MVC pattern.
Salesforce started life as a Salesforce Automation Application with some of the core objects including Accounts, Contacts, Activities, Opportunities, Quotes, Products and Price books. It has continually expanded over the years and now includes Support objects such as Cases and Solutions and Marketing objects such as Campaigns. You need to be aware of the key objects and their capabilities.
The AppExchange allows the Salesforce platform to be extended and used for industry specific applications or for adding additional to the core Salesforce functionality. Be aware of the common scenarios and use cases for using an AppExchange app.
The capabilities of declarative customization are continually increasing and reducing the need for APEX code, however complex scenarios still have the need for APEX code. You need to know when APEX code is required and when declarative tools can be used to satisfy a requirement.
Data Modeling and Management
You need to know the basics of the data model in Salesforce and how it can be utilized to meet various types of business requirements. The data model consists of objects, fields and relationships and can be used to model how records are represented in Salesforce. Various types of relationships, such as lookup, master-detail and many-to-many can be utilized to relate objects with one another.
Relationships are used in Salesforce when you need to relate different objects. Relationships can be created between standard objects and custom objects (such as Account and Account Performance) or between two custom objects (expense and expense item). Each of the relationship types have different capabilities and implications on record access, the user interface and how to access programatically. Types of relationships available are: Lookup, Master-detail, Many to many, External lookup, Indirect lookup and Hierarchical.
Be aware of the impact of schema design and modification on programmatic development using Apex. Schema refers to the representation of the data model and relationships between various standard and custom objects in Salesforce. The behavior of objects and fields changes when they are referenced in Apex and Visualforce pages. Although some changes can be made, their impact on organizational code should be taken into consideration.
Schema Builder provides the ability to visualize and create entity relationships. You can view the relationship structure and the fields that are available for each object. This is demonstrated in an interactive environment which shows the relationship using lines connecting the objects. Schema Builder is used to easily identify the relationship between the objects and create new custom objects and fields to customize and design the data model.
In regards to the options and considerations for importing and exporting data into Salesforce development environments, there are two main options when considering how to import data into a development environment, the Data Import Wizard or Data Loader. It is important to understand the considerations for each tool so that the most appropriate solution can be selected. For exporting data out of a Salesforce development environment, depending on the requirements, usually Data Loader or exporting data via reports can be used.
Logic and Process Automation
The Logic and Process Automation topic is the highest weighted and section with the most objectives. It can be broadly broken up into 3 categories, declarative features, basic APEX and Visualforce and advanced programmatic APEX.
Understanding declarative features involves understanding the capabilities and use cases of formula fields, roll-up summary fields and the automation tools, such as workflow, process builder and visual workflow. It is important to know when declarative features can be used to satisfy a requirement and when Apex classes and triggers need to be used.
You need to know how to declare variables and constants and assign values using expressions in Salesforce. Apex provides various data types for variables, constants, expressions and expression operators for initializing and accessing data programmatically. All variables and expressions have a data type in Apex. A collection such as list, set or map can be utilized to store multiple elements of a data type. Static variables and class objects can also be declared in Apex.
Understand the different primitive and complex data types available in Apex and when they can be used. Apex supports different data types for storing different types of variables. Primitive data types are the most basic data types provided by Salesforce whereas complex data types are defined by the user based on programming requirements. Complex data types such as collections require primitive data types and can be used to specify a list, set or map of elements. Other data types such as sObjects and enum can also be utilized in Apex.
Be familiar with how to use various control flow statements in Apex, including conditional statements and procedural loops. Apex provides the ability to control flow of code execution by utilizing if-else statements, for loop and do-while loop. These work similarly to Java and can be used to employ decision-making, looping and branching in an Apex program. Loop control structures such as break and continue are also supported by Apex.
You need to know how Apex classes and interfaces can be written and used in Salesforce. A class is a blueprint which contains functionality or logic in Apex. It contains variables and methods which can be used to specify the state and behavior of objects. An instance of a class is referred to as an object. Interface is similar to a class but does not contain implemented methods. Both classes and interfaces follow the object-oriented programming principles and syntax of the Java language.
Understand how SOSL, SOQL and DML statements can be used in Salesforce to find, query and manipulate records, respectively. SOSL can be used to create text-based search queries against the search index. SOQL is used to search Salesforce data for specific information. Both can be used in Apex but have different use cases depending on the type of information retrieved. DML statements are used for data manipulation operations such as insert, update, upsert, delete, undelete, and merge.
You need to know how to write controllers that implement custom logic for Visualforce pages. Also understand the use of various controller methods including getter, setter and action methods for retrieving and setting data and responding to user inputs. Apex provides the ability to create apex classes which can be used as custom controllers when standard controllers are not sufficient for custom logic and data manipulation by a Visualforce page. Controller extensions can also be used to extend both standard and custom controllers.
Understand the various use-cases of Visualforce controllers, and how to associate and use standard controllers, standard list controllers, custom controllers and controller extensions with Visualforce pages. When standard functionality and behavior are sufficient for a Visualforce page, standard controllers are used. However, if completely new or additional functionality is required, or existing functionality needs to be overwritten, custom controllers and controller extensions can be used. Furthermore, standard list controllers allow retrieving a list of records for display on a Visualforce page, which is important to understand.
Know how to programmatically access metadata information about the data model within Apex. Salesforce provides Dynamic Apex to access sObject and field describe information. The describeSObjects Schema method, tokens and describe results can be utilized for describing sObjects programmatically. Metadata information, such as a list of top-level standard and custom objects and their fields can be retrieved, which enables developers to create more flexible applications.
Understand the different design patterns for Apex triggers and some best practices that can be followed when designing triggers. Apex triggers can be used to handle various types of operations on an object programmatically. However, usage of certain design patterns ensures simplicity, reusability and convenience when utilizing code for different purposes and processing several thousand records. There are three important design patterns to be familiar with, namely, one trigger per object, use of a trigger handler class, and bulk triggers.
The relationship between Apex Transactions and the save order of execution is critical to understand including the potential for cascading and recursion due to triggers and workflow rules. It is important to know the key steps in the save order of execution and how triggers are impacted by it to understand the events that occur when a record is saved. The relationship between execution order and execution context can help in resolving issues that occur as a result of the events. Furthermore, cascading and recursion due to triggers should be taken into consideration when creating triggers and workflow rules to prevent potential issues with records.
This topic describes how to implement exception handling in Apex with examples of built-in exceptions. It also explains how exception methods and custom exceptions can be used in Apex. When an exception is unhandled in Apex, it brings code processing to a halt. Exception handling allows developers to try running some code, catch a potential exception, and run a block of code whether there is an exception or not. This robust framework for exception handling allows recovery from errors and ensures proper functioning of code.
Be aware of the programmatic techniques to prevent security vulnerabilities in Apex and Visualforce including SOQL injection, Cross Site Scripting (XSS), Cross Site Request Forgery and Data Access Control Issues.
Apex impacts the ability to make declarative changes. The following are examples of the types of changes are not allowed if a field is referenced in Apex or in a Visualforce page: renaming fields, changing the field type and deleting fields.
Understand the different ways of displaying data in Salesforce using Visualforce pages. When standard functionality is not sufficient to display data in Salesforce, Visualforce pages are used to create custom user interface elements that can retrieve data from objects and other resources in Salesforce. Visualforce is a user interface development framework that enables replacement and extension of Salesforce’s built-in features for accessing data, as well as creation of custom user interfaces with data from different sources. You should know the different types of data that can be displayed, how data can be retrieved and made available on Visualforce pages, how global data can be displayed on Visualforce pages, how data from detail pages and related lists can be displayed and how tables and data from related objects can be displayed.
There are several ways in which Visualforce pages can be used in Salesforce. Visualforce allows developers to create custom user interface elements and customize the look and feel of Force.com applications. When an organization has complex business processes which require unique UI and are unsupported by existing functionality, Visualforce pages can be utilized. There are several options that are available when it comes to incorporating Visualforce pages, including custom tabs, embedding in page layouts, launching from custom buttons, overriding standard buttons, using as the data source for dashboard components, using in a custom console component or incorporating in the Salesforce mobile App.
Understand the benefits of the Lightning Component Framework in Salesforce. The Lightning Component Framework allows development of dynamic web applications on the Force.com platform. Developers can build responsive applications for any device by using this framework. It is ideal for use with the Salesforce1 app, Salesforce Lightning Experience and Communities. Benefits include increased performance, reduced development time, ability to use predefined components and an event driven architecture.
This topic requires knowledge of the testing framework in Salesforce and its main features that can be utilized to ensure successful long-term development and success of the application. When an application in Salesforce needs to be deployed to customers, testing plays a key role, and the testing framework makes it possible to validate that it works as expected. It is also used to ensure that any changes and extensions to an application do not break functionality. In Salesforce, testing is required for a successful deployment in production.
You need to know how to write unit tests for Apex classes and triggers as well as custom controllers and controller extensions. Various aspects and best practices should be considered while writing unit tests in Salesforce. A specific structure should be followed for creating unit test classes with test data. Furthermore, governor limits play an important role in Apex, which makes it important to consider their impact on test methods. You need to be familiar with the use of additional methods when permissions and record sharing needs to be taken into account.
Creating test data is essential to make sure that test classes can perform operations on a set of transient records without making any changes to actual data in Salesforce. Test data is used for the purpose of testing code only and is deleted automatically after test execution. This makes data management easier since organizational data remains untouched and test data cleanup is not required. You need to be familiar with the various sources of test data as well as ways of utilizing them in test classes.
You need to know the various ways of running test classes. Salesforce provides multiple options for executing tests, such as the user interface, developer console, Force.com IDE and API objects. Each option has features which can be utilized for running unit tests and checking their results in order to verify apex code functionality. Different groupings of unit tests can be used for running tests. Tests can be run synchronously in real time or asynchronously so that the user doesn’t have to wait for the test execution to finish.
Finally you need to know the main differences between Execute Anonymous and Unit Tests for invoking Apex classes in Salesforce. Each has a different purpose when it comes to code execution. Salesforce offers the functionality to run anonymous blocks in the Developer Console, Force.com IDE and API to write and execute code on the fly. On the contrary, unit tests are used to test existing or new Apex classes, triggers and Visualforce functionality.
Debug and Deployment Tools
This topic requires you to be familiar with the various types of debug logs in Salesforce. The different tools that can be used for debug and deployment and the processes used for deployment as well as the different types of Salesforce environments, and what they are typically used for.
Debug logs are used to track events that occur in an org. Various operations and processes can be recorded by a debug log. A debug log can be used to validate an application’s behavior in Salesforce. Information can be viewed in debug logs regarding the success and duration of events. They can also be used for troubleshooting and resolving issues by setting up user trace flags.
The Developer Console, Workbench, and Force.com IDE have various capabilities and security implications. These tools provide a number of functions, such as executing code and tests, querying data, and migrating data and metadata from one environment to another. Developer Console is generally used for writing and testing code. Force.com IDE is used for a variety of functions related to creating, modifying and deploying applications. Workbench is a web-based suite of tools that can be used to interact with a Salesforce instance using Force.com APIs.
When considering moving metadata between environments, the environment type of the source and target will be a consideration. For example here are some possible scenarios of source and target environments. Options to move Metadata between Environments include Change Sets, Force.com Migration Tool, Force.com IDE, Workbench and Unmanaged Packages.
Different and multiple Salesforce environments are used for various purposes, such as development, integration, testing, and training. Development environments are used for customization and application development. Testing environments can be used for integration and user acceptance testing. A staging environment can be used for a test deployment before migrating changes to production. It is important to know which environment is appropriate for a certain type of activity.
To prepare successfully for the certification exam, we recommend to work through our Platform Developer 1 Study Guide and Platform Developer 1 Practice Exams.
Platform Developer 1 Study Guide
Every topic objective explained thoroughly. The most efficient way to study the key concepts in the exam.
Platform Developer 1 Practice Exams
Test yourself with complete practice exams or focus on a particular topic with the topic exams. Find out if you are ready for the exam.