Meine aus Erfahrung gewonnenen Mutmassungen für bessere Systeme

Nein, das ist kein Bild von Gipf-Oberfrick sondern...
Beitrag erstellt am: 06.12.18
Eine kleine Liste meiner Einsichten, die mich bei meiner täglichen Arbeit leiten. Jeder Punkt ein Thema, das mindestens ein Buchkapitel verdienen würde - ohne Anspruch auf Vollständigkeit, vielleicht nicht immer zwingend notwendig und sicher nicht hinreichend.

  1. Halte die intellektuelle Beherrschbarkeit hoch
  2. Trenne technische und fachliche Komponenten konsequent
  3. Ordne die Komponenten in deinem System mit Hilfe von Software-Kategorien
  4. Strukturiere fachlichen Themen mit Hilfe von abgegrenzten Kontexten (Bounded Context)
  5. Ports & Adapter und DIP sind deine Freunde
  6. Bevorzuge leichte Ersetzbarkeit gegenüber Wiederverwendung
  7. Unterschätze niemals die Benutzerschnittstelle
  8. Unterscheide zwischen Kommandos und Abfragen -> CQRS
  9. Entwerfe deine Systeme ereignisbasiert und reaktiv
  10. Achte auf ausgewogene Abstraktionsebenen -> Komponenten, Typen, Fehler und Ausnahmen
  11. Hüte dich vor leckgeschlagenen Abstraktionen
  12. Modelliere konsequent mit Hilfe von ausdrucksstarken Domänentypen -> Domain Primitives
  13. Mache Sicherheit zu einem integralen Bestandteil deines Entwurfs: «Shift left on Security»
  14. Bevorzuge Unveränderlichkeit (Immutability)
  15. Nutze algebraische Datentypen