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

Clean Architecture

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Clean Architecture

Avatar for Arkadius Jonczek

Arkadius Jonczek

February 06, 2026
Tweet

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.