RepetitiveNamingCommentsExplainingCodeCodeDuplicationverticalopennessbetweenconceptsvariabledeclaredfar fromits usageUnpronounceable/Confusing naminglargefunctionswith nestedstructuresErrorcodesinstead ofexceptionDependentfunctionsare farapartToo ManyResponsibilitiesToo manyarguments(>3)RequireshorizontalscrollingCatchingexceptionsand loggingonlyCommentedOut CodeMultipleReturnPointsNon-searchablevariablenameLongMethodFree!SwitchStatementAbuseMessageChains –a.b().c().d()trainwreckViolatesCommand-QuerySeparationRepetitiveNamingCommentsExplainingCodeCodeDuplicationverticalopennessbetweenconceptsvariabledeclaredfar fromits usageUnpronounceable/Confusing naminglargefunctionswith nestedstructuresErrorcodesinstead ofexceptionDependentfunctionsare farapartToo ManyResponsibilitiesToo manyarguments(>3)RequireshorizontalscrollingCatchingexceptionsand loggingonlyCommentedOut CodeMultipleReturnPointsNon-searchablevariablenameLongMethodFree!SwitchStatementAbuseMessageChains –a.b().c().d()trainwreckViolatesCommand-QuerySeparation

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