Saubere Programmierung – was ist „schöner Code“? Folge 1: Separation of Concerns by Carl-Philip Hänsch published on 2021-01-02T10:39:20Z Saubere Programmierung – was ist „schöner Code“? Folge 1: Separation of Concerns Die meisten Entwickler lernen Programmieren durch ihren Spieltrieb – sie setzen sich das Ziel, eines Tages Spiele programmieren zu können oder wollen ein eigenes Web-Portal betreiben, vielleicht das nächste Facebook aufbauen. In dieser Phase geht es einfach nur darum, Sachen zum Laufen zu bekommen. Es wird Code rauskopiert, neu zusammengesetzt, getestet – bis alles funktioniert. Ich will euch heute eine neue Sichtweise auf Code beibringen, die über das reine „Funktionieren“ hinausgeht. Quasi um „schönen Code“ Ein paar Basics wird bestimmt jeder mal gehört haben: Variablen aussagekräftig benennen, Funktionsnamen sinnvoll wählen. Ich will euch aber einen weiteren Aspekt beibringen, der dich in deinem Programmiererleben viel Nacharbeit ersparen wird: Die Rede ist vom „Separation of Concerns“. Ein Concern, englisch, bedeutet „Anliegen“. Ein Anliegen ist zum Beispiel: „ich will mich einloggen können“ – ein anderes Anliegen ist „ich will eine Bestellung erfassen können“ – ein anderes „die Bestellungen sollen mit dem Lagerprogramm synchronisiert werden“ In der Uni lernt ihr eine Denkweise des Separation of Concern: Die MVC oder Model View Controller Sichtweise. Die besagt, dass ihr den Code für das Datenschema, die UI-Darstellung, sowie das Verhalten eurer Objekte code-technisch auf mehrere Dateien aufteilen sollt. Das Ziel hinter MVC ist sicherlich ein ehrbares. Aber die Stelle, an der hier der Querschnitt gemacht wird, gefällt mir nicht. Ich kann euch das an einem einfachen Beispiel zeigen: Ihr habt mehrere Concerns, ein Concern ist dass ihr die Adresse im Kunden speichern wollt für den Postversand. Ein anderer Concern ist, dass ihr die Bankverbindung speichern müsst, um die SEPA-Lastschrift durchführen zu können. Unterteilt man die Software jetzt Objektorientiert nach MVC, schmeißt man beide Concerns 1. ins selbe Objekt und 2. auch gemeinsam in die View-Datei. Die Folge: Will der Kunde jetzt das SEPA-Lastschrift-Feature doch nicht mehr, müsst ihr anfangen, die Dateien zu zerpflücken. Das führt zu Fehlern, blinde Felder, toter Code usw. - Hätte man die Concern-Grenzen besser gesetzt, hätte man nur eine Datei löschen müssen und das SEPA-Feature wäre sauber aus der Software wieder herausgeschnitten. Die genauen Techniken, wie man diese scharfe Trennung der Concerns erreicht, kommt aus dem Bereich Aspect Oriented Programming und Feature Oriented Programming. Ich werde die Techniken in dieser Folge nicht erklären – dazu wird es noch viele Folgen geben. Ich will euch nur zeigen, dass das Thema sauberer Code komplex ist und du noch viele Verbesserungen an deinem Code erlernen kannst. Wenn dich das Thema interessiert, dann abonniere diesen Podcast und höre dir die anderen Folgen noch an. Genre Technology