MessageChains –a.b().c().d()trainwreckDependentfunctionsare farapartDeepNestingmissinglegalcommentsRequireshorizontalscrollingvariabledeclaredfar fromits usageLongMethodverticalopennessbetweenconceptsConfusingNamingCatchingexceptionsand loggingonlyErrorcodesinstead ofexceptionToo ManyResponsibilitiesCommentsExplainingCodeViolatesCommand-QuerySeparationMissingsummarycomment ona publicmethodSwitchStatementAbuselargefunctionswith nestedstructuresMultipleReturnPointsCommentedOut CodeUnpronounceablenamingToo manyarguments(>3)RepetitiveNamingNon-searchablevariablenameCodeDuplicationMessageChains –a.b().c().d()trainwreckDependentfunctionsare farapartDeepNestingmissinglegalcommentsRequireshorizontalscrollingvariabledeclaredfar fromits usageLongMethodverticalopennessbetweenconceptsConfusingNamingCatchingexceptionsand loggingonlyErrorcodesinstead ofexceptionToo ManyResponsibilitiesCommentsExplainingCodeViolatesCommand-QuerySeparationMissingsummarycomment ona publicmethodSwitchStatementAbuselargefunctionswith nestedstructuresMultipleReturnPointsCommentedOut CodeUnpronounceablenamingToo manyarguments(>3)RepetitiveNamingNon-searchablevariablenameCodeDuplication

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