Clean Code

Erstelle für die folgenden Aufgaben einen Fork vom Repository m426-2026/red-rigged-raffle und klone diesen.

Aufgabe 1: Bezeichner verbessern

Der Insolvenzverwalter möchte das Vermögen von ApoRed verwerten. Hierzu gehört u.a. die Gewinnspiel-Software Red Rigged Raffle der Software-Firma Code Red, deren Daten auf MiiMiis Festplatte gefunden worden sind. Da Apo (das heisst Red!) beim Programmieren selber Hand angelegt hat, ist der Code für Aussenstehende etwas schwer verständlich.

Hilf dem Insolvenzverwalter den Code zu verstehen, indem du die Bezeichner sinnvoll umbenennst.

Du kannst den Code über das Programm (main.ts) folgendermassen testen:

deno run main.ts

Willenskrauft, ich sag’s euch, Freunde! Willenskrauft, ich sag’s euch, Freunde!

Aufgabe 2: Code aufteilen

Die Gewinnspiel-Logik in absneakender_hase.ts besteht praktisch nur aus einer grossen Methode – die nun hoffentlich nicht mehr absneaken heisst. Versuche die verschiedenen Teile dieser Methode zu verstehen – und die einzelnen Aspekte des Problems zu unterscheiden. (Stelle dir die Frage, aus welchen Teilproblemen das gesamte Problem besteht.)

Teile den Code auf, indem du die verschiedenen Aspekte der Methode in Untermethoden auslagerst, welche du dann von der Hauptmethode aus aufrufst.

Führe das Programm anschliessend testhalber erneut aus.

Mehr Nikes als Likes! Mehr Nikes als Likes!

Aufgabe 3: Fehlerkorrektur

Der Untersuchungsrichter hat Interesse für die Funktionsweise der Gewinnspiel-Software Red Rigged Raffle geäussert. Es steht der Verdacht im Raum, dass diese Software nicht richtig funktioniere.

Schreibe einen Unittest (siehe Beispielcode in reisender_hase_test.ts), um den Verdacht des Untersuchungsrichter zu prüfen. (Tipp: Da das Ergebnis der Verlosung zufällig ist, kannst du nicht auf exakte Werte prüfen, aber auf die Anzahl verloster Preise.) Wichtig: Der Test sollte einen Fehler ergeben!

Führe den Testfall folgendermassen aus:

deno test

Versuche den Fehler durch eine Analyse des Programmcodes nachzuvollziehen. Korrigiere anschliessend den Fehler, bis der Unittest erfolgreich durchläuft.

Das Warten hat sich gelohnt! Das Warten hat sich gelohnt!

Zusatzaufgabe: Pull Request

Erstelle einen Pull Request, falls du eine Rückmeldung zu deiner Arbeit wünschst.

Herzliche Gratulation! Dank dir kann der Insolvenzverwalter nun die verbleibenden Sachwerte von ApoRed an dessen Gläubiger verlosen; und der Untersuchungsrichter kann dem Main Character den Prozess machen.

You don’t need to be perfect when you look good. You don’t need to be perfect when you look good.

Zusatzaufgabe: Glossar

Vergleiche beim Pull Request die ursprünglichen mit den von dir gewählten Bezeichnern. Erstelle ein kleines Glossar Red – Deutsch bzw. Red – Englisch aus den “übersetzten” Bezeichnern. (Du kannst diese Tabelle bzw. Liste mit dem Pull Request einreichen oder nachträglich ins Repository aufnehmen.)