DeepNestingCodeDuplicationvariabledeclaredfar fromits usageCommentsExplainingCodeCommentedOut Codelargefunctionswith nestedstructuresCatchingexceptionsand loggingonlyConfusingNamingMissingsummarycomment ona publicmethodNon-searchablevariablenameErrorcodesinstead ofexceptionverticalopennessbetweenconceptsViolatesCommand-QuerySeparationUseof punMultipleReturnPointsToo ManyResponsibilitiesToo manyarguments(>3)SwitchStatementAbuseMessageChains –a.b().c().d()trainwreckmissinglegalcommentsDependentfunctionsare farapartRequireshorizontalscrollingUnpronounceablenamingLongMethodDeepNestingCodeDuplicationvariabledeclaredfar fromits usageCommentsExplainingCodeCommentedOut Codelargefunctionswith nestedstructuresCatchingexceptionsand loggingonlyConfusingNamingMissingsummarycomment ona publicmethodNon-searchablevariablenameErrorcodesinstead ofexceptionverticalopennessbetweenconceptsViolatesCommand-QuerySeparationUseof punMultipleReturnPointsToo ManyResponsibilitiesToo manyarguments(>3)SwitchStatementAbuseMessageChains –a.b().c().d()trainwreckmissinglegalcommentsDependentfunctionsare farapartRequireshorizontalscrollingUnpronounceablenamingLongMethod

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