SOQLsin loopNoassertionsin TestsNo Test datafactory/builderNondescriptivevariablenames in FlowNo FaultPaths inFlowsGiganticFlow insteadof multipleSubflowsHard-codedIDExcessiveamount ofSystem.Debug()Method with100s 'i++'lines for fakecodecoverageSOQLwithoutWHERE orLIMIT outsideBatchPublicRead/WriteOWDsExactly75% testcoverageExcessivelack of.startTest()and.stopTest()Getting IDsby loopinstead ofMap(records)CallingQueueable inloop withoutcontrolmechanism orloggingHard-codedauthenticationinstead ofusing NamedCredentailNo checkingcollectionemptinessbefore DMLUnjustifiedbig numberof RecordFlows onone sObjectDMLsin loopNo flags todeactivatetriggerdeclarativelyHard-codingUI textinstead ofCustomLabelsMultipletriggerson onesObjectOnly catchinggeneralcatch(Exception)Code intriggerinstead ofTriggerHandlerSOQLsin loopNoassertionsin TestsNo Test datafactory/builderNondescriptivevariablenames in FlowNo FaultPaths inFlowsGiganticFlow insteadof multipleSubflowsHard-codedIDExcessiveamount ofSystem.Debug()Method with100s 'i++'lines for fakecodecoverageSOQLwithoutWHERE orLIMIT outsideBatchPublicRead/WriteOWDsExactly75% testcoverageExcessivelack of.startTest()and.stopTest()Getting IDsby loopinstead ofMap(records)CallingQueueable inloop withoutcontrolmechanism orloggingHard-codedauthenticationinstead ofusing NamedCredentailNo checkingcollectionemptinessbefore DMLUnjustifiedbig numberof RecordFlows onone sObjectDMLsin loopNo flags todeactivatetriggerdeclarativelyHard-codingUI textinstead ofCustomLabelsMultipletriggerson onesObjectOnly catchinggeneralcatch(Exception)Code intriggerinstead ofTriggerHandler

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