COMPLEX IS EASY , ITS SIMPLE WHICH IS HARD SARAH TARAPOREWALLA - - PowerPoint PPT Presentation

complex is easy it s simple which is hard sarah
SMART_READER_LITE
LIVE PREVIEW

COMPLEX IS EASY , ITS SIMPLE WHICH IS HARD SARAH TARAPOREWALLA - - PowerPoint PPT Presentation

COMPLEX IS EASY , ITS SIMPLE WHICH IS HARD SARAH TARAPOREWALLA TECH PRINCIPAL @sarahtarap @sarahtarap Lets Explore Complexity in the Real World 1 How does it happen? 2 The One About The Checkbox 3 The One About The Fortress 4


slide-1
SLIDE 1

COMPLEX IS EASY, IT’S SIMPLE WHICH IS HARD

slide-2
SLIDE 2

@sarahtarap

SARAH TARAPOREWALLA

TECH PRINCIPAL

@sarahtarap

slide-3
SLIDE 3

3

Let’s Explore

1

Complexity in the Real World

2

How does it happen?

3

The One About The Checkbox

4

The One About The Fortress

5

The One About The Article

6

The One about the Pricing Rules

@sarahtarap

slide-4
SLIDE 4

@sarahtarap

Complexity in the Real World

slide-5
SLIDE 5

@sarahtarap

Photo courtesy of https://www.flickr.com/photos/chiropractic/3732497731/

slide-6
SLIDE 6

@sarahtarap

Photo courtesy of https://www.lamayor.org/mayor-garcetti-unveils-new-easy-read-parking-signs

slide-7
SLIDE 7

@sarahtarap

Photo courtesy of hhttps://www.rd.com/advice/saving-money/grocery-shopping-mistakes-that-are-wasting-money/

slide-8
SLIDE 8

@sarahtarap

Photo courtesy of https://commons.wikimedia.org/wiki/File:Vein_art_near.png

slide-9
SLIDE 9

@sarahtarap

Photo courtesy of http://www.stjohnnsw.com.au/

slide-10
SLIDE 10

@sarahtarap

Photo courtesy of https://www.crowdrise.com/handsonlycpr

slide-11
SLIDE 11

@sarahtarap

CYNEFIN FRAMEWORK

11

Photo courtesy ofhttps://en.wikipedia.org/wiki/Cynefin_framework#/media/File:Cynefin_framework,_February_2011_(2).jpeg

slide-12
SLIDE 12

@sarahtarap

How does it happen?

slide-13
SLIDE 13

@sarahtarap

2 6 8

slide-14
SLIDE 14

@sarahtarap

2 6 8 1 3 4

slide-15
SLIDE 15

@sarahtarap

2 6 8 1 3 4 2 5 7

slide-16
SLIDE 16

@sarahtarap

2 6 8 1 3 4 2 5 7 5 8 11

slide-17
SLIDE 17

@sarahtarap

2 6 8 1 3 4 2 5 7 5 8 11

x < y < z

slide-18
SLIDE 18

@sarahtarap

Photo courtesy of https://cdn.pixabay.com/photo/2014/03/24/17/16/brain-295291_960_720.png

slide-19
SLIDE 19

@sarahtarap

Photo courtesy of https://betterhumans.coach.me/cognitive-bias-cheat-sheet-55a472476b18

slide-20
SLIDE 20

@sarahtarap

slide-21
SLIDE 21

@sarahtarap

slide-22
SLIDE 22

@sarahtarap

The One About The Checkbox

slide-23
SLIDE 23

@sarahtarap

SIMPLE CODE MANIFESTO

23

Composition Matchers Tiny Types SRP Decorators Inheritance If-Then-Else Primitives Fat Objects Mixed Concerns

  • ver
  • ver
  • ver
  • ver
  • ver
slide-24
SLIDE 24

@sarahtarap

starapor

slide-25
SLIDE 25

@sarahtarap

BOY SCOUT RULE

Photo courtesy of http://disney.wikia.com/wiki/Russell

slide-26
SLIDE 26

@sarahtarap

RED GREEN REFACTOR

REFACTOR

26
slide-27
SLIDE 27

@sarahtarap

RED GREEN REFACTOR

REFACTOR

27

REFACTOR REVERT REFACTOR COMMIT

slide-28
SLIDE 28

@sarahtarap

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(); 
 }
 }

GOOD CITIZEN

28
slide-29
SLIDE 29

@sarahtarap

INTENTION REVEALING INTERFACES

29

IFooHandler => IHandleLotsOfFoos IGameRepository => ICanFindTheGame

slide-30
SLIDE 30

@sarahtarap

SIDE-EFFECT FREE CODE

30

Photo courtesy of https://xkcd.com/326/

slide-31
SLIDE 31

@sarahtarap

SQUINT TEST

Photo courtesy of https://upload.wikimedia.org/wikipedia/en/7/7b/Snellen-myopia.png

slide-32
SLIDE 32

@sarahtarap

S

Simple Code Manifesto

slide-33
SLIDE 33

@sarahtarap

The One About The Fortress

slide-34
SLIDE 34

@sarahtarap

JOB SECURITY

34

Photo courtesy of https://imgur.com/gallery/08Zxbv0

slide-35
SLIDE 35

@sarahtarap

OPENNESS & COLLABORATION

35
slide-36
SLIDE 36

@sarahtarap

O

Openness and Collaboration

slide-37
SLIDE 37

@sarahtarap

The One About The Article

slide-38
SLIDE 38

@sarahtarap

DOMAIN DRIVEN DESIGN

38
slide-39
SLIDE 39

@sarahtarap

UBIQUITOUS LANGUAGE

39

Photo courtesy of http://pngimg.com/download/51770

slide-40
SLIDE 40

@sarahtarap

BOUNDED CONTEXTS

40

Photo courtesy of https://martinfowler.com/bliki/BoundedContext.html

slide-41
SLIDE 41

@sarahtarap

DOMAIN DRIVEN DESIGN

41
slide-42
SLIDE 42

@sarahtarap

DOMAIN DRIVEN DESIGN

42
slide-43
SLIDE 43

@sarahtarap

U

Ubiquitous Language & DDD

slide-44
SLIDE 44

@sarahtarap

The One About The Legacy

slide-45
SLIDE 45

@sarahtarap

EXPLAIN YOUR SYSTEM

Photo courtesy of http://evan.bottch.com/wp-content/uploads/2010/06/whiteboard.jpg

slide-46
SLIDE 46

@sarahtarap

SIMON BROWN’S C4 MODEL

slide-47
SLIDE 47

@sarahtarap

DESIGN-ON-A-POST-IT

Photo courtesy of http://evan.bottch.com/wp-content/uploads/2010/06/whiteboard.jpg

slide-48
SLIDE 48

@sarahtarap

P

Post-it Design

slide-49
SLIDE 49

@sarahtarap

The One About The Pricing Rules

slide-50
SLIDE 50

@sarahtarap

GENERALISE SPECIALISE

slide-51
SLIDE 51

@sarahtarap

S

Specialise to Generalise

slide-52
SLIDE 52

@sarahtarap

To Recap

slide-53
SLIDE 53

@sarahtarap

S

Simple Code Manifesto O Openness and CollaborationU Ubiquitous Language & DDD P Post-it Design S Specialise to Generalise

slide-54
SLIDE 54

@sarahtarap

SARAH TARAPOREWALLA

@sarahtarap

S

Simple Code Manifesto O Openness and Collaboration U Ubiquitous Language & DDD P Post-it Design S Specialise to Generalise

slide-55
SLIDE 55

@sarahtarap

Q&A

slide-56
SLIDE 56

THANKS FOR LISTENING

@sarahtarap | me@sarahtaraporewalla.com