LongMethodCodeDuplicationlargefunctionswith nestedstructuresRepetitiveNamingNon-searchablevariablenameConfusingNamingToo manyarguments(>3)Dependentfunctionsare farapartToo ManyResponsibilitiesRequireshorizontalscrollingCatchingexceptionsand loggingonlyErrorcodesinstead ofexceptionverticalopennessbetweenconceptsCommentedOut CodemissinglegalcommentsMultipleReturnPointsViolatesCommand-QuerySeparationMissingsummarycomment ona publicmethodCommentsExplainingCodevariabledeclaredfar fromits usageUnpronounceablenamingDeepNestingMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseLongMethodCodeDuplicationlargefunctionswith nestedstructuresRepetitiveNamingNon-searchablevariablenameConfusingNamingToo manyarguments(>3)Dependentfunctionsare farapartToo ManyResponsibilitiesRequireshorizontalscrollingCatchingexceptionsand loggingonlyErrorcodesinstead ofexceptionverticalopennessbetweenconceptsCommentedOut CodemissinglegalcommentsMultipleReturnPointsViolatesCommand-QuerySeparationMissingsummarycomment ona publicmethodCommentsExplainingCodevariabledeclaredfar fromits usageUnpronounceablenamingDeepNestingMessageChains –a.b().c().d()trainwreckSwitchStatementAbuse

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