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

Clean Architecture with Java (German)

Clean Architecture with Java (German)

Talk how an implementation of Clean Architecture (Jacobson Architecture, Use case-driven Architecture) can look like in Java. Inspired by Ivar Jacobson's Object Oriented Software Engineering, Uncle Bob (Robert C.Martin), Sandro Mancuso and the Onion Architecture.

C5f6e8dffbb19acf405198c8fb917337?s=128

Mark Paluch

May 20, 2015
Tweet

More Decks by Mark Paluch

Other Decks in Technology

Transcript

  1. Clean Architecture mit Java

  2. Mark Paluch @mp911de github.com/mp911de paluch.biz

  3. Was ist Software-Architektur?

  4. None
  5. None
  6. Architektur Vorhaben

  7. None
  8. 1992

  9. Object-Oriented Software Engineering Use-Cases

  10. Use Case Incident erstellen Eingangsdaten: Betroffenes System Anzahl der Anwender

    Beschreibung Kontaktdaten Ausgangsdaten: Incident-Id Regulärer Ablauf: 1. Anwender führt „Incident erstellen“ mit den Eingangsdaten aus 2. System validiert die Daten 3. System erstellt einen Incident und ermittelt die Incident-Id 4. Incident-Id wird zurückgegeben Alternative: Fehler beim Validieren der Eingangsdaten 1. System liefert dem Anwender eine Fehlermeldung
  11. Use Case Interactor

  12. Business Object Entity

  13. Interface Boundaries

  14. None
  15. Request Request
 Model

  16. Response Response
 Model

  17. Das Web ist ein Plugin

  18. User Interface MVC

  19. None
  20. Clean Architecture mit Java

  21. None
  22. Business Objects Boundaries Web Dependency Injection Externe Infrastruktur Use Cases

  23. Business Objects Domäne Model-Basis Aggregat Entities Exception

  24. Boundaries Repository Interfaces Use Case Interfaces Use Case Interface Output

    Interface Request Model
  25. External JPA Entities CDI JPA Repositories (DAO)

  26. Use Cases Epic/Domäne Epic/Domäne

  27. MVC REST API CDI Producer Use Case Fassade Use Cases

    mit ext.
 Dependency Injection
  28. Die Datenbank ist ein Plugin

  29. Datenbank Stored Procedures Datenmodelle Controller Web Java EE Spring Oberfläche

    Tools Batchjobs Servlets
  30. Datenbank

  31. None
  32. Testbarkeit Strategien

  33. None
  34. Unit

  35. Akzeptanz BDD

  36. Integration

  37. End to End

  38. Clean Architecture mit Java

  39. Gute Architekturen ermöglichen Verzögerungen bei Entscheidungen

  40. Clean Architecture Testbarkeit Entkopplung Isolation

  41. Ressourcen • github.com/mp911de/CleanArchitecture • github.com/RetroMocha/obvious_status • blog.8thlight.com/uncle-bob/2012/08/13/the- clean-architecture.html