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