dealing with dependencies, taking your architecture to rehab
-
Upload
jon-fuller -
Category
Technology
-
view
459 -
download
0
description
Transcript of dealing with dependencies, taking your architecture to rehab
![Page 1: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/1.jpg)
dealing with dependenciestaking your architecture to rehab
![Page 2: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/2.jpg)
me
I Am:
@jon_fuller
practicing apprentice
SEP
I Am Not:
expert
all-knowing
![Page 3: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/3.jpg)
simplicity
![Page 4: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/4.jpg)
flexible
![Page 5: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/5.jpg)
maintainable
![Page 6: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/6.jpg)
testable
![Page 7: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/7.jpg)
agile
![Page 8: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/8.jpg)
low coupling
![Page 9: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/9.jpg)
acronym overload
DIP
DI
OMG!
IoC
WTF?
![Page 10: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/10.jpg)
Single ResponsibilityOpen-ClosedLiskov SubstitutionInterface SegregationDependency Inversion
DIP
![Page 11: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/11.jpg)
DIP
Thou Shall Invert Dependencies
![Page 12: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/12.jpg)
DIP
SecurityHandler
LoginService
Uses
![Page 13: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/13.jpg)
DIP
SecurityHandler Login
Service
Uses
Active Director
y
Exchange
![Page 14: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/15.jpg)
90˚
X
Y
DIP
![Page 16: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/16.jpg)
DIP
![Page 17: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/17.jpg)
service location& factories
DI
![Page 18: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/18.jpg)
DI
![Page 19: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/19.jpg)
dependency injection
DI
![Page 20: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/20.jpg)
DI
![Page 21: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/21.jpg)
DI
![Page 22: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/22.jpg)
DI
![Page 23: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/23.jpg)
poor man’s DI
DI
![Page 24: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/24.jpg)
DI
![Page 25: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/25.jpg)
simplicity
WTF?
![Page 26: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/26.jpg)
inversion of control
IoC
![Page 27: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/27.jpg)
declarative
IoC
![Page 28: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/28.jpg)
container
IoC
![Page 29: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/29.jpg)
free your mind
IoC
![Page 30: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/30.jpg)
IoC
![Page 31: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/31.jpg)
IoC
![Page 32: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/32.jpg)
IoC
![Page 33: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/33.jpg)
conventions
Java .NET
Dynamic
IoC
![Page 34: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/34.jpg)
lifecycle management
IoC
![Page 35: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/35.jpg)
IoC
![Page 36: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/36.jpg)
aop/interception
IoC
![Page 37: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/37.jpg)
IoC
![Page 38: dealing with dependencies, taking your architecture to rehab](https://reader034.fdocuments.in/reader034/viewer/2022052622/559744d51a28abbf428b475d/html5/thumbnails/38.jpg)
simplicity