Hartcodieren: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Bewertungsrichtlinie
{{CategoryBlock
|baustelle=Ja
|Baustelle=Ja
|blatt=2
|Java Grundlagen=Ja
|beschreibung=Implementieren wir Logik für unser Programm ist es sehr wichtig darauf zu achten, keine Logik ausversehen zu Hartcodieren.  
|Organisation=Nein
Das heißt, dass wir Variablilität in der Logik haben und verschiedene Ergebnisse erhalten können.
|Programmierstil=Nein
|Bewertungsrichtlinie=Nein
|blattAnnotation=1
|blattAbzug=1
}}
{{Inhaltsblock
|vorher=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 dahinter steckt, deshalb sollte immer hinterfragt werden, ob der geschriebene Code denn auch wirklich variabel ist.
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.
Gegebenenfalls muss eine Methode durch den Einsatz von mehr Variablen etwas erweitert werden, damit die Logik wirklich variabel ist.
Meißtens 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.
|schweregrad=leicht
}}
|negativ=<syntaxhighlight lang="Java">
{{Inhaltsblock
public static int clipPercentBad(final int percent) {
|color=red
|vorher=Negativbeispiel:
|Beispiel=public static int clipPercentBad(int percent) {
     if(percent < 0) {
     if(percent < 0) {
         return 0;
         return 0;
Zeile 22: Zeile 31:
     return percent;
     return percent;
}
}
</syntaxhighlight>
|beispielname=HartcodierenBad
 
|nachher=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.
}}
|positiv=<syntaxhighlight lang="Java">
{{Inhaltsblock
public static int clipPercentGood(final int percent) {
|color=green
|vorher=Positivbeispiel:
|Beispiel=public static int clipPercentGood(int percent) {
     return clip(0, 100, percent);
     return clip(0, 100, percent);
}
}
Zeile 41: Zeile 52:
     return value;
     return value;
}
}
</syntaxhighlight>
|beispielname=HartcodierenGood
 
|nachher=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.
|weiterlesen=Ja
|seite=Komplexität
}}
}}

Aktuelle Version vom 13. Oktober 2025, 15:13 Uhr

🚧 Diese Seite befindet sich in Bearbeitung 🚧

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.