dealing with dependencies, taking your architecture to rehab

39
dealing with dependencies taking your architecture to rehab

Upload: jon-fuller

Post on 04-Jul-2015

458 views

Category:

Technology


0 download

DESCRIPTION

A discussion of dependencies in software. Presenting a progression of how to manage them, concluding with a container.

TRANSCRIPT

Page 1: dealing with dependencies, taking your architecture to rehab

dealing with dependenciestaking your architecture to rehab

Page 2: dealing with dependencies, taking your architecture to rehab

me

I Am:

@jon_fuller

practicing apprentice

SEP

I Am Not:

expert

all-knowing

Page 3: dealing with dependencies, taking your architecture to rehab

simplicity

Page 4: dealing with dependencies, taking your architecture to rehab

flexible

Page 5: dealing with dependencies, taking your architecture to rehab

maintainable

Page 6: dealing with dependencies, taking your architecture to rehab

testable

Page 7: dealing with dependencies, taking your architecture to rehab

agile

Page 8: dealing with dependencies, taking your architecture to rehab

low coupling

Page 9: dealing with dependencies, taking your architecture to rehab

acronym overload

DIP

DI

OMG!

IoC

WTF?

Page 10: dealing with dependencies, taking your architecture to rehab

Single ResponsibilityOpen-ClosedLiskov SubstitutionInterface SegregationDependency Inversion

DIP

Page 11: dealing with dependencies, taking your architecture to rehab

DIP

Thou Shall Invert Dependencies

Page 12: dealing with dependencies, taking your architecture to rehab

DIP

SecurityHandler

LoginService

Uses

Page 13: dealing with dependencies, taking your architecture to rehab

DIP

SecurityHandler Login

Service

Uses

Active Director

y

Exchange

Page 14: dealing with dependencies, taking your architecture to rehab

DIP

SecurityHandler

HIGH LEVEL MODULES SHOULD NOT DEPEND UPON LOW LEVEL MODULES . BOTH SHOULD DEPEND UPON ABSTRACTIONS.

ILoginService

Uses

Login Service

Is A

Page 15: dealing with dependencies, taking your architecture to rehab

90˚

X

Y

DIP

Page 16: dealing with dependencies, taking your architecture to rehab

DIP

Page 17: dealing with dependencies, taking your architecture to rehab

service location& factories

DI

Page 18: dealing with dependencies, taking your architecture to rehab

DI

Page 19: dealing with dependencies, taking your architecture to rehab

dependency injection

DI

Page 20: dealing with dependencies, taking your architecture to rehab

DI

Page 21: dealing with dependencies, taking your architecture to rehab

DI

Page 22: dealing with dependencies, taking your architecture to rehab

DI

Page 23: dealing with dependencies, taking your architecture to rehab

poor man’s DI

DI

Page 24: dealing with dependencies, taking your architecture to rehab

DI

Page 25: dealing with dependencies, taking your architecture to rehab

simplicity

WTF?

Page 26: dealing with dependencies, taking your architecture to rehab

inversion of control

IoC

Page 27: dealing with dependencies, taking your architecture to rehab

declarative

IoC

Page 28: dealing with dependencies, taking your architecture to rehab

container

IoC

Page 29: dealing with dependencies, taking your architecture to rehab

free your mind

IoC

Page 30: dealing with dependencies, taking your architecture to rehab

IoC

Page 31: dealing with dependencies, taking your architecture to rehab

IoC

Page 32: dealing with dependencies, taking your architecture to rehab

IoC

Page 33: dealing with dependencies, taking your architecture to rehab

conventions

Java .NET

Dynamic

IoC

Page 34: dealing with dependencies, taking your architecture to rehab

lifecycle management

IoC

Page 35: dealing with dependencies, taking your architecture to rehab

IoC

Page 36: dealing with dependencies, taking your architecture to rehab

aop/interception

IoC

Page 37: dealing with dependencies, taking your architecture to rehab

IoC

Page 38: dealing with dependencies, taking your architecture to rehab

simplicity

Page 39: dealing with dependencies, taking your architecture to rehab

?

@[email protected]/jonfuller

Feedback please!