Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
Delphi 12 Athens
|
AW: Global Day of Code Retreat - Bielefeld
19. Nov 2017, 12:09
Thread.Resume;
So, wollte nur kurz mal meine Eindrücke bei dieser Veranstaltung teilen.
Erwartungsgemäß war ich da schon der Exot! Einerseits wegen meines Alters - die überwiegende Mehrheit war allenfalls halb so alt wie ich - andererseits wegen Delphi. Obwohl offenbar ein paar der älteren Anwesenden früher schon mal mit Delphi gearbeitet hatten, war keiner in der Lage auch nur halbwegs produktiv damit umzugehen (zumindest hat sich keiner getraut). Allerdings war das Interesse für Delphi dafür umso größer. Von den sechs Pairing-Sessions durfte ich fünf aktiv in Delphi durchführen, während ich in der einen Session meinem vorherigen Pairing-Partner bei Python zusehen konnte. Alle meine fünf Pairing-Partner wollten dann lieber sehen wie man das in Delphi macht, als selbst den aktiven Part in ihrer eigenen Programmiersprache zu übernehmen.
Alle Sessions waren streng Test Driven Design, was unter Delphi unter Verwendung von DUnitX und TestInsight den IDEs der anderen Programmiersprachen in nichts nachsteht. Das, zusammen mit der extensiven Verwendung des ModelMaker Code Explorers, hat dann auch zu einigem Erstaunen über die Schnelligkeit und Einfachheit geführt, mit der solche Techniken (ja, auch) in Delphi umsetzbar sind.
Wie schon erwähnt, wird bei jedem Code Retreat das Game of Life programmiert. Dabei geht es aber eben nicht um die Fertigstellung, sondern um die Herangehensweise. Innerhalb der 45-Minuten-Sessions ist das auch gar nicht umfassend zu lösen. Wer das Spiel fertig sehen möchte: Es ist Bestandteil der Delphi Beispiele für die Parallel Library.
Nachdem die erste Session ohne weitere Constraints lediglich zum Aufwärmen und Feintuning der Entwicklungsumgebung diente, wurde es in den folgenden Sessions dann schon kniffliger. Für die zweite Session hieß es dann: Implementierung des Tests und der zu testenden Methode in maximal zwei(!) Minuten. Das zwingt dann schon zu einer sehr fein granulierten Aufteilung der Tasks.
Ein persönliches Highlight für mich war die Session Coding like 1969, bei der innerhalb der Session nur einmal nach 15 Minuten und dann wieder nach 40 Minuten das Programm gestartet werden durfte. Die verbleibenden 5 Minuten waren dann noch für kleine Korrekturen vor dem finalen Programmlauf, bei dem tunlichst alle Tests auf grün stehen sollten. Aus eigener Erfahrung kannte ich diese Vorgehensweise noch aus meiner Lochkartenzeit am LRZ in München. Dort konnte zwischen dem Einlesen des Lochkartenstapels und dem Abholen des Printouts schon mal eine zweistündige Analysis-Vorlesung liegen. Wenn dann nur ein Compilerfehler auf dem Ausdruck stand war das schon bitter.
Leider konnte ich an einer der Sessions nicht wirklich teilnehmen, da dort zwei gleich-sprachige Partner erforderlich waren, die während der Session nur über den Code kommunizieren. Der eine schreibt die Tests und der andere muss nur aus dem Testcode die Methode so implementieren, daß der Test auf grün geht. Ziel war hier die Verwendung aussagekräftiger Namen für Methoden und Variablen. Wäre schön, wenn sich beim nächsten Mal vielleicht doch der eine oder andere beteiligen könnte. Dann muss ich nicht wieder eine gespaltene Persönlichkeit vortäuschen.
Zum Abschluss kamen dann die üblichen Fragen wie: Was war gut? - Was könnte beim nächsten Mal verbessert werden? - Was mache ich ab Montag anders? Die letzte Frage kann ich für mich vielleicht so beantworten: Im Großen nicht viel, weil ich die meisten der angesprochenen Techniken und Hinweise bereits berücksichtige - im Kleinen werde ich versuchen, diesen Techniken noch etwas mehr Gewicht zu geben als bisher. There is always room for improvement!
--------------------
Kleine Anekdote am Rande: Obwohl fast die gesamte Gruppe mit GC-Sprachen arbeitete (und ein Java-Entwickler am Ende der Session betonte, froh zu sein in Java entwickeln zu dürfen), war es für jeden in der Mittagspause selbstverständlich, sein Tablett mit dem gebrauchten Geschirr zur Sammelstelle zu bringen, den Müll sauber getrennt zu entsorgen und das Geschirr und Besteck auf die jeweiligen Stapel zu sortieren.
|