Hartcodieren: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 2: Zeile 2:
|baustelle=Ja
|baustelle=Ja
|blatt=2
|blatt=2
|beschreibung=Implementieren wir Logik für unser Programm ist es sehr wichtig darauf zu achten, keine Logik ausversehen zu Hartcodieren.  
|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 Variablilitä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.


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
|schweregrad=leicht
|negativ=<syntaxhighlight lang="Java">
|negativ=<syntaxhighlight lang="Java">
public static int clipPercentBad(final int percent) {
public static int clipPercentBad(int percent) {
     if(percent < 0) {
     if(percent < 0) {
         return 0;
         return 0;
Zeile 26: Zeile 26:
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">
|positiv=<syntaxhighlight lang="Java">
public static int clipPercentGood(final int percent) {
public static int clipPercentGood(int percent) {
     return clip(0, 100, percent);
     return clip(0, 100, percent);
}
}

Aktuelle Version vom 17. Oktober 2024, 11:50 Uhr

🚧 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