SwitchStatementAbuseUnpronounceablenamingNon-searchablevariablenameMissingsummarycomment ona publicmethodCommentedOut CodeViolatesCommand-QuerySeparationDeepNestingLongMethodRequireshorizontalscrollingvariabledeclaredfar fromits usageCodeDuplicationCatchingexceptionsand loggingonlyCommentsExplainingCodeDependentfunctionsare farapartMultipleReturnPointsMessageChains –a.b().c().d()trainwreckConfusingNamingmissinglegalcommentsToo manyarguments(>3)largefunctionswith nestedstructuresRepetitiveNamingToo ManyResponsibilitiesErrorcodesinstead ofexceptionverticalopennessbetweenconceptsSwitchStatementAbuseUnpronounceablenamingNon-searchablevariablenameMissingsummarycomment ona publicmethodCommentedOut CodeViolatesCommand-QuerySeparationDeepNestingLongMethodRequireshorizontalscrollingvariabledeclaredfar fromits usageCodeDuplicationCatchingexceptionsand loggingonlyCommentsExplainingCodeDependentfunctionsare farapartMultipleReturnPointsMessageChains –a.b().c().d()trainwreckConfusingNamingmissinglegalcommentsToo manyarguments(>3)largefunctionswith nestedstructuresRepetitiveNamingToo ManyResponsibilitiesErrorcodesinstead ofexceptionverticalopennessbetweenconcepts

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