RequireshorizontalscrollingDeepNestingLongMethodvariabledeclaredfar fromits usageFree!UnpronounceablenamingErrorcodesinstead ofexceptionUseof punConfusingNamingCommentedOut CodeCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckToo manyarguments(>3)CodeDuplicationlargefunctionswith nestedstructuresNon-searchablevariablenameverticalopennessbetweenconceptsMultipleReturnPointsViolatesCommand-QuerySeparationDependentfunctionsare farapartCatchingexceptionsand loggingonlySwitchStatementAbuseToo ManyResponsibilitiesRequireshorizontalscrollingDeepNestingLongMethodvariabledeclaredfar fromits usageFree!UnpronounceablenamingErrorcodesinstead ofexceptionUseof punConfusingNamingCommentedOut CodeCommentsExplainingCodeMessageChains –a.b().c().d()trainwreckToo manyarguments(>3)CodeDuplicationlargefunctionswith nestedstructuresNon-searchablevariablenameverticalopennessbetweenconceptsMultipleReturnPointsViolatesCommand-QuerySeparationDependentfunctionsare farapartCatchingexceptionsand loggingonlySwitchStatementAbuseToo ManyResponsibilities

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