CommentedOut CodeFREEDependentfunctionsare farapartToo manyarguments(>4)UnreadableRegexDeepnestingCommentsexplainingCodeVariabledeclaredfar fromits usageLongMethodMessageChains –a.b().c().d()...CodeDuplicationRepetitiveNamingHidden sideeffects (e.g.parametermodifying)Temporaryfields(assigned now,used maybenever?)Catchingexceptionsand loggingonlyForever//TODOErrorcodesinstead ofexceptionGodclassCommentedout codeUnpronounceable/Confusing namingOverlycomplexbooleanconditionViolatesCommand-QuerySeparationMagicNumbers /MagicStringsSwitchStatementAbuseReturn nullinstead of anemptycollection /valueCommentedOut CodeFREEDependentfunctionsare farapartToo manyarguments(>4)UnreadableRegexDeepnestingCommentsexplainingCodeVariabledeclaredfar fromits usageLongMethodMessageChains –a.b().c().d()...CodeDuplicationRepetitiveNamingHidden sideeffects (e.g.parametermodifying)Temporaryfields(assigned now,used maybenever?)Catchingexceptionsand loggingonlyForever//TODOErrorcodesinstead ofexceptionGodclassCommentedout codeUnpronounceable/Confusing namingOverlycomplexbooleanconditionViolatesCommand-QuerySeparationMagicNumbers /MagicStringsSwitchStatementAbuseReturn nullinstead of anemptycollection /value

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