Jedem fällt wohl auf die Schnelle ein Beispiel ein, wo er in seinem Leben schon mal etwas veranschaulicht hat, ob nun für sich Selbst oder für Andere:

  • Das fängt schon in der Schule an; man hält ein Referat über ein kompliziertes Thema und muss dieses seinen Klassenkameraden verständlich erläutern.
  • Man arbeitet in der Uni an einem Text mit einer schier unermessbarer Tiefe und muss sich selbst veranschaulichen, was da nun eigentlich vorgeht.
  • Oder man ist auf der Arbeit in einer Position in der man neue Kollegen in ein Thema einführen muss, um diese nicht mit der Fülle an Informationen zu erschlagen, zieht man zum Vergleich einen ähnlichen, bereits bekannten Ablauf her.

In meinem praktischen Beispiel habe ich das neue Projekt, dass mein Mitazubi und ich nun zu bearbeiten haben.

Wir schreiben im Moment einen “Parser”, der für uns Informationen aus Übersetzungsdateien von Icinga Web 2 auslesen und in eine sortierte Array-Struktur packen soll.

Diese sind in dem .po Format von Poedit strukturiert.

Das sieht ungefähr so aus:

#: /this/is/the/location/toTranslate.php
#| msgid “tranlsate this”

msgid “Translate this.”
“This too, please”
msgtxt “Übersetze dies.”
“Das auch, bitte”

Diese Datei wird nun sortiert nach den verschiedenen Zeilenanfängen, die bereits anzeigen was der sich dahinter befindende String aussagt.

Die Veranschaulichung zur Lösung ist bei uns eine Art Wasserfall/Trichtersystem:
Die Zeile #| msgid “tranlsate this” würde wie folgt sortiert werden

blogpic

 

Im Code haben wir das mit einer sehr verschachtelten Konstruktion mit einigen Switch-Cases gelöst.
(Und dieses Chaos auch schon längst Grundüberholt)

switches

Dies zeigt auch, dass die Visualisierungen die wir machen um uns das Konzept darzustellen teilweise von der Umsetzung her stark abweichen. Solange es uns jedoch hilft die Übersicht zu bewahren, ist eine visuelle Darstellung immer gut.

In den meisten Fällen führt das Programmieren ohne visuelle Umsetzung dazu, dass der Code ungeordnet ist und man viele Fälle übersieht, die man nachher durch “dirty” Fixes wieder zu richten versucht. Das macht den Code unleserlich und führt dazu, dass die gesamte Arbeit umsonst war, da man den Code komplett neu strukturieren und neu schreiben muss.

Dies zeigt sich auch an unserem Projekt. Wir arbeiten gerade an der zweiten Version des Parsers, da wir das Problem in der ersten Version relativ ungeordnet angegangen sind, da wir fälschlicherweise angenommen hatten, dass so ein “kleines” Progrämmchen keiner größeren Planung bedarf. Oh wie wir uns geirrt haben.

Die jetzige Planung hat sich etwas gedehnt…

parser

Also daran denken: erst planen, dann schreiben.

Jennifer Mourek

Autor: Jennifer Mourek

Jennifer (von eigentlich jedem nur "Feu" genannt) verbrachte ihre Kindheit im schönen Steigerwald und kämpfte sich bis zum Abitur durch die Schule. Seit September 2016 unterstützt sie nun im Rahmen ihrer Ausbildung zum Fachinformatiker die Development Abteilung bei Netways und widmet sich dort dem Web Development. Ihre Freizeit verbringt sie hauptsächlich in den virtuellen Welten von 'Dota 2' und diversen anderen Games, an der Kletterwand in der Boulderhalle oder damit ihren Freunden und Kollegen auf die Nerven zu gehen.