sagt • In den letzten Jahren haben sich (ähnliche) Architekturen entwickelt, Mit dem gleichen Ziel • Vorteile dieser Architektur(en) • Erklärung des Architekturbildes (Deep Dive) • Aufbau einer Beispielanwendung • Use Case Diagramm • Datenmodell • Implementierung in Go • Live Demo • Fazit
entwickelt • Hexagonal Architecture • Onion Architecture • Screaming Architecture • DCI • BCE Mit dem selben Ziel • Separation of Concerns • Wird erreicht durch Aufteilung der Software in Schichten • Mindestens eine Schicht für die Geschäftslogik • Mindestens eine Schicht für die Schnittstellen
entwickelt • Hexagonal Architecture • Onion Architecture • Screaming Architecture • DCI • BCE Mit dem selben Ziel • Separation of Concerns • Wird erreicht durch Aufteilung der Software in Schichten • Mindestens eine Schicht für die Geschäftslogik • Mindestens eine Schicht für die Schnittstellen
entwickelt • Hexagonal Architecture • Onion Architecture • Screaming Architecture • DCI • BCE Mit dem selben Ziel • Separation of Concerns • Wird erreicht durch Aufteilung der Software in Schichten • Mindestens eine Schicht für die Geschäftslogik • Mindestens eine Schicht für die Schnittstellen
science that involves breaking a system into distinct sections, with each section handling a specific responsibility or "concern". The goal is to make software more modular, maintainable, and easier to understand by avoiding the mixing of unrelated functionalities.
Testable • The business rules can be tested without the UI, Database, Web Server, or any other external element. • Independent of UI • Independent of Database • Independent of any external agency • In fact your business rules simply don’t know anything at all about the outside world.
wie „Hexagonal Architecture“ oder „Onion Architecture“ • „Uses Cases“ Schicht sinnvoll • Zum Abgleich mit Software Design (Use Case Diagramm) • Als Schnittstelle zwischen High-Level und Low-Level Design
in der Geschäftslogik sinnvoll • “Naming“ verwirrend z.B. • Gateway -> Repository • Interactor -> UseCase • RequestModel -> InputData • ResponseMondel -> OutputData • ORM Nutzung kann zu Problemen führen, weil man „Entitäten“ konfiguriert
von Clean Architecture, im Gegensatz zu den anderen Architekturen • Umsetzung benötigt grundlegendes Verständnis von Software Design (nicht nur Programmierung) • Test der Architekturumsetzung denkbar und sinnvoll (z.B. mit ArchUnit in Java oder ArchUnitNet in C#/.NET) • Einsatz von AI denkbar bei: • Erstellung des Fundaments (High-Level Architecture) anhand von Use Case Diagrammen und Vorlage • Erstellung von konkreten Implementierungen (Low-Level) wie Datenbankadaptern oder Controllern etc.