Alexander (HH): Änderungsschritte präsentieren

Beitrag lesen

Moin Moin!

Also ich kenne kein Werkzeug, was so etwas leisten würde. Aber ich denke, man könnte sich etwas ähnliches bauen, indem man einen diff immer zwischen zwei aufeinanderfolgenden Versionen des SVN Repository macht, und diese dann als Grafiken hintereinanderschachtelt.

Das war auch meine Grundidee, das scheitert aber an der zur Verfügung stehenden Zeit und am Platzbedarf:

* Im Moment ist einfach keine Zeit da, so etwas "nebenher" zu bauen.
* Zeilenlängen von deutlich mehr als 100 Zeichen, und eine Dateigröße von rund 3000 Zeilen. Manche eigentlich trivialen Schritte streuen wie Schrot im Code, das diff wird also entweder vollkommen unleserlich oder groß wie ein Werbeplakat.

Armins ruhige Stimme musst Du aber dann selbst dazusynchronisieren. :)

Hehehe ...

Als Batch-Datei müsste das allein mit Subversion-, Datei- und Grafikbefehlen (hier muss man schauen, ob die grafischen Diff-Tools eine Shell-Schnittstelle bieten) gehen.

Ich hab ja auch ein Linux zur Verfügung, da könnte man mit ImageMagick & Co. auf der Kommandozeile schon eine ganze Menge anstellen. SVN::Web bringt auch schon Tools mit, um Diffs aus dem SVN zu ziehen und sie ansehnlich einzufärben (via HTML/CSS).

Wahrscheinlich könnte man mit einer passenden Aufbereitung der Rohdaten à la SVN::Web und mit einer Flash- oder AJAX-Anwendung schon eine ganze Menge erreichen.

Ich hab noch nicht mal eine konkrete Vorstellung, wie ich die Schritte präsentieren will. Mir spuken ein paar technisch-wissenschaftliche Flash-Präsentationen im Kopf rum (z.B. Zoom rein von Mensch bis zum Quark, Zoom raus vom Mensch bis zum beobachtbaren Universum, oder auch dieser Größenvergleich), und auch die Idee, das Wandern von Code in den Arbeitsschritten zu animieren.

Beispiele:

* Die Zeilen 1500 bis 1540 beschließen, dass sie besser eine eigene Funktion werden, ziehen sich seitlich aus dem Code raus, ersetzen sich durch einen Aufruf der neuen Funktion, und verpassen sich selbst einen entsprechenden Funktions-Header. Dann wandern sie mit ihrem neuen Funktionsheader an eine andere Stelle im Code, weiter oben. (An diesem Punkt haben wir das Niveau der Maus erreicht.) Das entspricht in diesem Fall nämlich sehr genau meiner Arbeitsweise. Und anhand des SVN-Repositories und der Code-Struktur müßte man sich die Informationen tatsächlich aus den vorhandenen Daten rausziehen können.

* Analog das (leider gelegentlich notwendige) Umbenennen von Variablen und Funktionen. Aus der 10.000-Fuß-Perspektive sieht man ein paar "zappelnde" Variablen, die alle synchron von foobar zu Foo_Bar mutieren. Vielleicht ist das mit Zoom-Effekten zu illustrieren: Angefangen bei der Deklaration der Variable rauszoomen auf den gesamten betroffenen Code. Auch das sollte mit den vorhandenen Daten "findbar" sein.

* Toter Code, unbenutzte Variablen verrotten oder faden zur Hintergrundfarbe.

Soweit der Spieltrieb. Etwas nüchterner ohne die Animationen durch ein paar Pfeile und Klammern für wandernden Code, durch Durchstreichen und neuen Namen darüber / daneben schreiben für Umbenenn-Aktionen, durch einfachees Durchstreichen / Ausgrauen für Löschaktionen. Daneben / darüber der Commit-Kommentar, und eine einfacher Weiterblättern-Funktion.

Ist übrigens ein spannendes Problem, dessen Fortschritt mich interessiert.

Ja, aber im Moment sieht es leider aus wie eine Sackgasse, wie so viele Anläufe, soziale Probleme technisch zu lösen. Das Problem ist doch, wie ich die einzelnen Schritte so vorkauen kann, dass sie ohne viel Widerstand im Verstand meiner Kollegin ankommen. Und das dahinter liegende Grundproblem ist, dass meine Kollegin sich die einzelnen Arbeitsschritte nicht selbst anhand von Commit-Kommentar und (grafisch aufbereitetem) Diff erarbeiten kann oder will.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".