stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 320

Tag 320 von 365 · Experte · Monat 11: Optimierung und Fehlersuche

Wartbar bleiben

Wartbar bleiben: Einstellwerte oben sammeln, klare Namen statt a, b, c und Änderungen so festhalten, dass du in einem halben Jahr noch weißt, was läuft.

Lektion 18 Min. Woche 46

Das lernst du heute

  • Einstellwerte oben
  • Klare Namen
  • Änderungen dokumentieren

Im Kühllager läuft seit Wochen ein Script, das funktioniert. Jetzt soll die Ausschaltgrenze von 2 auf 4 °C. Du öffnest den Chip und findest sge c a 275.15. Welches Register war noch mal die Temperatur? Ist 275.15 die Grenze oder ein Umrechnungswert? Wartbarer Code beantwortet diese Fragen, bevor du sie stellst.

Einstellwerte oben

Alles, was ein Mensch je verstellen möchte, steht als define ganz oben, mit Einheit und Bedeutung im Kommentar. Grenzen, Zeiten, Bänder, Fehlwerte. Im Rumpf steht keine einzige Zahl, die man ändern wollen könnte. Wer die Grenze ändert, ändert eine Zeile und muss den Rest nicht verstehen.

Klare Namen

alias a r0 spart vier Zeichen und kostet jedes Mal Nachdenken. alias tLager r0 sagt, was drin ist. Dasselbe gilt für Geräte: Ein Gerät heißt „Kuehllager“, nicht „Sensor3“. Wenn alles, was zum Kühllager gehört, so heißt, findet man es im Spiel und im Code sofort.

Änderungen dokumentieren

Eine kurze Kopfzeile reicht: was das Script tut, welche Version, wer. Dazu ein define VERSION, das der Chip beim Start aufs Gehäuse schreibt. Dann siehst du im Spiel mit einem Blick, welche Fassung gerade läuft.

# --- Kuehllager ---
# Version 2, Dominik1199
# v2: Aus-Grenze 4 C statt 2 C (Gemuese erfror)
define VERSION 2 # Stand dieses Scripts
define EIN 281.15 # 8 C, darueber kuehlen
define AUS 277.15 # 4 C, darunter aufhoeren

Für die Liste aller Änderungen ist der Chip der falsche Ort – jede Kommentarzeile kostet Zeichen von den 4096. Notier im Script nur die letzte Änderung und ihren Grund. Die alten Fassungen liegen in deiner Bibliothek.

Achtung

Aufräumen heißt: Verhalten unverändert. Lass nach dem Umbenennen und Umstellen dieselben Testfälle laufen wie vorher. Ein vertippter alias-Name fällt sofort auf, eine vertauschte Grenze nicht.

Schaubild

Aufbau eines Programms im bewährten Stil # --- Hitzewarnung --- define GRENZE 303.15 # 30 C define SENSOR HASH("…") alias temp r0 alias heiss r1 start: yield … j start 1 · define alles Einstellbare 2 · alias Namen für Register 3 · Hauptschleife mit yield, endlos
Oben der Einstellblock, darunter Geräte und Register, dann die Schleife in nummerierten Abschnitten. Wer nur einen Wert ändern will, muss nur oben suchen.

Übung

Aufgabe

Das Script im Startcode kühlt das Kühllager richtig, ist aber unwartbar. Räum es auf: alle Zahlen und Hashes als define mit Kommentar (keine rohe Zahl mehr im Rumpf), sprechende alias-Namen, Abschnitte. Füge define VERSION 2 hinzu und schreib die Version beim Start mit s db Setting aufs Gehäuse. Das Verhalten bleibt genau gleich.

Hinweise

Hinweis 1

Die drei rohen Hashes sind Gassensor, Wandkühler und LED-Anzeige – schreib sie als HASH("Structure…") in defines.

Hinweis 2

Auch 281.15, 277.15, 273.15 und -999 bekommen ein define.

Hinweis 3

s db Setting VERSION gehört vor das Label der Schleife.

Quiz

4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall