Mittwoch, 17. Oktober 2007

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

[Grails eXchange] Session Agile Web Development with Grails (Venkat Subramaniam)

Etwa 25 Leute wollen Grails in agiler Aktion erleben. Was Venkat dann im Prinzip macht: Er erklärt Grails von Anfang an, immer wieder deutlich machend, wie agil Grails aufgebaut ist. Er macht das alles ohne Folien (die obligatorischen Startfolien mal ausgenommen), sondern live an seinem Mac.

Sein Beispiel umfasst bislang eine Domain-Klasse State, die einen zweistelligen Code aufnehmen soll (TX z.B. für Texas). Er schreibt zwei Integrationstests (Code soll zweistellig sein, Code soll nicht leer sein). Er schreibt die Tests in der Form


def state = new State(code:'Texas')
assertFalse state.validate()


Find ich nicht so gut: Man sollte nicht mit Negativ-Tests starten, sondern mit Positiv-Tests, also soetwas wie

def state = new State(code:'TX')
assertTrue state.validate()

Außerdem ist die Zusicherung, dass der Code nicht leer sein soll, schon enthalten in der Zusicherung, dass er zwei Zeichen lang sein soll, und damit redundant. Naja, will jetzt nicht kleinlich werden... :-)

Die Session richtet sich eindeutig an nicht agil Vorbelastete, denn Venkat erklärt alles sehr ausführlich und von Grund auf (Simplicity, Refactoring, Feedback, Unittest, Integrationstests, ...). Nichts Neues hier. Aber natürlich ist es schon beeindruckend, wie gut Grails für die agile Entwicklung genutzt werden kann.

Nach den Unittests scaffolded Venkat die Controller und Views für State und erstellt einen WebTest, auf den er kurz eingeht, indem er ihn ein wenig verändert.

Hm, bislang bin ich etwas enttäuscht über den Inhalt dieser Veranstaltung, werden doch hauptsächlich die Features von Grails erklärt und dann die Relation zur Agilität dargestellt. Ich hatte eigentlich erwartet, dass mehr auf den agilen Prozess beim Umgang mit Grails eingegangen wird. Naja, vielleicht kommt das ja später noch in der Session TDD mit Groovy und Grailsy.

Venkat zeigt, mit wie wenig Änderungen am Code Dinge in Grails erledigt werden können, für die man zig Zeilen Java und XML benötigt in herkömmlichen Webframeworks. Klar das dies sehr agil ist: Embrace Change!

Venkat geht viel auf DRY ein, und zeigt z.B. mit dem Templatesystem von Grails eindrucksvoll, wie man so ziemlich jede Redundanz in den Views eliminieren kann. Wer schon einmal mit Includes in JSP gearbeitet hat, wird weinen vor Freude, wenn er sieht, wie einfach und flexibel das mit Grails realisiert wird.

Venkat will zum Schluss noch ein wenig zu Ajax sagen. Hierzu führt er ein Grails-externes Tool vor, dass bestimmt schon viele von Euch kennen werden: FireBug. Ich benutze das selbst sehr gerne bei der Entwicklung von CSS und JavaScript und kann das nur wärmstens empfehlen. Venkat zeigt, wie man mit FireBug z.B. den Request und den Response untersuchen kann.

Venkat demonstriert, wie einfach man ein Formular ajaxifizieren kann und einen asynchronen Aufruf (remote) absetzt, der bei seiner Rückkehr mit der Antwort einen Bereich auf der Webseite updatet. Das Updaten macht er noch pulsierend, und den Effekt entwickelt er in der JavaScript Shell. Dieses Tool kannte ich noch nicht, sieht aber recht spannend aus. Mal ausprobieren.

So, das war's. Wie ich bereits vermutet hatte, soll auf den Prozess mehr in der TDD-Session eingegangen werden. Naja, für diejenigen, die Agile Development nicht kannten, war's bestimmt gut. Venkat ist ein guter Speaker und mir sehr symphatisch. Man merkt, dass er in seiner Sache aufgeht.

blog comments powered by Disqus