Dependentfunctionsare farapartRequireshorizontalscrollingMessageChains –a.b().c().d()trainwreckmissinglegalcommentsCatchingexceptionsand loggingonlyViolatesCommand-QuerySeparationLongMethodCommentsExplainingCodeCommentedOut CodeDeepNestinglargefunctionswith nestedstructuresErrorcodesinstead ofexceptionMultipleReturnPointsRepetitiveNamingUnpronounceablenamingvariabledeclaredfar fromits usageToo manyarguments(>3)Too ManyResponsibilitiesCodeDuplicationConfusingNamingNon-searchablevariablenameSwitchStatementAbuseMissingsummarycomment ona publicmethodverticalopennessbetweenconceptsDependentfunctionsare farapartRequireshorizontalscrollingMessageChains –a.b().c().d()trainwreckmissinglegalcommentsCatchingexceptionsand loggingonlyViolatesCommand-QuerySeparationLongMethodCommentsExplainingCodeCommentedOut CodeDeepNestinglargefunctionswith nestedstructuresErrorcodesinstead ofexceptionMultipleReturnPointsRepetitiveNamingUnpronounceablenamingvariabledeclaredfar fromits usageToo manyarguments(>3)Too ManyResponsibilitiesCodeDuplicationConfusingNamingNon-searchablevariablenameSwitchStatementAbuseMissingsummarycomment ona publicmethodverticalopennessbetweenconcepts

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