OnlycatchinggeneralException intry-catchSOQLsin loopCode intriggerinstead ofTriggerHandlerExactly75% testcoverageHard-codedIDMissingbulk testsin testclassesNo testdatafactory orbuilderCheckingcollectionemptinessbefore DMLNon‑descriptivevariable namesin FlowExcessivelack of.startTest()and.stopTest()UsingProfilesinstead ofPermissionSetsMultipletriggerson onesObjectAll classes inwithout sharingmodeNo flags todeactivatetrigger andvalidation rulesdeclarativelyHard-codedauthenticationinstead ofusing NamedCredentialsNoassertionsin TestsPublicRead/WriteOWDsSOQLswithoutWHERE orLIMIT outsideBatchExcessiveamount ofSystem.Debug()DMLsin loopGetting IDsby loopinstead ofMap(records)GiganticFlow insteadof multipleSubflowsNo FaultPaths inFlowsMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectOnlycatchinggeneralException intry-catchSOQLsin loopCode intriggerinstead ofTriggerHandlerExactly75% testcoverageHard-codedIDMissingbulk testsin testclassesNo testdatafactory orbuilderCheckingcollectionemptinessbefore DMLNon‑descriptivevariable namesin FlowExcessivelack of.startTest()and.stopTest()UsingProfilesinstead ofPermissionSetsMultipletriggerson onesObjectAll classes inwithout sharingmodeNo flags todeactivatetrigger andvalidation rulesdeclarativelyHard-codedauthenticationinstead ofusing NamedCredentialsNoassertionsin TestsPublicRead/WriteOWDsSOQLswithoutWHERE orLIMIT outsideBatchExcessiveamount ofSystem.Debug()DMLsin loopGetting IDsby loopinstead ofMap(records)GiganticFlow insteadof multipleSubflowsNo FaultPaths inFlowsMultiple RecordTriggeredFlows on sameOperationTypeon one sObject

Salesforce Development Practices Bingo - Call List

(Print) Use this randomly generated list as your call list when playing the game. There is no need to say the BINGO column name. Place some kind of mark (like an X, a checkmark, a dot, tally mark, etc) on each cell as you announce it, to keep track. You can also cut out each item, place them in a bag and pull words from the bag.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  1. Only catching general Exception in try-catch
  2. SOQLs in loop
  3. Code in trigger instead of Trigger Handler
  4. Exactly 75% test coverage
  5. Hard-coded ID
  6. Missing bulk tests in test classes
  7. No test data factory or builder
  8. Checking collection emptiness before DML
  9. Non‑descriptive variable names in Flow
  10. Excessive lack of .startTest() and .stopTest()
  11. Using Profiles instead of Permission Sets
  12. Multiple triggers on one sObject
  13. All classes in without sharing mode
  14. No flags to deactivate trigger and validation rules declaratively
  15. Hard-coded authentication instead of using Named Credentials
  16. No assertions in Tests
  17. Public Read/Write OWDs
  18. SOQLs without WHERE or LIMIT outside Batch
  19. Excessive amount of System.Debug()
  20. DMLs in loop
  21. Getting IDs by loop instead of Map(records)
  22. Gigantic Flow instead of multiple Subflows
  23. No Fault Paths in Flows
  24. Multiple Record Triggered Flows on same OperationType on one sObject