Avatar of Joe


Code Smells

September 18, 2012 in Uncategorized

At the September meeting we went over a list of code smells to watch out for and investigate. ┬áCode smells are indications that something might be wrong and you should look deeper to see if it’s something that needs to be addressed in your code.

The list:

  1. Duplicated code: identical or very similar code exists in more than one location.
  2. Long method: a method, function, or procedure that has grown too large.
  3. Large class: a class that has grown too large. See God object.
  4. Too many parameters: a long list of parameters in a procedure or function make readability and code quality worse.
  5. Feature envy: a class that uses methods of another class excessively.
  6. Inappropriate intimacy: a class that has dependencies on implementation details of another class.
  7. Lazy class / Freeloader: a class that does too little.
  8. Contrived complexity: forced usage of overly complicated design patterns where simpler design would suffice.
  9. Excessively long identifiers: in particular, the use of naming conventions to provide disambiguation that should be implicit in the software architecture.
  10. Excessively short identifiers: the name of a variable should reflect its function unless the function is obvious.
  11. Excessive use of literals: these should be coded as named constants, to improve readability and to avoid programming errors. Additionally, literals can and should be externalized into resource files/scripts where possible, to facilitate localization of software if it is intended to be deployed in different regions.
  12. Arrow head code: a method that looks like a sideways arrow because of multiple levels of nested code.

1 response to Code Smells

  1. This is awesome! Thanks Joe!