ViolatesCommand-QuerySeparationCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckLongMethodUnpronounceablenamingRequireshorizontalscrollingCodeDuplicationConfusingNamingDeepNestingDependentfunctionsare farapartMultipleReturnPointsErrorcodesinstead ofexceptionCommentedOut CodeToo manyarguments(>3)variabledeclaredfar fromits usagelargefunctionswith nestedstructuresToo ManyResponsibilitiesUseof punSwitchStatementAbuseFree!verticalopennessbetweenconceptsNon-searchablevariablenameCatchingexceptionsand loggingonlyViolatesCommand-QuerySeparationCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckLongMethodUnpronounceablenamingRequireshorizontalscrollingCodeDuplicationConfusingNamingDeepNestingDependentfunctionsare farapartMultipleReturnPointsErrorcodesinstead ofexceptionCommentedOut CodeToo manyarguments(>3)variabledeclaredfar fromits usagelargefunctionswith nestedstructuresToo ManyResponsibilitiesUseof punSwitchStatementAbuseFree!verticalopennessbetweenconceptsNon-searchablevariablenameCatchingexceptionsand loggingonly

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