CommentedOut CodeDeepNestingErrorcodesinstead ofexceptionCatchingexceptionsand loggingonlyUseof punUnpronounceablenamingToo manyarguments(>3)variabledeclaredfar fromits usageMultipleReturnPointsRequireshorizontalscrollingMessageChains –a.b().c().d()trainwreckViolatesCommand-QuerySeparationlargefunctionswith nestedstructuresverticalopennessbetweenconceptsLongMethodToo ManyResponsibilitiesFree!Non-searchablevariablenameCodeDuplicationConfusingNamingDependentfunctionsare farapartCommentsExplainingCodeSwitchStatementAbuseCommentedOut CodeDeepNestingErrorcodesinstead ofexceptionCatchingexceptionsand loggingonlyUseof punUnpronounceablenamingToo manyarguments(>3)variabledeclaredfar fromits usageMultipleReturnPointsRequireshorizontalscrollingMessageChains –a.b().c().d()trainwreckViolatesCommand-QuerySeparationlargefunctionswith nestedstructuresverticalopennessbetweenconceptsLongMethodToo ManyResponsibilitiesFree!Non-searchablevariablenameCodeDuplicationConfusingNamingDependentfunctionsare farapartCommentsExplainingCodeSwitchStatementAbuse

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