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