COMPLEX IS EASY , IT’S SIMPLE WHICH IS HARD
SARAH TARAPOREWALLA TECH PRINCIPAL @sarahtarap @sarahtarap
Let’s Explore Complexity in the Real World 1 How does it happen? 2 The One About The Checkbox 3 The One About The Fortress 4 The One About The Article 5 The One about the Pricing Rules 6 3 @sarahtarap
Complexity in the Real World @sarahtarap
@sarahtarap Photo courtesy of https://www. fl ickr.com/photos/chiropractic/3732497731/
@sarahtarap Photo courtesy of https://www.lamayor.org/mayor-garcetti-unveils-new-easy-read-parking-signs
@sarahtarap Photo courtesy of hhttps://www.rd.com/advice/saving-money/grocery-shopping-mistakes-that-are-wasting-money/
@sarahtarap Photo courtesy of https://commons.wikimedia.org/wiki/File:Vein_art_near.png
@sarahtarap Photo courtesy of http://www.stjohnnsw.com.au/
@sarahtarap Photo courtesy of https://www.crowdrise.com/handsonlycpr
@sarahtarap CYNEFIN FRAMEWORK 11 Photo courtesy ofhttps://en.wikipedia.org/wiki/Cyne fi n_framework#/media/File:Cyne fi n_framework,_February_2011_(2).jpeg
How does it happen? @sarahtarap
2 6 8 @sarahtarap
2 6 8 1 3 4 @sarahtarap
2 6 8 1 3 4 2 5 7 @sarahtarap
2 6 8 1 3 4 2 5 7 5 8 11 @sarahtarap
2 6 8 1 3 4 x < y < z 2 5 7 5 8 11 @sarahtarap
@sarahtarap Photo courtesy of https://cdn.pixabay.com/photo/2014/03/24/17/16/brain-295291_960_720.png
@sarahtarap Photo courtesy of https://betterhumans.coach.me/cognitive-bias-cheat-sheet-55a472476b18
@sarahtarap
@sarahtarap
The One About The Checkbox @sarahtarap
SIMPLE CODE MANIFESTO Inheritance over Composition If-Then-Else Matchers over Primitives Tiny Types over Fat Objects over SRP Mixed Concerns over Decorators @sarahtarap 23
starapor @sarahtarap
@sarahtarap BOY SCOUT RULE Photo courtesy of http://disney.wikia.com/wiki/Russell
REFACTOR RED GREEN REFACTOR @sarahtarap 26
REFACTOR RED REFACTOR GREEN REVERT REFACTOR REFACTOR COMMIT @sarahtarap 27
GOOD CITIZEN Trailing commas in lists _matcher = new Matcher<Player> { { p => p.InPenaltyBox(), ReducePenaltyTime }, { p => p.WearingAHat(), RemoveTheHat }, { p => true, PlayARound }, }; Brackets { } around conditionals public void TakeTurn(Player player) { if (player.InPenaltyBox()) { ReducePenaltyTime(); } } @sarahtarap 28
INTENTION REVEALING INTERFACES IFooHandler => IHandleLotsOfFoos IGameRepository => ICanFindTheGame @sarahtarap 29
@sarahtarap SIDE-EFFECT FREE CODE 30 Photo courtesy of https://xkcd.com/326/
@sarahtarap SQUINT TEST Photo courtesy of https://upload.wikimedia.org/wikipedia/en/7/7b/Snellen-myopia.png
S Simple Code Manifesto @sarahtarap
The One About The Fortress @sarahtarap
@sarahtarap JOB SECURITY 34 Photo courtesy of https://imgur.com/gallery/08Zxbv0
OPENNESS & COLLABORATION @sarahtarap 35
O Openness and Collaboration @sarahtarap
The One About The Article @sarahtarap
DOMAIN DRIVEN DESIGN @sarahtarap 38
@sarahtarap UBIQUITOUS LANGUAGE 39 Photo courtesy of http://pngimg.com/download/51770
@sarahtarap BOUNDED CONTEXTS 40 Photo courtesy of https://martinfowler.com/bliki/BoundedContext.html
DOMAIN DRIVEN DESIGN @sarahtarap 41
DOMAIN DRIVEN DESIGN @sarahtarap 42
U Ubiquitous Language & DDD @sarahtarap
The One About The Legacy @sarahtarap
@sarahtarap EXPLAIN YOUR SYSTEM Photo courtesy of http://evan.bottch.com/wp-content/uploads/2010/06/whiteboard.jpg
SIMON BROWN’S C4 MODEL @sarahtarap
@sarahtarap DESIGN-ON-A-POST-IT Photo courtesy of http://evan.bottch.com/wp-content/uploads/2010/06/whiteboard.jpg
P Post-it Design @sarahtarap
The One About The Pricing Rules @sarahtarap
GENERALISE SPECIALISE @sarahtarap
S Specialise to Generalise @sarahtarap
To Recap @sarahtarap
Manifesto O S Collaboration U DDD P Design S Openness Ubiquitous Simple Code Post-it Specialise to and Language & Generalise @sarahtarap
Manifesto O S Collaboration U DDD P Design S Openness Ubiquitous Simple Code Post-it Specialise to and Language & Generalise SARAH TARAPOREWALLA @sarahtarap @sarahtarap
Q&A @sarahtarap
THANKS FOR LISTENING @sarahtarap | me@sarahtaraporewalla.com
Recommend
More recommend