Magic Values
Letzte Woche hab ich ja schon etwas über Code Smells geschrieben. Einen weit verbreiteten Code Smell, nämlich die Magic Values, habe ich letztens mal wieder angetroffen und so nehme ich das mal zum Anlass, darüber etwas zu schreiben.
Der Begriff “Magic Value” oder “Magic Number” hat mehrere Bedeutungen. Hier geht es um den Code Smell der Magic Values, also insbesondere nicht um besondere Werte (d.h. Bytefolgen) als Erkennungszeichen in Dateiheadern o.ä.
Es geht also um Code, den man häufig vorfindet, der aber verbesserungswürdig ist. Hierzu sehen wir uns ein paar Beispiele an und werden unterschiedliche Arten von Magic Values ausmachen können:
Magic Values 1. Art: Unveränderliche Werte
1 | ... days * 1440 ... |
Warum nun days mit 1440 multipliziert wird, wird aus dem Code nicht klar.
Besser:
1 2 3 4 5 6 7 | // mit einer Funktion ist es klarer function daysToMinutes(ADays: Integer): Integer; begin return ADays * 1440; end function; ... daysToMinutes(days) ... |
Aber auch das geht besser:
weiter lesen »