Too ManyResponsibilitiesDependentfunctionsare farapartCodeDuplicationlargefunctionswith nestedstructuresDeepNestingToo manyarguments(>3)UnpronounceablenamingMissingsummarycomment ona publicmethodCommentsExplainingCodeViolatesCommand-QuerySeparationNon-searchablevariablenamevariabledeclaredfar fromits usageMessageChains –a.b().c().d()trainwreckErrorcodesinstead ofexceptionSwitchStatementAbuseverticalopennessbetweenconceptsmissinglegalcommentsRequireshorizontalscrollingCommentedOut CodeCatchingexceptionsand loggingonlyMultipleReturnPointsRepetitiveNamingConfusingNamingLongMethodToo ManyResponsibilitiesDependentfunctionsare farapartCodeDuplicationlargefunctionswith nestedstructuresDeepNestingToo manyarguments(>3)UnpronounceablenamingMissingsummarycomment ona publicmethodCommentsExplainingCodeViolatesCommand-QuerySeparationNon-searchablevariablenamevariabledeclaredfar fromits usageMessageChains –a.b().c().d()trainwreckErrorcodesinstead ofexceptionSwitchStatementAbuseverticalopennessbetweenconceptsmissinglegalcommentsRequireshorizontalscrollingCommentedOut CodeCatchingexceptionsand loggingonlyMultipleReturnPointsRepetitiveNamingConfusingNamingLongMethod

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