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