RepetitiveNamingOverlycomplexbooleanconditionCommentedOut CodeSwitchStatementAbuseVariabledeclaredfar fromits usageDependentfunctionsare farapartCodeDuplicationMessageChains –a.b().c().d()...Forever//TODOGodclassDeepnestingErrorcodesinstead ofexceptionViolatesCommand-QuerySeparationCommentedout codeFREEMagicNumbers /MagicStringsCommentsexplainingCodeCatchingexceptionsand loggingonlyToo manyarguments(>4)UnreadableRegexLongMethodHidden sideeffects (e.g.parametermodifying)Unpronounceable/Confusing namingReturn nullinstead of anemptycollection /valueTemporaryfields(assigned now,used maybenever?)RepetitiveNamingOverlycomplexbooleanconditionCommentedOut CodeSwitchStatementAbuseVariabledeclaredfar fromits usageDependentfunctionsare farapartCodeDuplicationMessageChains –a.b().c().d()...Forever//TODOGodclassDeepnestingErrorcodesinstead ofexceptionViolatesCommand-QuerySeparationCommentedout codeFREEMagicNumbers /MagicStringsCommentsexplainingCodeCatchingexceptionsand loggingonlyToo manyarguments(>4)UnreadableRegexLongMethodHidden sideeffects (e.g.parametermodifying)Unpronounceable/Confusing namingReturn nullinstead of anemptycollection /valueTemporaryfields(assigned now,used maybenever?)

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
25
  1. Repetitive Naming
  2. Overly complex boolean condition
  3. Commented Out Code
  4. Switch Statement Abuse
  5. Variable declared far from its usage
  6. Dependent functions are far apart
  7. Code Duplication
  8. Message Chains – a.b().c().d() ...
  9. Forever //TODO
  10. God class
  11. Deep nesting
  12. Error codes instead of exception
  13. Violates Command-Query Separation
  14. Commented out code
  15. FREE
  16. Magic Numbers / Magic Strings
  17. Comments explaining Code
  18. Catching exceptions and logging only
  19. Too many arguments (>4)
  20. Unreadable Regex
  21. Long Method
  22. Hidden side effects (e.g. parameter modifying)
  23. Unpronounceable/ Confusing naming
  24. Return null instead of an empty collection / value
  25. Temporary fields (assigned now, used maybe never?)