I'm a coder - Die Architektur
Es wird mal wieder Zeit für eine I’m a Coder News und heute ist das Thema die Architektur einer Software. Einer der Themenbereich in denen ich in den letzten Jahren wohl am meisten gelernt habe, allem voran auf der Arbeit, aber auch im privaten von eigenen Projekten. Der Aufbau der Architektur mag nach Arbeitsaufwand aussehen, aber selbiger lohnt sich meiner Meinung nach immer.
Selbst bei kleinen App gibt es immer mal wieder Momente in denen man Dinge erweitern oder ändern will und hat man eine stabile Basis geschaffen, also eine gute Grundarchitektur erstellt, geht dies um ein vielfaches leichter als bei einem großen Klumpen Software. Ebenfalls praktisch ist eine gute Architektur im Bereich Dokumentation, denn gerade bei privaten Projekten bleibt die Doku oft auf der Strecke und nach ein paar Monaten versteht man den eigenen Code nicht mehr. Hat man hier aber mit einem verständlichen Entwicklungskonzept gearbeitet, findet man viel schneller wieder in existierenden Code hinein.
Ich merke aktuell bei einem privaten Projekt, welches eine Zeitlang ruhte, wie praktisch eine solide und durchdachte Basis ist. Vor einigen Monaten pausierte ich die Entwicklung, welche ich in der letzten Zeit wieder fortsetzte. Nun ist das Projekt fast abgeschlossen, da ich quasi nahtlos an den vorhandenen Code anknüpfen konnte, aufgrund einer modernen und bereits optimieren Architektur. Andere bereits begonnene Projekte, die zurzeit pausiert sind, sehen da leider ganz anders aus und werden entsprechend viel mehr Aufwand benötigten.
Es ist übrigens extrem erfüllend wenn die entwickelte Architektur sich als sinnvoll herausstellt, da auch Features die erst lange nach der initialen Planung ohne Probleme entwickelt und integriert werden können. Dies sollte ein weiterer Motivationspunkt sein, denn was gibt es für Entwickler schöneres, als wenn der Listener automatisch die UI aktualisiert, welcher über einen Refresh im Hintergrund von Datenbank und Netzwerk neue Daten erhielt, während der Nutzer ganz entspannt die App nutzen kann.