DELUSION DRIVENDEVELOPMENT
AND WHY YOU SHOULDN'T DO ITCreated by / Felipe Fernández @felipefzdz
ABOUT MEFELIPE FERNÁNDEZ
Work as Software Craftsman for Currently with Blog: http://codurance.com/blog/author/felipe-fernandezTwitter:
CoduranceCrowdmix
@felipefzdz
DEFINING DELUSION“An idiosyncratic belief or impression
maintained despite being contradicted byreality or rational argument, typically as a
symptom of mental disorder.”
ABOUT THE TALK1. Operations2. Testing3. Design
1. OPERATIONS
OPERATIONS
I’LL HAVE A LOOK WHENEVER IS NEEDED
OPERATIONS: I’LL HAVE A LOOK WHENEVER IS NEEDED
DIAGNOSIS IN DISTRIBUTED ENVIRONMENTSWhen your tests are not enoughYou need to query the state of your system
OPERATIONS: I’LL HAVE A LOOK WHENEVER IS NEEDED
DIAGNOSIS METHODOLOGIESDebuggingQuerying datastoresLogging
OPERATIONS: I’LL HAVE A LOOK WHENEVER IS NEEDED
DISTRIBUTED DIAGNOSIS METHODOLOGIESDebugging -> LOLQuerying datastores -> FragmentationLogging -> Madness
OPERATIONS
I’LL HAVE A LOOK WHENEVER IS NEEDEDPlease don't, it could be really hard and you want to be
prepared
OPERATIONS
I NEED TO REMOVE THAT DUPLICATION NOW
OPERATIONS: I NEED TO REMOVE THAT DUPLICATION NOW
GENERALISING DEPLOYMENT PIPELINESDIY deployment pipelinesMicroservices context
OPERATIONS: I NEED TO REMOVE THAT DUPLICATION NOW
GENERALIZATION ASSUMPTIONSVersioningCheckingContinuous integration
OPERATIONS
I NEED TO REMOVE THAT DUPLICATION NOWDo it when you're stable enough
OPERATIONS
I GUESS THAT IS READY
OPERATIONS: I GUESS THAT IS READY
CREATING REAL WALKING SKELETONSThat includes provisioning and deployingSmoke test as driver
OPERATIONS: I GUESS THAT IS READY
GOOS PHILOSOPHYAddress your non-functional challenges asapAntidote against technical debt
OPERATIONS
I GUESS THAT IS READYDon't guess, double check
2. TESTING
TESTING
THE PARTS ARE WORKING, SO THE WHOLE
TESTING: THE PARTS ARE WORKING, SO THE WHOLE
DISTRIBUTED TESTINGDon't give up on unit testing
But that's not enough
TESTING: THE PARTS ARE WORKING, SO THE WHOLE
CONTRACT TESTINGStart designing your APIs with respect
The customer is always right
TESTING: THE PARTS ARE WORKING, SO THE WHOLE
SMOKE TESTINGWe need more than a red test
Centralised logging and correlation ids
TESTING
THE PARTS ARE WORKING, SO THE WHOLEDon't understimate the complexity of distributed systems
TESTING
TESTING IS ALWAYS GOOD
TESTING: TESTING IS ALWAYS GOOD
TESTING TRADE-OFFSMicro unit testsSlow testsHard to read/write tests
TESTING: TESTING IS ALWAYS GOOD
TRADE-OFFS ARE JUST TRADE OFFSMicro unit testsSlow testsHard to read/write tests
TESTING
TESTING IS ALWAYS GOODAs long as you understand the trade-offs
3. DESIGN
DESIGN
LANGUAGE APPROXIMATIONS ARE OK
DESIGN: LANGUAGE APPROXIMATIONS ARE OK
BOUNDED CONTEXTSCore DDD concept
Impact mapping or even Event Storming can help you toidentify them
DESIGN: LANGUAGE APPROXIMATIONS ARE OK
HEXAGONAL ARCHITECTURE
DESIGN
LANGUAGE APPROXIMATIONS ARE OKOften I think that our profession is closer to literature than
maths
DESIGN
BUSINESS NEEDS ARE STABLE
DESIGN: BUSINESS NEEDS ARE STABLE
CQRS
DESIGN: BUSINESS NEEDS ARE STABLE
CQRSExtremely perfomant
Adds overhead
DESIGN
BUSINESS NEEDS ARE STABLEThat's not true. Design with that in mind.
THANK YOU
ANY QUESTIONS?
Top Related