Scriptorama.nl

Header image showing a keyboard, mouse, laptop and books on design patterns

Voor als er een luchtje aan je code zit…

Twee en een half jaar geleden ben ik bij m'n ouders vertrokken om met m'n vriendin in Amsterdam gaan wonen. Het is compleet cliché, ik weet het, maar als je net (en wie houd ik voor de gek, daarna ook nog wel) op jezelf gaat wonen gaat er nog wel eens het een en ander mis, koelkast-managements-gewijs. Dat je denkt van, "het ziet er uit als kaas... het ruikt als kaas... maar IEKS!! das melk van 2 maanden geleden! Oeh.. stukjes.. hmm"... Ehh.. you get the idea ;-)

Hetzelfde idee wil wel eens gebeuren met code die je schrijft.

Soms schrijf je namelijk code waar je eigenlijk wel van weet dat het niet helemaal juist is, maar op die manier krijg je het wel snel gedaan. Je hebt dan in je achterhoofd dat je dat nog eens netjes gaat oplossen, maar je weet hoe dat gaat. Dat vergeet je. Net als die melk in de koelkast. Soms gebeurt het ook gewoon dat je niet beter weet. Dat je niet wist dat de koelkast uberhaupt aan gezet moest worden, zeg maar. Tja, en na verloop van tijd gaat dat dus, net als je koelkast, virtueel stinken.

Om dit bespreekbaar te maken heeft men daar een naam voor bedacht: code smells. Om mijn vergelijking compleet te maken: "Het ziet er uit als code.. het ruikt als code.. maar IEKS!! DAS TIGHTLY-COUPLED!". Zeg maar. Een code smell beschrijft een situatie dat een potentieel probleem is en veelal ook een oplossing voor het probleem.

Jeff Atwood van CodingHorror.com heeft een lijst samengesteld van deze code-smells. Een paar voorbeelden:

  • Long Parameter List - The more parameters a method has, the more complex it is. Limit the number of parameters you need in a given method, or use an object to combine the parameters.
  • Duplicated code - Duplicated code is the bane of software development; stamp out duplication whenever possible. And be on the lookout for more subtle forms of duplication as well. Don't Repeat Yourself.
  • Inappropriate Intimacy - Watch out for classes that spend too much time together, or classes that interface in inappropriate ways. Classes should know as little as possible about each other.

De hele lijst van Code Smells.

Reageer ook!

'Refactorings' voor je riekende code: http://wiki.java.net/bin/view/People/SmellsToRefactorings en http://www.industriallogic.com/papers/

Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>