Code intriggerinstead ofTriggerHandlerExcessiveamount ofSystem.Debug()Excessivelack of.startTest()and.stopTest()No Test datafactory/builderHard-codedauthenticationinstead ofusing NamedCredentailCallingQueueable inloop withoutcontrolmechanism orloggingMultipletriggerson onesObjectExactly75% testcoverageGiganticFlow insteadof multipleSubflowsDMLsin loopSOQLsin loopNoassertionsin TestsUnjustifiedbig numberof RecordFlows onone sObjectNo checkingcollectionemptinessbefore DMLNo FaultPaths inFlowsHard-codedIDPublicRead/WriteOWDsOnly catchinggeneralcatch(Exception)Hard-codingUI textinstead ofCustomLabelsGetting IDsby loopinstead ofMap(records)SOQLwithoutWHERE orLIMIT outsideBatchMethod with100s 'i++'lines for fakecodecoverageNo flags todeactivatetriggerdeclarativelyNondescriptivevariablenames in FlowCode intriggerinstead ofTriggerHandlerExcessiveamount ofSystem.Debug()Excessivelack of.startTest()and.stopTest()No Test datafactory/builderHard-codedauthenticationinstead ofusing NamedCredentailCallingQueueable inloop withoutcontrolmechanism orloggingMultipletriggerson onesObjectExactly75% testcoverageGiganticFlow insteadof multipleSubflowsDMLsin loopSOQLsin loopNoassertionsin TestsUnjustifiedbig numberof RecordFlows onone sObjectNo checkingcollectionemptinessbefore DMLNo FaultPaths inFlowsHard-codedIDPublicRead/WriteOWDsOnly catchinggeneralcatch(Exception)Hard-codingUI textinstead ofCustomLabelsGetting IDsby loopinstead ofMap(records)SOQLwithoutWHERE orLIMIT outsideBatchMethod with100s 'i++'lines for fakecodecoverageNo flags todeactivatetriggerdeclarativelyNondescriptivevariablenames in Flow

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. Code in trigger instead of Trigger Handler
  2. Excessive amount of System.Debug()
  3. Excessive lack of .startTest() and .stopTest()
  4. No Test data factory/builder
  5. Hard-coded authentication instead of using Named Credentail
  6. Calling Queueable in loop without control mechanism or logging
  7. Multiple triggers on one sObject
  8. Exactly 75% test coverage
  9. Gigantic Flow instead of multiple Subflows
  10. DMLs in loop
  11. SOQLs in loop
  12. No assertions in Tests
  13. Unjustified big number of Record Flows on one sObject
  14. No checking collection emptiness before DML
  15. No Fault Paths in Flows
  16. Hard-coded ID
  17. Public Read/Write OWDs
  18. Only catching general catch(Exception)
  19. Hard-coding UI text instead of Custom Labels
  20. Getting IDs by loop instead of Map(records)
  21. SOQL without WHERE or LIMIT outside Batch
  22. Method with 100s 'i++' lines for fake code coverage
  23. No flags to deactivate trigger declaratively
  24. Nondescriptive variable names in Flow