ConfusingNamingvariabledeclaredfar fromits usageCodeDuplicationRepetitiveNamingSwitchStatementAbuseNon-searchablevariablenameCatchingexceptionsand loggingonlyDeepNestingMissingsummarycomment ona publicmethodMultipleReturnPointsErrorcodesinstead ofexceptionverticalopennessbetweenconceptsToo ManyResponsibilitiesMessageChains –a.b().c().d()trainwreckViolatesCommand-QuerySeparationLongMethodCommentsExplainingCodeUnpronounceablenaminglargefunctionswith nestedstructuresDependentfunctionsare farapartRequireshorizontalscrollingToo manyarguments(>3)missinglegalcommentsCommentedOut CodeConfusingNamingvariabledeclaredfar fromits usageCodeDuplicationRepetitiveNamingSwitchStatementAbuseNon-searchablevariablenameCatchingexceptionsand loggingonlyDeepNestingMissingsummarycomment ona publicmethodMultipleReturnPointsErrorcodesinstead ofexceptionverticalopennessbetweenconceptsToo ManyResponsibilitiesMessageChains –a.b().c().d()trainwreckViolatesCommand-QuerySeparationLongMethodCommentsExplainingCodeUnpronounceablenaminglargefunctionswith nestedstructuresDependentfunctionsare farapartRequireshorizontalscrollingToo manyarguments(>3)missinglegalcommentsCommentedOut Code

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