Mittwoch, 7. März 2007

Dieser Blog ist tot. Ich blogge weiter auf dem «Agile Trail».

Eine gute Idee: die Groovy Series

Eine richtig gute Idee hatten Sven Haiges und Dierk König mit den Groovy Series. Man nehme viele Inlinetests und einen Podcast und vermenge diese mit guter Didaktik und frischen Ideen und erhalte eine lehrreiche Unterhaltung.

Sven Haiges hat bereits mit den Grails Podcasts Tonnen an Informationen über Groovy und Grails über den World Wide Äther geschickt. Dierk König ist Autor des empfehlenswerten Buches Groovy in Action und bislang mehrmals in Svens Podcast "aufgetreten". Sowohl Sven als auch Dierk sind beide Autoren beim Java Magazin und als Comitter und Patcher in den Projekten Groovy und Grails engagiert. Das neue und gemeinsame Projekt der beiden heißt Groovy Series und ist ein Podcast.

In den Groovy Series werden die Sprachkonzepte und Features von Groovy behandelt, etwa Closures, Ranges, Strings usw. Zu Letzteren ist der erste Podcast bereits erschienen (Dauer: etwa 20 Minuten). Zu jedem Podcast gibt es entsprechend getaggte Code-Snippets auf Snipprl.com. In den Podcasts wird der Code des zugehörigen Snippets diskutiert und per Zeilennummer referenziert: ein Codereview per Podcast.

Der Code ist in Form von Inlinetests formuliert. Das sind Zusicherungen von Bedingungen mit dem assert-Schlüsselwort. Diese Tests sind sehr gut zu lesen und zeigen das Verhalten des Codes auf einen Blick.

Die Podcast haben eine gute Länge (bitte bloß nicht länger werden!) und was mir besonders gut gefällt ist der Code. Er scheint sehr umsichtig ausgewählt worden zu sein. So gibt es z.B. diese Stelle hier:

def replacement = 'problem'
// [...]
//GString
def gstring = "This is a test. No $replacement"
assert gstring.size() == 26
//now the chars in 'problem' count
assert gstring == 'This is a test. No problem'
Das finde ich schonmal sehr leicht verständlich, auch schon ohne Podcast - dachte aber auch zuerst, dass ich da nichts Neues würde lernen können. Im Podcast wies Dierk dann aber darauf hin, warum er keinen Stringvergleich, sondern einen Längenvergleich gemacht hat: weil size() eben schon etwas Besonderes ist an einem String. In Groovy ist size() konsequent überall dort verwendet worden, wo es in Java auch noch length() oder, wie bei Arrays, das Feld length gibt. Daher gilt
def s = 'foo'
assert s.length() == s.size()
Solche Details sind das Salz in der Groovysuppe und ich schätze diese Bedachtheit bei der Zusammenstellung der Inlinetests bei den Groovy Series sehr. Weiterhin ist es eine Freude, Dierk mit seiner ruhigen Art etwas erklären zu hören. Sven übernimmt den Part des Moderators und beide ergänzen sich sehr gut.

Fröhliches Podcasten wünsche ich Sven und Dierk - möget Ihr viel Erfolg mit Eurem Projekt haben!

blog comments powered by Disqus