rethink your architecture - marten deinum

30
Rethink your Architecture Marten Deinum

Upload: nljug

Post on 12-Jul-2015

186 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Rethink your architecture - Marten Deinum

Rethink your Architecture

Marten Deinum

Page 2: Rethink your architecture - Marten Deinum
Page 3: Rethink your architecture - Marten Deinum
Page 4: Rethink your architecture - Marten Deinum

–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
Page 6: Rethink your architecture - Marten Deinum

–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

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
Page 9: Rethink your architecture - Marten Deinum

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

Software Architecture

– Oliver Gierke

„Architecture is like weather: you can’t have none”

Page 11: Rethink your architecture - Marten Deinum

Domain

Presentation

Service

Data Access

Software Architecture

Presentation

Service

Data AccessDomain

DTO

Page 12: Rethink your architecture - Marten Deinum

Software Architecture

Presentation

Service

Data Access

Presentation

Service

Data Access

Page 13: Rethink your architecture - Marten Deinum

Software Architecture

Presentation

Service

Data Access

Presentation

Service

Data Access

Page 14: Rethink your architecture - Marten Deinum

Presentation

Service

Data Access

Presentation

Service

Data Access

Presentation

Service

Data Access

Software Architecture

Page 15: Rethink your architecture - Marten Deinum

Presentation

Service

Data Access

Presentation

Service

Data Access

Presentation

Service

Data Access

Software Architecture

Page 16: Rethink your architecture - Marten Deinum

Big Ball of Mud

Page 17: Rethink your architecture - Marten Deinum

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

Layers

biz.deinum.app.service.module

biz.deinum.app.module.service

Presentation

Service

Data AccessDomain

DTO

Page 19: Rethink your architecture - Marten Deinum

Layers

public interface UserService { … }

public class UserServiceImpl implements UserService { … }

Page 20: Rethink your architecture - Marten Deinum

Layers

public interface UserRepository { … }

public class JpaUserRepository implements UserRepository { … }

Page 21: Rethink your architecture - Marten Deinum

– 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

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

– Russ Miles (2013)

„We don’t build layered software, we have a couple of domains that interact.”

Page 24: Rethink your architecture - Marten Deinum

Life Preserver PatternIntegration

Core

Page 25: Rethink your architecture - Marten Deinum

Life Preserver PatternIntegration

Core

User

Event

web

security

ws

Page 26: Rethink your architecture - Marten Deinum

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

Software ArchitectureIntegration

Core

User

Event

web

security

ws

Page 28: Rethink your architecture - Marten Deinum
Page 29: Rethink your architecture - Marten Deinum
Page 30: Rethink your architecture - Marten Deinum

Reading List