„Change is inevitable – except from a vending machine.“ (Robert C. Gallagher)

Bereit für die erste Übung? Die Definition „Dojo“ wurde im letzten Blogbeitrag („Dojo – Vom Coder zum Entwickler“) ausführlich erklärt und wir können nun mit unserem ersten Beispiel starten: Also Teams bilden, Workspace einrichten und los geht’s …

Die Aufgabe

Die Aufgabe besteht darin, einen Getränkeautomaten zu implementieren.

Versetzen wir uns in folgende Situation: Vom Durst getrieben stehen wir vor einem Getränkeautomaten und werfen Münzen ein. Am Display können wir den eingeworfenen Betrag ablesen. Durch drücken einer Taste für ein jeweiliges Getränk erfahren wir den zu zahlenden Preis. Wenn ausreichend Münzen eingeworfen wurden, können wir das gewünschte Getränk auswählen. Jetzt fehlt eigentlich nur noch das Wechselgeld.

Die erste Version unseres Getränkeautomaten wäre somit definiert. Hier nochmal der Funktionsumfang:

  • Entgegennahme der Münzen
  • Angabe des Kredits
  • Angabe des Preises
  • Ausgabe des Getränks
  • Rückgabe des Wechselgeldes (als Betrag)

Falls die Zeit reicht, könnte man auch noch die Rückgabe des Wechselgeldes in den einzelnen Münzen und den Bestand berücksichtigen. Für diesen Dojo wird keine Consolenausgabe oder UI benötigt. Das Designen einer sauberen API und das Üben von TDD stehen hier im Vordergrund.

Der Dojo

Cycle 1: Wir wollen eine 10 Cent Münze einwerfen und den Kredit ablesen.

Test:

Implementierung:

Cycle 2: Wir wollen mehrere Münzen einwerfen und den aufsummierten Kredit ablesen.

Test:

Implementierung: