Errorcodesinstead ofexceptionDependentfunctionsare farapartLongMethodNon-searchablevariablenameCommentsExplainingCodeCommentedOut CodeMultipleReturnPointsvariabledeclaredfar fromits usageUnpronounceablenamingmissinglegalcommentslargefunctionswith nestedstructuresViolatesCommand-QuerySeparationSwitchStatementAbuseToo manyarguments(>3)ConfusingNamingToo ManyResponsibilitiesCodeDuplicationCatchingexceptionsand loggingonlyUseof punMessageChains –a.b().c().d()trainwreckMissingsummarycomment ona publicmethodverticalopennessbetweenconceptsDeepNestingRequireshorizontalscrollingErrorcodesinstead ofexceptionDependentfunctionsare farapartLongMethodNon-searchablevariablenameCommentsExplainingCodeCommentedOut CodeMultipleReturnPointsvariabledeclaredfar fromits usageUnpronounceablenamingmissinglegalcommentslargefunctionswith nestedstructuresViolatesCommand-QuerySeparationSwitchStatementAbuseToo manyarguments(>3)ConfusingNamingToo ManyResponsibilitiesCodeDuplicationCatchingexceptionsand loggingonlyUseof punMessageChains –a.b().c().d()trainwreckMissingsummarycomment ona publicmethodverticalopennessbetweenconceptsDeepNestingRequireshorizontalscrolling

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