RepetitiveNamingvariabledeclaredfar fromits usagemissinglegalcommentsViolatesCommand-QuerySeparationverticalopennessbetweenconceptsUnpronounceablenamingMissingsummarycomment ona publicmethodlargefunctionswith nestedstructuresCatchingexceptionsand loggingonlyConfusingNamingRequireshorizontalscrollingToo ManyResponsibilitiesCommentedOut CodeToo manyarguments(>3)CodeDuplicationMultipleReturnPointsLongMethodNon-searchablevariablenameMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseCommentsExplainingCodeDeepNestingDependentfunctionsare farapartErrorcodesinstead ofexceptionRepetitiveNamingvariabledeclaredfar fromits usagemissinglegalcommentsViolatesCommand-QuerySeparationverticalopennessbetweenconceptsUnpronounceablenamingMissingsummarycomment ona publicmethodlargefunctionswith nestedstructuresCatchingexceptionsand loggingonlyConfusingNamingRequireshorizontalscrollingToo ManyResponsibilitiesCommentedOut CodeToo manyarguments(>3)CodeDuplicationMultipleReturnPointsLongMethodNon-searchablevariablenameMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseCommentsExplainingCodeDeepNestingDependentfunctionsare farapartErrorcodesinstead ofexception

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