TDD Kata 01 – The Bowling Game

Eins meiner Ziele für 2017 ist es, TDD Katas zu einem Teil meiner täglichen Routine zu machen. Was eine Kata ist? Genau wie in der Kampfkust geht es um Training durch Wiederholung, die selbe Übung wieder und wieder zu machen, bis man sie im Schlaf beherrscht.

Einige würden sagen, es ist der einzige Weg, TDD zu lernen. Das macht aus mehreren Gründen Sinn: Man beginnt in einem kleinen, abgeschlossenen Bereich und kann reine testgetriebene Entwicklung anwenden. So kann man die neue Denkweise (den red-green-refactor Zyklus) ohne Frustration trainieren. Es bedeutet, nicht gleichzeitig um die Eigenarten eines Frameworks herum arbeiten zu müssen.

Du willst TDD lernen, aber fühlst dich nicht bereit, es in richtigen Projekten anzuwenden? Traniere mit Katas, nur 15-30 Minuten jeweils. Motivation nötig? Schließ dich mir an!

Jede Woche werde ich eine neue Kata posten, die ich mindestens drei mal wiederholen will und das Gelernte der letzten Woche teilen. Hier ist ein RSS feed für die Kata Posts!

Ich habe vor, verschiedene Programmiersprachen und verschiedene Test-Frameworks auszuprobieren. Wenn du gerade erst mit TDD beginnst, kannst du aber genausogut bei einer einzigen bleiben. Und wenn du nicht sicher bist, wann du “richtig” anfangen solltest, probier folgendes:

Erste Kata: The Bowling Game

Uncle Bob’s Bowling Game Kata ist eine bekannte Kata um mit Test Driven Development zu beginnen.

Für den Anfang, folge den Schritten in der Power Point Präsentation so genau wie möglich (Direkter Link zur PPT)

Es wird sogar empfohlen, mit sehr kleinen Schritten anzufangen, wenn es deine erste Kata ist, und am ersten Tag nur den ersten Test zu bearbeiten bis er verinnerlicht ist:

If you wish to try this style of learning, I suggest you proceed by memorizing it in short sections. Fully learn one section before adding the next. I have broken the kata up into five short sections. Learn each in order, and don’t learn the next until you have mastered the previous. Move slowly and deliberately. DO NOT RUSH. A kata needs to seep into your bones, and this take time.

Meine persönlichen Ziele diese Woche:

  • Die Kata in Ruby ausprobieren
  • Sie auch in PHP durchführen, mit Knapsack Collections