Too ManyResponsibilitiesNon-searchablevariablenameViolatesCommand-QuerySeparationCatchingexceptionsand loggingonlyUnpronounceablenamingvariabledeclaredfar fromits usageCommentsExplainingCodeMultipleReturnPointsMissingsummarycomment ona publicmethodSwitchStatementAbuseUseof punCodeDuplicationRequireshorizontalscrollingmissinglegalcommentsConfusingNamingToo manyarguments(>3)MessageChains –a.b().c().d()trainwreckCommentedOut CodeLongMethodverticalopennessbetweenconceptsErrorcodesinstead ofexceptionlargefunctionswith nestedstructuresDependentfunctionsare farapartDeepNestingToo ManyResponsibilitiesNon-searchablevariablenameViolatesCommand-QuerySeparationCatchingexceptionsand loggingonlyUnpronounceablenamingvariabledeclaredfar fromits usageCommentsExplainingCodeMultipleReturnPointsMissingsummarycomment ona publicmethodSwitchStatementAbuseUseof punCodeDuplicationRequireshorizontalscrollingmissinglegalcommentsConfusingNamingToo manyarguments(>3)MessageChains –a.b().c().d()trainwreckCommentedOut CodeLongMethodverticalopennessbetweenconceptsErrorcodesinstead ofexceptionlargefunctionswith nestedstructuresDependentfunctionsare farapartDeepNesting

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