LongMethodvariabledeclaredfar fromits usageDependentfunctionsare farapartRequireshorizontalscrollingMessageChains –a.b().c().d()trainwreckDeepNestingCatchingexceptionsand loggingonlyToo manyarguments(>3)Missingsummarycomment ona publicmethodMultipleReturnPointsCodeDuplicationSwitchStatementAbuseUnpronounceablenamingViolatesCommand-QuerySeparationCommentedOut CodeUseof punErrorcodesinstead ofexceptionNon-searchablevariablenameverticalopennessbetweenconceptslargefunctionswith nestedstructuresConfusingNamingToo ManyResponsibilitiesmissinglegalcommentsCommentsExplainingCodeLongMethodvariabledeclaredfar fromits usageDependentfunctionsare farapartRequireshorizontalscrollingMessageChains –a.b().c().d()trainwreckDeepNestingCatchingexceptionsand loggingonlyToo manyarguments(>3)Missingsummarycomment ona publicmethodMultipleReturnPointsCodeDuplicationSwitchStatementAbuseUnpronounceablenamingViolatesCommand-QuerySeparationCommentedOut CodeUseof punErrorcodesinstead ofexceptionNon-searchablevariablenameverticalopennessbetweenconceptslargefunctionswith nestedstructuresConfusingNamingToo ManyResponsibilitiesmissinglegalcommentsCommentsExplainingCode

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