Magic Literal: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
{{Baustelle}} | {{Baustelle}} | ||
{{Bewertungsrichtlinie|blatt=2|kategorie=Programmierstil|schweregrad=leicht}} | {{Bewertungsrichtlinie|blatt=2|kategorie=Programmierstil|schweregrad=leicht| | ||
beschreibung= | |||
Wir reden von "Magic Numbers", wenn im Quellcode zahlen rumfliegen. Was heißt das? | |||
Konkret bedeutet das, dass eine Variable mit einem Wert deklariert wurde, der sich niemals ändern kann und wird - eine konkrete Zahl. Würde man jetzt etwas im Quellcode ändern wollen, was voraussetzt, dass wir überall im Program zum Beispiel nicht mehr durch 2, sondern durch 3 teilen sollen, müsste man das überall händisch ändern. | |||
Das kostet Zeit, Nerven und man stelle sich vor man findet nicht alle... | |||
Besser wäre also, Zahlen als Konstante/Variable zu deklarieren. Wenn wir diese Konstante/Variable jetzt ändern wie in unserem Beispiel, müssten wir nur einmal eine 2 durch eine 3 ersetzen, sodass das Program genau das macht, was wir wollen. Es ist also schneller und vor allem viel weniger Arbeit. | |||
Das gilt auch für Zeichenketten. | |||
|negativ= | |||
<syntaxhighlight lang="Java"> | |||
final String password = "Test"; | |||
if (password.length() < 8) { | |||
System.err.println("Password too short, please choose a longer password!"); | |||
} | |||
</syntaxhighlight> | |||
|positiv= | |||
<syntaxhighlight lang="Java"> | |||
final String password = "Test"; | |||
final int minimalPasswordLength = 8; | |||
if (password.length() < minimalPasswordLength) { | |||
System.err.println(PASSWORD_ERROR_MESSAGE); | |||
} | |||
</syntaxhighlight> | |||
}} |
Version vom 9. Januar 2024, 16:28 Uhr
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
🤓 | Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 2 annotiert und ab Blatt 3 abgezogen wird. | 🤓 |
Beschreibung
Wir reden von "Magic Numbers", wenn im Quellcode zahlen rumfliegen. Was heißt das? Konkret bedeutet das, dass eine Variable mit einem Wert deklariert wurde, der sich niemals ändern kann und wird - eine konkrete Zahl. Würde man jetzt etwas im Quellcode ändern wollen, was voraussetzt, dass wir überall im Program zum Beispiel nicht mehr durch 2, sondern durch 3 teilen sollen, müsste man das überall händisch ändern. Das kostet Zeit, Nerven und man stelle sich vor man findet nicht alle... Besser wäre also, Zahlen als Konstante/Variable zu deklarieren. Wenn wir diese Konstante/Variable jetzt ändern wie in unserem Beispiel, müssten wir nur einmal eine 2 durch eine 3 ersetzen, sodass das Program genau das macht, was wir wollen. Es ist also schneller und vor allem viel weniger Arbeit. Das gilt auch für Zeichenketten.
Negativbeispiel
final String password = "Test";
if (password.length() < 8) {
System.err.println("Password too short, please choose a longer password!");
}
Positivbeispiel
final String password = "Test";
final int minimalPasswordLength = 8;
if (password.length() < minimalPasswordLength) {
System.err.println(PASSWORD_ERROR_MESSAGE);
}