Hartcodieren: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
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. | Das heißt, dass wir Variabilität in der Logik haben und verschiedene Ergebnisse erhalten können. | ||
| Zeile 9: | Zeile 6: | ||
Gegebenenfalls muss eine Methode durch den Einsatz von mehr Variablen etwas erweitert werden, damit die Logik 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. | Meistens kristallisiert sich eine Lösung schon durch Verallgemeinerung oder Parametrisierung einer speziellen Lösung heraus. | ||
== Negativbeispiel: == | |||
<syntaxhighlight lang="Java"> | |||
public static int clipPercentBad(int percent) { | public static int clipPercentBad(int percent) { | ||
if(percent < 0) { | if(percent < 0) { | ||
| Zeile 25: | Zeile 23: | ||
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. | 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: == | |||
<syntaxhighlight lang="Java"> | |||
public static int clipPercentGood(int percent) { | public static int clipPercentGood(int percent) { | ||
return clip(0, 100, percent); | return clip(0, 100, percent); | ||
| Zeile 44: | Zeile 44: | ||
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. | 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. | ||
Version vom 25. September 2025, 12:38 Uhr
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.