ConfusingNamingViolatesCommand-QuerySeparationRepetitiveNamingDeepNestingCodeDuplicationCatchingexceptionsand loggingonlyNon-searchablevariablenameToo manyarguments(>3)Dependentfunctionsare farapartErrorcodesinstead ofexceptionlargefunctionswith nestedstructuresMissingsummarycomment ona publicmethodCommentedOut CodemissinglegalcommentsLongMethodRequireshorizontalscrollingUnpronounceablenamingvariabledeclaredfar fromits usageMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseMultipleReturnPointsCommentsExplainingCodeverticalopennessbetweenconceptsToo ManyResponsibilitiesConfusingNamingViolatesCommand-QuerySeparationRepetitiveNamingDeepNestingCodeDuplicationCatchingexceptionsand loggingonlyNon-searchablevariablenameToo manyarguments(>3)Dependentfunctionsare farapartErrorcodesinstead ofexceptionlargefunctionswith nestedstructuresMissingsummarycomment ona publicmethodCommentedOut CodemissinglegalcommentsLongMethodRequireshorizontalscrollingUnpronounceablenamingvariabledeclaredfar fromits usageMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseMultipleReturnPointsCommentsExplainingCodeverticalopennessbetweenconceptsToo ManyResponsibilities

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