SOQLsin loopNo flags todeactivatetriggerdeclarativelyNoassertionsin TestsHard-codingUI textinstead ofCustomLabelsNo FaultPaths inFlowsExcessivelack of.startTest()and.stopTest()Hard-codedIDPublicRead/WriteOWDsExactly75% testcoverageHard-codedauthenticationinstead ofusing NamedCredentailSOQLwithoutWHERE orLIMIT outsideBatchExcessiveamount ofSystem.Debug()Method with100s 'i++'lines for fakecodecoverageNo Test datafactory/builderCallingQueueable inloop withoutcontrolmechanism orloggingCode intriggerinstead ofTriggerHandlerOnly catchinggeneralcatch(Exception)Unjustifiedbig numberof RecordFlows onone sObjectDMLsin loopNo checkingcollectionemptinessbefore DMLGiganticFlow insteadof multipleSubflowsGetting IDsby loopinstead ofMap(records)Nondescriptivevariablenames in FlowMultipletriggerson onesObjectSOQLsin loopNo flags todeactivatetriggerdeclarativelyNoassertionsin TestsHard-codingUI textinstead ofCustomLabelsNo FaultPaths inFlowsExcessivelack of.startTest()and.stopTest()Hard-codedIDPublicRead/WriteOWDsExactly75% testcoverageHard-codedauthenticationinstead ofusing NamedCredentailSOQLwithoutWHERE orLIMIT outsideBatchExcessiveamount ofSystem.Debug()Method with100s 'i++'lines for fakecodecoverageNo Test datafactory/builderCallingQueueable inloop withoutcontrolmechanism orloggingCode intriggerinstead ofTriggerHandlerOnly catchinggeneralcatch(Exception)Unjustifiedbig numberof RecordFlows onone sObjectDMLsin loopNo checkingcollectionemptinessbefore DMLGiganticFlow insteadof multipleSubflowsGetting IDsby loopinstead ofMap(records)Nondescriptivevariablenames in FlowMultipletriggerson onesObject

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