Hartcodieren
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
🤓 | Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 2 annotiert und ab Blatt 3 abgezogen wird. | 🤓 |
Beschreibung
Implementieren wir Logik für unser Programm ist es essenziell, darauf zu achten, keine Logik aus Versehen zu hartcodieren. Das heißt, dass wir Variabilität in der Logik haben und verschiedene Ergebnisse erhalten können.
Manchmal kommt es vor, dass bestimmte Verhaltensweisen des Programms fest implementiert werden, ohne dass eine wirkliche Logik dahintersteckt. Deshalb sollte immer hinterfragt werden, ob der geschriebene Code denn auch wirklich variabel ist.
Gegebenenfalls muss eine Methode durch den Einsatz von mehr Variablen etwas erweitert werden, damit die Logik wirklich variabel ist. Meistens kristallisiert sich eine Lösung schon durch Verallgemeinerung oder Parametrisierung einer speziellen Lösung heraus.
Negativbeispiel
public static int clipPercentBad(int percent) {
if(percent < 0) {
return 0;
}
if (percent > 100) {
return 100;
}
return percent;
}
Hier wird deutlich erkennbar, dass diese Methode nur eine spezifische Anwendung hat. Auch werden hier Werte mehrmals im Quellcode wiedergeschrieben. Das macht die Wartung der Stelle um einiges aufwändiger.
Positivbeispiel
public static int clipPercentGood(int percent) {
return clip(0, 100, percent);
}
public static int clip(final int min, final int max, final int value) {
if(value < min) {
return min;
}
if (value > max) {
return max;
}
return value;
}
Hier sind die Anwendungsfälle deutlich vielfältiger. Auch muss der Code kaum gewartet werden, weil keine spezifischen Werte ausgetauscht werden müssen. Diese hängen ja von den Parametern ab und sind keine konstanten Werte.
Wenn du diese Seite interessant fandest, findest du hier noch mehr Seite(n) dazu:
Komplexität