Upload
netstronghold
View
514
Download
4
Embed Size (px)
DESCRIPTION
Learn the top 10 things you must know when developing using Salesforce APEX!
Citation preview
Apex Ten Commandments Francis Pindar@radnip Cloud Sherpas
#1 Thou shalt not put queries in ‘for’ loops
#1 Thou shalt not put queries in ‘for’ loops
#2 Thou shalt not put DML in ‘for’ loops
#2 Thou shalt not put DML in ‘for’ loops
#3 Thou shalt have a happy balance between clicks & code Code that replicates declarative functionality
– Roll-up Summary– Workflows– Email Templates– Global Settings– …
Good Salesforce Architectural Design
#4 Thou shalt only put one trigger per object
#5 Thou shalt not put code in triggers other than calling methods and managing execution order
#6 Thou shalt utilize maps for queries wherever possible
#7 Thou shalt make use of relationships to reduce queries wherever possible
#8 Thou shalt aim for 100% test coverage
In general test your methods for:– Positive effects.
• Given proper input it should act like this.• Not just happy path, but all logic branches.
– Negative effects.• Given bad data it should error like this.
– Role/Profile/User effects• Given a user with X profile and Y role it should act like this.
#9 Thou shalt write meaningful and useful tests It’s not a test without assertions.
– Assert(A==B, “Assert failed comment”)– AssertEquals(A,B, “Assert failed comment”)– AssertNotEquals(A,B, “Assert failed comment”)
#9 Thou shalt write meaningful and useful tests Test with your own data
– Use Test.StartTest() / Test.StopTest()
#9 Thou shalt write meaningful and useful tests Test one thing at a time
– Maintain Focus– Just One Thing!
#10 Thou shalt limit future calls and use asynchronous code where possible In general bias towards batch apex
– Ensure it runs as efficiently as possible. • Limit and tune time outs for callouts.• Tune soql queries for efficiency – dev console can help
here.– If you need @future methods.
• Optimize them the same way you would optimize your batch apex.
• Resist methods that would queue many @future calls at once. (governor limits!)
Thanks… Questions?How to find me:Ask an Expert – 3pm to 6pmTwitter: @radnip