- Was ist Schönheit?
- Schönheit ist ein Wert, den Menschen empfinden
- Etwas, das Überraschung, Neuheit, Stabilität, Komfort und Einfachheit vermittelt
- Sie lässt sich in das Überraschende und das Natürliche unterteilen
- Um Schönheit (Erkenntnis) zu empfinden, ist ein gewisses Grundwissen nötig
- Schönheit dient dem Überleben. Wenn wir auf etwas stoßen, das wir nicht verstehen können, empfinden wir Unbehagen
- Definition von schönem Code
- Code arbeitet nicht allein, daher gilt: Je schöner er ist, desto besser
- Im Idealfall Code, bei dessen Lesen man an keiner einzigen Stelle hängen bleibt
- Natürlicher Code ist gut
- Vier Elemente, aus denen schöner Code besteht
- sozial, vertrauenswürdig, linear und deklarativ
- Die sozialen und vertrauenswürdigen Aspekte streben nach Stabilität
- Die linearen und deklarativen Aspekte streben nach Ästhetik
- Sozialer Code
- Code, der alle Umstände im Umfeld berücksichtigt
- Das Befolgen von Konventionen, Regeln und Zielen
- Ähnlich zur sozialen Natur von Sprache
- Vertrauenswürdiger Code
- Code, den man vertrauensvoll verwenden kann
- Wenn man ihm nicht vertrauen kann, wird er zu Code, den man selbst überprüfen muss
- Aspekte wie Pure Functions, Idempotenz und Side Effects werden berücksichtigt
- Da Side Effects nie vollständig ausgeschlossen werden können, kann man durch Dokumentation oder Exceptions darauf hinweisen
- Linearer Code
- Code, den man beim Lesen nur einmal von oben nach unten lesen muss
- Linearität erleichtert aus neurowissenschaftlicher Sicht die Verarbeitung im Arbeitsgedächtnis
- Deklarativer Code
- Code, der klar mitteilt, was er tut
- Es ist gut, passende Namen zu vergeben
- Aus neurowissenschaftlicher Sicht ist er für das Kurzzeitgedächtnis leichter zu verarbeiten
- Realistisch betrachtet
- Schöner Code entsteht nicht auf einen Schlag
- Perfekt schöner Code ist selten
- Deshalb braucht es das Konzept der schrittweisen Verbesserung und der Code-Veredelung
- Schrittweise Verbesserung
- Refactoring durchführen
- Durch wiederholtes Prüfen und Verbessern dauerhaft eine Qualität von 70–80 % aufrechterhalten
- Wann sollte man prüfen und verbessern?
- Wenn die Code Ownership verschwimmt
- Wenn das Wissen über den geschriebenen Code verblasst
- Wenn man einen schlechten Geruch wahrnimmt
- Wenn man sich beim Blick auf den Code unwohl fühlt
- Code-Veredelung
- Code so gestalten, dass er schön wirkt
- Typischerweise kommen dabei Tests, Code Reviews, Dokumentation und Kommentare zum Einsatz
- Tests
- Machen den Code vertrauenswürdiger
- Garantieren das Funktionieren, und die Tests selbst können Dokumentation sein
- Code Reviews
- Machen den Code durch Validierung vertrauenswürdiger
- Da sie Code Ownership weitergeben, können sie auch die soziale Komponente des Codes stärken
- Bedingungslose Code Reviews können allerdings zu einem Bottleneck werden
- Dokumentation
- Macht den Code verständlicher
- Dokumentation ist dann nötig, wenn andere Entwickler Kontext, Design und Regeln dieses Codes verstehen müssen
- Mit Werkzeugen wie UML ist es noch besser
- Kommentare
- Unvermeidbar komplexe Code-Bereiche erklärt man besser mit Kommentaren als mit Dokumentation
- Codequalität ist wichtig, aber schöner Code garantiert nicht zwangsläufig Erfolg
- Unter Umständen sollte man eher Design oder Arbeitsprozesse stärker berücksichtigen
- Codequalität garantiert nicht unbedingt Produktqualität
9 Kommentare
hahahahaha
Gesellschaftlich orientierter Code ist wohl wichtig, haha.
Ich finde, das ist ein gut strukturierter und lesenswerter Text. Wenn in eurem Team häufiger Probleme aufgrund der Code-Qualität auftreten, wäre er sicher auch gut geeignet, ihn gemeinsam zu lesen und darüber zu diskutieren.
Ein Thema, das schwer verständlich sein könnte, liest sich hier aber sehr flüssig. Vielen Dank!
Ja, schrittweise Verbesserungen sind eben wichtig. Man kann schließlich nicht gleich beim ersten Versuch alles perfekt machen.
Das Hobby, in dem eigenen geschriebenen Code ästhetische Schönheit zu empfinden, sollte einfach eine persönliche Perspektive bleiben. Bitte werden wir nicht zu Seniors, die als bezahlte Profis den Company-Code aus einer künstlerischen Perspektive angehen und Juniors auch noch eine seltsame Denkweise einimpfen. Oder hört als Entwickler auf und malt Bilder oder so – was soll dieses ganze Gerede von Kunst ...
Sie haben sich wohl im Wort „Schönheit“ verrannt.
Der junge Mann, der nur den Titel liest
Hm, das war schon ziemlich übertrieben.