Warum ein TDD Coding Dojo? 1. Bewusste Praxis 2. Welche Fähigkeiten durch diese Kata vermittelt werden sollen 3. Softwareentwicklung mit nachträglichen Tests (Test Last) 4. Softwareentwicklung mit TDD (Test First) 3. Kata 1. FizzBuzz Kata (3 Aufgaben) 1. Erläuterung 2. Durchführung 3. Retrospektive 4. Diskussion
- das planvolle und zielgerichtete Üben - ist eine Möglichkeit um methodisch abgestimmt auf bestimmte Höchstleitungen hin zu trainieren. Dabei wird ein überdurchschnittlich hohes Niveau auf einem stark eingegrenzten und spezialisierten Gebiet angestrebt. (nach Ericsson, The role of deliberate practice in the acquisition of expert performance, 1993) [Academia.edu] “But what changes people is what they do, not what they read. How many diet books have I read? Am I thinner?” [Jeffries2005]
mit der Entwicklungsumgebung Deiner Wahl an. • Ein Testframework wird benötigt. ODER • Verwende das vorbereitete Projekt: - Web Adresse: https://github.com/marhan/kata_fizz_buzz - Git Repository: [email protected]:marhan/kata_fizz_buzz.git FizzBuzz Kata - Setup
Euch vor Ihr seit Schüler im Mathematik-Unterricht und der Lehrer teilt Euch mit, in der nächsten Unterrichtsstunde ein neues Spiel zu spielen, um den Unterricht etwas aufzulockern. • Er erläutert das Spiel wie folgt: „Ich werde Einen nach dem Anderen aufrufen und bitten die als nächstes folgende Zahl zu sagen, beginnend mit der Zahl 1.“ • „Der lustige Teil dieses Spiels ist folgender: Wenn die Zahl durch 3 teilbar ist, soll Fizz anstelle der Zahl gesagt werden. Wenn die Zahl durch 5 teilbar ist, soll anstelle der Zahl Buzz gesagt werden.“ • Um nicht Gefahr zu laufen vor der gesamten Klasse eine falsche Antwort zu geben, hast Du Dich entschlossen bis zur nächsten Unterrichtsstunde ein Programm zu schreiben, welches Dir die richtigen Antworten liefert. FizzBuzz-Kata 1/3
• Waren die Anforderungen für Dich verständlich und vollständig? • Hast Du erst am Ende refaktorisiert oder schon früher? • Was must Du tun, wenn eine neue Anforderung hinzukommt? Retrospektive 1/3
Unterrichtsstunde verlief gut und der Lehrer ist so zufrieden mit der Klasse, dass er beschließt, dieses Spiel weiter zu führen. • Er führt folgende Erweiterung ein: „Wenn die Zahl durch 3 und durch 5 teilbar ist, soll FizzBuzz anstelle der Zahl gesagt werden.“ • Wieder möchtest Du vor der Klasse glänzen und erweiterst Dein Programm. FizzBuzz-Kata 2/3
diese Unterrichtsstunde verlief gut. Der Lehrer nutzt den Run der Klasse und erweitert das Spiel erneut. • Er führt folgende Erweiterung ein: „Wenn die Zahl durch 7 teilbar ist, soll Whizz anstelle der Zahl gesagt werden.“ • Du bist bereits ein Experte auf diesem Gebiet und erweiterst Dein Programm mit Leichtigkeit. FizzBuzz-Kata 3/3
• Konntest Du Code Smell vermeiden? • Konntest Du neue Anforderungen leicht hinzufügen? • Gibt es Teile Deiner Lösung, die nicht Clean sind? Retrospektive 3/3
Aspekt Deiner Lösung gefällt Dir am meisten? • Wo und wie hast Du TDD am besten umsetzen können? • Hast Du etwas neues gelernt? • Ist etwas ungewöhnliches passiert? • Welches Thema möchtest Du weiter vertiefen? • Was würdest Du bei dem nächsten Dojo ändern wollen? • Was wirst Du in Zukunft anders machen? Diskussion