Coding Katas: FizzBuzz und Potter [endlich-clean.net]
Ich habe gestern zwei Coding Katas bearbeitet:
- FizzBuzz http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz
- Potter http://codingdojo.org/cgi-bin/wiki.pl?KataPotter
Die erste ist inhaltlich sehr einfach. Es geht dabei vor allem darum, testgetrieben in Baby-Steps zu arbeiten. Ich hatte dabei keine Probleme.
Bei der zweiten wird’s schon schwieriger. Die erste Herausforderung besteht darin, die Anforderung zu verstehen. Es geht um eine Rabattierungsregel für Bücher. Hat man die Regeln mal verstanden, kommt die zweite Herausforderung, nämlich die Frage nach der algorithmischen Umsetzung.
Da ich es gewohnt bin, testgetrieben zu arbeiten, hatte ich mit den ersten Schritten keine Probleme. Die ersten Tests waren schnell erstellt und haben die Implementierung schnell in die richtige Richtung getrieben. Dann kamen jedoch die komplizierteren Beispiele an die Reihe und ich habe länger mit der Implementierung gekämpft. Eine Idee für die Herangehensweise hatte ich schnell, aber bei der Umsetzung war ich geneigt, bereits zu früh “schönen” Code schreiben zu wollen. Als ich das gemerkt habe, habe ich zunächst eine Implementierung runtergeschrieben, welche die Anforderungen erfüllte. Beim weiteren Ergänzen von Tests traten dann noch einige Unzulänglichkeiten zu Tage, aber irgendwann war die Implementierung korrekt. Erst dann habe ich mit dem Refaktorisieren weiter gemacht. Das ging dann viel einfacher als bei meinem Versuch, schon die unfertige Implementierung zu refaktorisieren.
Fazit: vor allem die zweite Kata war für mich eine gute Übung. Ich habe erkannt, dass ich mit dem Refaktorisieren tendenziell zu früh beginne. Das werde ich weiter beobachten.
September 18th, 2009 at 8:05
[...] habe ich über meine Erkenntnisse beim Bearbeiten zweier Code Katas berichtet. Ralf hat nun eine Root Cause Analysis angestellt und [...]