MessageChains –a.b().c().d()trainwreckDependentfunctionsare farapartCodeDuplicationNon-searchablevariablenameLongMethodvariabledeclaredfar fromits usageUnpronounceablenaminglargefunctionswith nestedstructuresViolatesCommand-QuerySeparationCommentedOut CodeToo manyarguments(>3)Errorcodesinstead ofexceptionSwitchStatementAbuseCatchingexceptionsand loggingonlyToo ManyResponsibilitiesConfusingNamingverticalopennessbetweenconceptsMultipleReturnPointsRequireshorizontalscrollingMissingsummarycomment ona publicmethodmissinglegalcommentsRepetitiveNamingCommentsExplainingCodeDeepNestingMessageChains –a.b().c().d()trainwreckDependentfunctionsare farapartCodeDuplicationNon-searchablevariablenameLongMethodvariabledeclaredfar fromits usageUnpronounceablenaminglargefunctionswith nestedstructuresViolatesCommand-QuerySeparationCommentedOut CodeToo manyarguments(>3)Errorcodesinstead ofexceptionSwitchStatementAbuseCatchingexceptionsand loggingonlyToo ManyResponsibilitiesConfusingNamingverticalopennessbetweenconceptsMultipleReturnPointsRequireshorizontalscrollingMissingsummarycomment ona publicmethodmissinglegalcommentsRepetitiveNamingCommentsExplainingCodeDeepNesting

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