Wednesday, 30 July 2014
Common code smells!
· Duplicated code: identical or very similar code exists in more than one location.
· Long method: a method, function, or procedure that has grown too large.
· Large class: a class that has grown too large. See God object.
· Too many parameters: a long list of parameters in a procedure or function make readability and code quality worse.
· Feature envy: a class that uses methods of another class excessively.
· Inappropriate intimacy: a class that has dependencies on implementation details of another class.
· Refused bequest: a class that overrides a method of a base class in such a way that the contract of the base class is not honored by the derived class. See Liskov substitution principle.
· Lazy class / Freeloader: a class that does too little.
· Contrived complexity: forced usage of overly complicated design patterns where simpler design would suffice.
· Excessively long identifiers: in particular, the use of naming conventions to provide disambiguation that should be implicit in the software architecture.
· Excessively short identifiers: the name of a variable should reflect its function unless the function is obvious.
· 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.
· Ubercallback: a callback that is trying to do everything
· Complex conditionals: branches that check lots of unrelated conditions and edge cases that don't seem to capture the meaning of a block of code.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment