In this post we will talk about Salesforce naming conventions best practices and how to write a clean code. Salesforce naming convention is a rule to follow as you decide what to name your identifiers like class, variable, constant, method, etc. But, it is not forced to follow. So, it is known as convention not rule. Naming conventions make the application easier to read and maintain.
A well formatted code increases readability, understanding and ultimately maintainability of the code base.
Before staring with naming convention lets talk about What is PascalCase, camelCase, SNAKE_CASE ?
Visualforce Pages
Further learning
A well formatted code increases readability, understanding and ultimately maintainability of the code base.
Before staring with naming convention lets talk about What is PascalCase, camelCase, SNAKE_CASE ?
- camelCase : Each word in the middle of the respective phrase begins with a capital letter. for example apexHours String firstName;
- PascalCase: It is same like Camel Case where first letter always is capitalized. for example ApexHoursClass UserController{ }
- kebab-case: Respective phrase will be transferred to all lowercase with hyphen(-) separating words. for example apex-hours<c-hello-world-form></c-hello-world-form>
- SNAKE_CASE: Each word should be in capital with _ like . APEX_HOURSprivate static final Integer MY_INT;
Use Post Fix / Suffix:
Consistent file naming helps keep component easy to recognize and find. Here is some example of Postfix and Suffix we are using in our project from a long time.
Functional Type
|
Name Suffix
|
Examples
|
Trigger
|
Trigger
|
UserTrigger
|
Trigger
Handler
|
TriggerHandler
|
UserTriggerHandler
|
Trigge Action
|
TriggerAction
|
UserTriggerAction
|
VF
Controller
|
Controller
|
UserController
|
VF
Controller Extension
|
Ext
|
UserExt
|
Service
Class
|
Service
|
UserService
|
Model
/ Wrapper Class
|
Wrapper
|
UserWrapper
|
Web
Service (SOAP)
|
Ws
|
UserToolsWs
|
Web
Service (REST)
|
Rest
|
UserCreateRest
|
Email
Service
|
EmlSvc
|
UserCreateEmlSvc
|
Asynchronous
(Future)
|
Async
|
UserCreateAsync
|
Asynchronous
(Batch)
|
Batch
|
UserCreateBatch
|
Scheduled
Apex
|
Job
|
UserCleanupJob
|
Test
Class
|
Test
|
UserCreateTest
|
Queueable
Apex
|
Que
|
UserSyncingQue
|
Visualforce
Page
|
-none-
|
UserClone
|
Visualforce
Component
|
Cmp
|
UserCloneCmp
|
Lightning
Components
|
|
|
APEX NAMING CONVENTION :
- Class Name : Class names should be unique, beginning with an uppercase letter. It
should NOT contain underscores or spaces (except from the prefix and
suffix). Class names should be nouns in mixed cases, with first letter
of each interval word capitalized. For Example ClassNamePOSTFIX
- Variable Name : Variables should be in mixed case with a lowercase first letter. Internal words start with capital letters. Variable names should be short and sweet and meaningful. Its should be camelCase like accountListList<Account> accountList;
- Method Name : Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized. Whole words should be used and use of acronyms and abbreviations should be limited. Name should be camelCase like showAccountDetail();
- Constants : The names of variables declared class constants should be all uppercase with words separated by underscores (“_”). All uppercase letters in this format : CONSTANT_NAME Example: private static final String ACCOUNT_LIMIT ='10';
- Trigger : <ObjectName>Trigger. This should follow Salesforce Trigger Patterns - One trigger per objectUserTrigger
Visualforce Pages
This should PascalCase, No underscores or spaces and use whole words, limit acronym or abbreviation like below.
AccountClone
Lightning Web Components Naming Convention
- Html File : Use camel case to name your component and use kebab-case to reference a component in the markup. For Example helloWorld.html
- JavaScript File :
Java Script Class name should be in PascalCase like below example export default class HelloWorld extends LightningElement{
} - CSS File :
Methods should be verbs, in mixed case with the first letter lowercase,
with the first letter of each internal word capitalized. Whole words
should be used and use of acronyms and abbreviations should be limited.
Name should be camelCase like showAccountDetail();
CSS Class Naming Standards
- CSS classes should be named based on the component that is being addressed
- Any name that is longer than one word, needs to be in this format : class-name
- Multi word name should be separated by a " - "
Lightning Component
Lightning component names must be unique. They should begin with a lowercase letter. All components should end with the suffix “Cmp”. like
userCardCmp (Initial lower case letter and suffixed with “Cmp” )
Lightning Events
Lightning event names must be unique. They should begin with a lowercase letter. All events should end with the suffix “Evt” . like
userEvt (Initial lowercase letter and suffixed with “Evt” )
Check below recording to learn about how to write clean code in Salesforce.
Further learning