Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Clean Architecture

Clean Architecture

Avatar for Arkadius Jonczek

Arkadius Jonczek

February 06, 2026

More Decks by Arkadius Jonczek

Other Decks in Programming

Transcript

  1. Agenda • Clean Architecture • Architekturbild • Was Uncle Bob

    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
  2. Source: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html In den letzten Jahren haben sich (ähnliche) Architekturen

    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
  3. Source: https://alistair.cockburn.us/hexagonal-architecture In den letzten Jahren haben sich (ähnliche) Architekturen

    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
  4. Source: https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/ In den letzten Jahren haben sich (ähnliche) Architekturen

    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
  5. Separation of concerns (SoC) is a design principle in computer

    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.
  6. Source: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html Vorteile dieser Architektur(en) • Independent of Frameworks •

    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.
  7. Fazit • Nicht viel Neues im Gegensatz zu anderen Architekturen

    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
  8. Fazit #2 • Zusätzliche Nutzung von Repository und Service Klassen

    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
  9. Fazit #3 • Allgemeine Bekanntheit und Akzeptanz bevorzugt den Einsatz

    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.