LongMethodlargefunctionswith nestedstructuresToo manyarguments(>3)MultipleReturnPointsDependentfunctionsare farapartViolatesCommand-QuerySeparationCommentsExplainingCodeConfusingNamingRequireshorizontalscrollingmissinglegalcommentsDeepNestingMissingsummarycomment ona publicmethodvariabledeclaredfar fromits usageMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseCatchingexceptionsand loggingonlyverticalopennessbetweenconceptsCommentedOut CodeUnpronounceablenamingRepetitiveNamingErrorcodesinstead ofexceptionNon-searchablevariablenameCodeDuplicationToo ManyResponsibilitiesLongMethodlargefunctionswith nestedstructuresToo manyarguments(>3)MultipleReturnPointsDependentfunctionsare farapartViolatesCommand-QuerySeparationCommentsExplainingCodeConfusingNamingRequireshorizontalscrollingmissinglegalcommentsDeepNestingMissingsummarycomment ona publicmethodvariabledeclaredfar fromits usageMessageChains –a.b().c().d()trainwreckSwitchStatementAbuseCatchingexceptionsand loggingonlyverticalopennessbetweenconceptsCommentedOut CodeUnpronounceablenamingRepetitiveNamingErrorcodesinstead ofexceptionNon-searchablevariablenameCodeDuplicationToo ManyResponsibilities

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