Whoops! Where did my architecture go?
Approaches to architecture management for Java and Spring applications
Oliver Gierke
Whoops! Where did my architecture go? Approaches to architecture - - PowerPoint PPT Presentation
Whoops! Where did my architecture go? Approaches to architecture management for Java and Spring applications Oliver Gierke Oliver Gierke SpringSource Engineer Spring Data ogierke@vmware.com olivergierke www.olivergierke.de Background 5
Approaches to architecture management for Java and Spring applications
Oliver Gierke
SpringSource Engineer Spring Data
www.olivergierke.de
5 years of consulting Lots of code reviews Eoin Woods‘ talk on InfoQ
http:/ /github.com/olivergierke/ whoops-architecture
Divide and conquer Of layers and slices A plain Java based approach
Modules Layers Vertical slices Subsystems
Java ARchive Package Class
Presentation Service Data Access
Presentation Service Data Access
Presentation Service Data Access
Presentation Service Data Access Account Customer Core
Presentation Service Data Access Account Customer Core
Presentation Service Data Access Account Customer Core
Well understood Known to developers Less important to business
Hardly understood New to developers Key for business req
Presentation Service Data Access Account Customer Core
JDepend Sonar
Formerly known as SonarJ
Presentation Service Data Access Account Customer Core
Leaks slice internals Lower layers visible to everyone
Start with package per slice Expose interfaces and domain types Keep implementations private
Encapsulates business module Internals understood anyway
Presentation Service Data Access Account Customer Core
Presentation Service Data Access Account Customer Core
Know your dependencies On every granularity Start as strict as possible Get lenient where necessary
Spring Data JPA @ GitHub Sonargraph Blogpost
Eoin Woods - Talk @ InfoQ Uwe Friedrichsen - Slides @ Slideshare