CommentedOut CodeCatchingexceptionsand loggingonlyErrorcodesinstead ofexceptionRequireshorizontalscrollingUnpronounceablenamingCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckConfusingNamingmissinglegalcommentsToo manyarguments(>3)CodeDuplicationDeepNestingNon-searchablevariablenameSwitchStatementAbuseMissingsummarycomment ona publicmethodViolatesCommand-QuerySeparationvariabledeclaredfar fromits usageUseof punDependentfunctionsare farapartLongMethodlargefunctionswith nestedstructuresverticalopennessbetweenconceptsToo ManyResponsibilitiesMultipleReturnPointsCommentedOut CodeCatchingexceptionsand loggingonlyErrorcodesinstead ofexceptionRequireshorizontalscrollingUnpronounceablenamingCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckConfusingNamingmissinglegalcommentsToo manyarguments(>3)CodeDuplicationDeepNestingNon-searchablevariablenameSwitchStatementAbuseMissingsummarycomment ona publicmethodViolatesCommand-QuerySeparationvariabledeclaredfar fromits usageUseof punDependentfunctionsare farapartLongMethodlargefunctionswith nestedstructuresverticalopennessbetweenconceptsToo ManyResponsibilitiesMultipleReturnPoints

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