Rethink your architecture - Marten Deinum
-
Upload
nljug -
Category
Technology
-
view
187 -
download
1
Transcript of Rethink your architecture - Marten Deinum
![Page 1: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/1.jpg)
Rethink your Architecture
Marten Deinum
![Page 2: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/2.jpg)
![Page 3: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/3.jpg)
![Page 4: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/4.jpg)
–Vaughn Vernon
„I think there has been a general abandonment of good design and development practices in
the Java community.”
![Page 5: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/5.jpg)
![Page 6: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/6.jpg)
–Simon Brown
„If you can't build a structured monolith, what makes you think microservices are the answer?”
![Page 7: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/7.jpg)
Architectural Crisis
CQRS
DDD
(S)EDA
SOAµServices
CBD
Anemic Domain Model
Layers/Tiers/Slices
MVC
DCI
Pipes and FiltersTransaction Script
![Page 8: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/8.jpg)
![Page 9: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/9.jpg)
Software ArchitectureSoftware architecture isn’t about big design up front
Every software team needs to consider software architecture
The software architecture role is about coding, coaching and collaboration
You don’t need to use UML
A good software architecture enables agility
–Simon Brown (Software Architecture for Developers)
![Page 10: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/10.jpg)
Software Architecture
– Oliver Gierke
„Architecture is like weather: you can’t have none”
![Page 11: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/11.jpg)
Domain
Presentation
Service
Data Access
Software Architecture
Presentation
Service
Data AccessDomain
DTO
![Page 12: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/12.jpg)
Software Architecture
Presentation
Service
Data Access
Presentation
Service
Data Access
![Page 13: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/13.jpg)
Software Architecture
Presentation
Service
Data Access
Presentation
Service
Data Access
![Page 14: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/14.jpg)
Presentation
Service
Data Access
Presentation
Service
Data Access
Presentation
Service
Data Access
Software Architecture
![Page 15: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/15.jpg)
Presentation
Service
Data Access
Presentation
Service
Data Access
Presentation
Service
Data Access
Software Architecture
![Page 16: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/16.jpg)
Big Ball of Mud
![Page 17: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/17.jpg)
Layers
biz.deinum.app.web
biz.deinum.app.service
biz.deinum.app.repository
biz.deinum.app.domain
biz.deinum.app.dto
Presentation
Service
Data AccessDomain
DTO
![Page 18: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/18.jpg)
Layers
biz.deinum.app.service.module
biz.deinum.app.module.service
Presentation
Service
Data AccessDomain
DTO
![Page 19: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/19.jpg)
Layers
public interface UserService { … }
public class UserServiceImpl implements UserService { … }
![Page 20: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/20.jpg)
Layers
public interface UserRepository { … }
public class JpaUserRepository implements UserRepository { … }
![Page 21: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/21.jpg)
– Alan Kay (2003)
“OOP to me means only messaging, local retention and protection and hiding of state-
process, and extreme LateBinding of all things”
![Page 22: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/22.jpg)
Layers
Presentation
Service
Data AccessDomain
DTO
public interface UserService {…}
public class UserServiceImpl implements UserService {…}
public interface UserRepository {…}
public class JpaUserRepository implements UserRepository {…}
public class User { public User() {…} }
![Page 23: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/23.jpg)
– Russ Miles (2013)
„We don’t build layered software, we have a couple of domains that interact.”
![Page 24: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/24.jpg)
Life Preserver PatternIntegration
Core
![Page 25: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/25.jpg)
Life Preserver PatternIntegration
Core
User
Event
web
security
ws
![Page 26: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/26.jpg)
Slices
biz.deinum.app.user biz.deinum.app.user.web
biz.deinum.app.order biz.deinum.app.order.web biz.deinum.app.order.ws
Presentation
Service
Data AccessDomain
DTO
![Page 27: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/27.jpg)
Software ArchitectureIntegration
Core
User
Event
web
security
ws
![Page 28: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/28.jpg)
![Page 29: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/29.jpg)
![Page 30: Rethink your architecture - Marten Deinum](https://reader030.fdocuments.in/reader030/viewer/2022032615/55a271241a28ab39278b4771/html5/thumbnails/30.jpg)
Reading List