Mittwoch, 23. Mai 2018

Tja, und nun?

Es ist mal wieder Zeit für einen kurzen Zwischenbericht. Vorweg: Es läuft besser, als gedacht - und es macht noch dazu Spaß! Bis zum Abgabetermin am 17.6. für den ersten Teil des Programmierpraktikums ist es noch knapp ein Monat. Anfangs dachte ich, der Zeitplan sei relativ knapp bemessen, allerdings bin ich mit dem Anforderungsprofil aus Teil 1 schon seit einigen Wochen fertig. Zudem habe ich gespoilerte Features aus Teil 2 (Undo/Redo-Funktionalität) auch schon implementiert. Tja, und jetzt hocke ich rum und warte. Den Algorithmus selbst will ich gar nicht mehr großartig angreifen, das ist ein sensibles Konstrukt. Auch mit dem Drumherum bin ich zufrieden, selbst Icons und solch sinnloses Bling Bling habe ich eingebaut. Aktuell kümmere ich mich noch ein wenig um einheitliche Variablennamen und eine bessere Javadoc-Dokumentation, aber das müsste eigentlich nicht mehr sein.

Im vorigen Posting habe ich ja bereits erwähnt, dass ich mich letztlich nicht für ein spezielles  Designpattern entschieden habe, sondern mich einfach durch die aufkommenden Anforderungen leiten lies. Geachtet habe ich im Grunde nur auf (lose) Koppelung und (starke) Kohäsion. Das hat sich für mich als der richtige Weg erwiesen. Im Grunde ist dabei sowas wie ein MVC-Pattern rausgekommen, auch wenn es wohl nicht den striktesten Kriterien standhalten würde. Aber je mehr man über die Pattern liest, desto undefinierter und interpretationsabhängiger werden sie.  Diskussionen darüber füllen jedenfalls ganze Foren. So richtig warm bin ich mit diesem Thema aber noch immer nicht geworden. Meines Erachtens kann man solche Dinge ohnehin nicht theoretisch lernen, sondern muss sich aus den spezifischen Anforderungen heraus die geeigneten Pattern erarbeiten (und nicht umgekehrt). Aber um die programmiertechnischen Anforderungen im Voraus korrekt zu erkennen, benötigt man eine diesbezügliche Routine.

Das Programmieren selbst lief nach einer kurzen Eingewöhnungsphase eigentlich überraschend gut. Ich habe mir - ganz pragmatisch - ein Teilproblem nach dem anderen vorgenommen (und peinlich darauf geachtet, möglichst alle Eventualitäten zu berücksichtigen). Erst den Core-Algorithmus (nur in der Konsole) bis zum Bestehen aller Tests aus dem Test-Interface. Als das zu 100% funktionierte, habe ich mich der GUI gewidmet. Vor Aktionen wie dem Verschieben oder Löschen von Polygonpunkten mit realtime-Darstellung hatte ich etwas Bammel, das ging dann aber Dank der mächtigen Java-Routinen relativ unkompliziert. Vor der Undo/Redo-Funktionalität hatte ich auch ziemlich Respekt, da wusste ich erst gar nicht, wie ich es angehen sollte. Aber auch da bietet Java schon einiges out-of-the-box an. Sobald ich einmal konzeptuell wusste, wie es gehen sollte, war der Rest nur mehr Handwerk und Friemelei. Sehr gewöhnungsbedürftig und unintuitiv fand ich im Übrigen die Darstellung von Fenstern in Java mit seinen Frames, Panels, Panes und Containern. Eine gute Erklärung dazu konnte ich irgendwie auch nicht finden. Siehste, da könnte ich jetzt noch die eine oder andere Stunde investieren.

Und was mache ich sonst noch? Hmja, eigentlich nichts weiter. Der Zeitplan ist irgendwie unvorteilhaft, denn das ProPra zieht sich noch über das ganze Semester. Ich könnte natürlich jetzt für Kooperative Systeme lernen, aber eigentlich möchte ich den Programmierfokus nur ungern verlieren, sonst kann ich mich in einem Monat wieder neu in das Programm einarbeiten. Andererseits ist so ein 10ECTS-Semester schon ziemlich schwach. Ich weiß, ehrlich gesagt, noch nicht so Recht, wie ich das nun handhaben soll. Nächsten Monat ist Fußball-WM, da nehme ich mir mal nichts gröberes vor, denn da freue ich mich schon zwei Jahre drauf. Mal sehen, wohin mich der Eifer treibt und was beim zweiten Teil des ProPra noch auf mich zukommt. Ein Abschlussgespräch wird es dazu ja auch noch geben.

Keine Kommentare:

Kommentar veröffentlichen