SwitchStatementAbuseUnpronounceablenamingCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckDeepNestingverticalopennessbetweenconceptsCommentedOut CodeDependentfunctionsare farapartToo manyarguments(>3)RequireshorizontalscrollingMissingsummarycomment ona publicmethodMultipleReturnPointsErrorcodesinstead ofexceptionCodeDuplicationlargefunctionswith nestedstructuresRepetitiveNamingLongMethodViolatesCommand-QuerySeparationmissinglegalcommentsConfusingNamingToo ManyResponsibilitiesvariabledeclaredfar fromits usageNon-searchablevariablenameCatchingexceptionsand loggingonlySwitchStatementAbuseUnpronounceablenamingCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckDeepNestingverticalopennessbetweenconceptsCommentedOut CodeDependentfunctionsare farapartToo manyarguments(>3)RequireshorizontalscrollingMissingsummarycomment ona publicmethodMultipleReturnPointsErrorcodesinstead ofexceptionCodeDuplicationlargefunctionswith nestedstructuresRepetitiveNamingLongMethodViolatesCommand-QuerySeparationmissinglegalcommentsConfusingNamingToo ManyResponsibilitiesvariabledeclaredfar fromits usageNon-searchablevariablenameCatchingexceptionsand loggingonly

Code Smell 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. Switch Statement Abuse
  2. Unpronounceable naming
  3. Comments Explaining Code
  4. Message Chains – a.b().c().d() trainwreck
  5. Deep Nesting
  6. vertical openness between concepts
  7. Commented Out Code
  8. Dependent functions are far apart
  9. Too many arguments (>3)
  10. Requires horizontal scrolling
  11. Missing summary comment on a public method
  12. Multiple Return Points
  13. Error codes instead of exception
  14. Code Duplication
  15. large functions with nested structures
  16. Repetitive Naming
  17. Long Method
  18. Violates Command-Query Separation
  19. missing legal comments
  20. Confusing Naming
  21. Too Many Responsibilities
  22. variable declared far from its usage
  23. Non-searchable variable name
  24. Catching exceptions and logging only