Only catchinggeneralcatch(Exception)Hard-codedIDSOQLsin loopPublicRead/WriteOWDsCode intriggerinstead ofTriggerHandlerExactly75% testcoverageExcessiveamount ofSystem.Debug()Noassertionsin TestsDMLsin loopGiganticFlow insteadof multipleSubflowsNondescriptivevariablenames in FlowMethod with100s 'i++'lines for fakecodecoverageUnjustifiedbig numberof RecordFlows onone sObjectMultipletriggerson onesObjectExcessivelack of.startTest()and.stopTest()No checkingcollectionemptinessbefore DMLNo Test datafactory/builderNo flags todeactivatetriggerdeclarativelySOQLwithoutWHERE orLIMIT outsideBatchNo FaultPaths inFlowsHard-codingUI textinstead ofCustomLabelsHard-codedauthenticationinstead ofusing NamedCredentailCallingQueueable inloop withoutcontrolmechanism orloggingGetting IDsby loopinstead ofMap(records)Only catchinggeneralcatch(Exception)Hard-codedIDSOQLsin loopPublicRead/WriteOWDsCode intriggerinstead ofTriggerHandlerExactly75% testcoverageExcessiveamount ofSystem.Debug()Noassertionsin TestsDMLsin loopGiganticFlow insteadof multipleSubflowsNondescriptivevariablenames in FlowMethod with100s 'i++'lines for fakecodecoverageUnjustifiedbig numberof RecordFlows onone sObjectMultipletriggerson onesObjectExcessivelack of.startTest()and.stopTest()No checkingcollectionemptinessbefore DMLNo Test datafactory/builderNo flags todeactivatetriggerdeclarativelySOQLwithoutWHERE orLIMIT outsideBatchNo FaultPaths inFlowsHard-codingUI textinstead ofCustomLabelsHard-codedauthenticationinstead ofusing NamedCredentailCallingQueueable inloop withoutcontrolmechanism orloggingGetting IDsby loopinstead ofMap(records)

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