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