verticalopennessbetweenconceptsCommentedOut CodeSwitchStatementAbuseLongMethodUnpronounceablenamingMessageChains –a.b().c().d()trainwreckFree!CommentsExplainingCodeDeepNestingNon-searchablevariablenameDependentfunctionsare farapartvariabledeclaredfar fromits usagelargefunctionswith nestedstructuresRequireshorizontalscrollingConfusingNamingToo manyarguments(>3)Useof punToo ManyResponsibilitiesCatchingexceptionsand loggingonlyMultipleReturnPointsViolatesCommand-QuerySeparationCodeDuplicationErrorcodesinstead ofexceptionverticalopennessbetweenconceptsCommentedOut CodeSwitchStatementAbuseLongMethodUnpronounceablenamingMessageChains –a.b().c().d()trainwreckFree!CommentsExplainingCodeDeepNestingNon-searchablevariablenameDependentfunctionsare farapartvariabledeclaredfar fromits usagelargefunctionswith nestedstructuresRequireshorizontalscrollingConfusingNamingToo manyarguments(>3)Useof punToo ManyResponsibilitiesCatchingexceptionsand loggingonlyMultipleReturnPointsViolatesCommand-QuerySeparationCodeDuplicationErrorcodesinstead ofexception

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