RepetitiveNamingNon-searchablevariablenameViolatesCommand-QuerySeparationRequireshorizontalscrollingvariabledeclaredfar fromits usageCodeDuplicationverticalopennessbetweenconceptsToo manyarguments(>3)SwitchStatementAbuseDependentfunctionsare farapartCatchingexceptionsand loggingonlyLongMethodCommentsExplainingCodeConfusingNamingErrorcodesinstead ofexceptionMultipleReturnPointsDeepNestingUnpronounceablenamingCommentedOut Codelargefunctionswith nestedstructuresmissinglegalcommentsToo ManyResponsibilitiesMissingsummarycomment ona publicmethodMessageChains –a.b().c().d()trainwreckRepetitiveNamingNon-searchablevariablenameViolatesCommand-QuerySeparationRequireshorizontalscrollingvariabledeclaredfar fromits usageCodeDuplicationverticalopennessbetweenconceptsToo manyarguments(>3)SwitchStatementAbuseDependentfunctionsare farapartCatchingexceptionsand loggingonlyLongMethodCommentsExplainingCodeConfusingNamingErrorcodesinstead ofexceptionMultipleReturnPointsDeepNestingUnpronounceablenamingCommentedOut Codelargefunctionswith nestedstructuresmissinglegalcommentsToo ManyResponsibilitiesMissingsummarycomment ona publicmethodMessageChains –a.b().c().d()trainwreck

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