Slide 1

Slide 1 text

S A R A H M E I W D C N Z 2 0 1 5 I S Y O U R C O D E TO O S O L I D ? https://www.flickr.com/photos/pie4dan/4567311801

Slide 2

Slide 2 text

DevMynd S A R A H M E I C H I E F C O N S U LTA N T D E V M Y N D U N I T E D S TAT E S C H I E F O F BA L D E A G L E S A N D F R E E D O M http://world-map1.org/map1520769_0_0.htm http://www.coolholidaygraphics.com/flagday/glittergraphics/flagdayglitter2.gif https://www.devmynd.com/images/team/sarah-mei-cutout.png

Slide 3

Slide 3 text

DevMynd

Slide 4

Slide 4 text

C O D E BA S E S I WO R K O N N O R M A L C O D E BA S E S https://www.flickr.com/photos/pmarkham/5361277692

Slide 5

Slide 5 text

AT F I R S T https://www.flickr.com/photos/jakerust/16661140289/

Slide 6

Slide 6 text

https://www.flickr.com/photos/123638374@N08/14184697490

Slide 7

Slide 7 text

https://www.flickr.com/photos/123638374@N08/14184697490

Slide 8

Slide 8 text

DevMynd https://twitter.com/tenderlove/status/573907559871971328

Slide 9

Slide 9 text

DevMynd https://twitter.com/tenderlove/status/573907559871971328

Slide 10

Slide 10 text

DevMynd S A N D I M E T Z E X P E RT AT E V E RY T H I N G S E R I O U S LY, G E T I T A M A Z I N G B O O K http://www.sandimetz.com/ http://www.poodr.com/

Slide 11

Slide 11 text

DevMynd S A N D I M E T Z E X P E RT AT E V E RY T H I N G S E R I O U S LY, G E T I T A M A Z I N G B O O K http://www.sandimetz.com/ http://www.poodr.com/

Slide 12

Slide 12 text

D E S I G N D E C I D I N G H OW TO A R R A N G E C O D E https://www.flickr.com/photos/matley0/3616669592

Slide 13

Slide 13 text

D E S I G N D E C I D I N G H OW TO A R R A N G E C O D E https://www.flickr.com/photos/matley0/3616669592

Slide 14

Slide 14 text

O B J E C T- O R I E N T E D D E S I G N G R O U P I N G R E L AT E D F U N C T I O N A L I T Y I N O B J E C T S https://www.flickr.com/photos/mwanasimba/2901201955/

Slide 15

Slide 15 text

DevMynd A L A N G UA G E F E AT U R E A WAY O F T H I N K I N G O B J E C T- O R I E N T E D D E S I G N I S https://www.flickr.com/photos/56627607@N05/15635620289/

Slide 16

Slide 16 text

DevMynd A L A N G UA G E F E AT U R E A WAY O F T H I N K I N G O B J E C T- O R I E N T E D D E S I G N I S A D E S T I N AT I O N A M E A N S TO A N E N D https://www.flickr.com/photos/56627607@N05/15635620289/

Slide 17

Slide 17 text

https://www.flickr.com/photos/redvers/532076662/

Slide 18

Slide 18 text

https://www.flickr.com/photos/redvers/532076662/

Slide 19

Slide 19 text

H I G H L OW H I G H L OW C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 20

Slide 20 text

H I G H L OW H I G H L OW C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 21

Slide 21 text

H I G H L OW H I G H L OW Procedures C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 22

Slide 22 text

H I G H L OW H I G H L OW Procedures C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 23

Slide 23 text

CalendarParamMgr GetCalendarIndex CalendarRouteResolver CalendarRouteResolverFactory RouteResolver RouteReceiver

Slide 24

Slide 24 text

H I G H L OW H I G H L OW Procedures Set of Small Objects C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 25

Slide 25 text

H I G H L OW H I G H L OW Procedures ⚠⚡ Set of Small Objects C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 26

Slide 26 text

H I G H L OW H I G H L OW Procedures Set of Small Objects C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E Really big objects

Slide 27

Slide 27 text

H I G H L OW H I G H L OW Procedures Set of Small Objects C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E Really big objects The wrong set of small objects

Slide 28

Slide 28 text

H I G H L OW H I G H Procedures Set of Small Objects L OW C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E Really big objects The wrong set of small objects

Slide 29

Slide 29 text

H I G H L OW H I G H Procedures Set of Small Objects L OW C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E Really big objects The wrong set of small objects

Slide 30

Slide 30 text

PAT T E R N S https://www.flickr.com/photos/dakluza/6665460621

Slide 31

Slide 31 text

O B S E R V E R N E W E M A I L User

Slide 32

Slide 32 text

O B S E R V E R User UserObserver

Slide 33

Slide 33 text

O B S E R V E R User UserObserver ! E M A I L N E W

Slide 34

Slide 34 text

H I G H L OW H I G H L OW E A S I E R TO C H A N G E H A R D E R TO U N D E R S TA N D C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 35

Slide 35 text

https://www.flickr.com/photos/betsyweber/5902421276

Slide 36

Slide 36 text

https://www.flickr.com/photos/grungetextures/4162992874

Slide 37

Slide 37 text

S O L I D https://www.flickr.com/photos/chrisjfry/309574260/

Slide 38

Slide 38 text

N A M E S U M M A RY U T I L I T Y S O L I D

Slide 39

Slide 39 text

S I N G L E R E S P O N S I B I L I T Y P R I N C I P L E S O L I D https://www.flickr.com/photos/shenamt/8582808329/

Slide 40

Slide 40 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O L I D

Slide 41

Slide 41 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O L I D

Slide 42

Slide 42 text

O P E N / C L O S E D P R I N C I P L E S O L I D https://www.flickr.com/photos/28481088@N00/4063800774/

Slide 43

Slide 43 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L I D

Slide 44

Slide 44 text

L I S KOV S U B S T I T U T I O N P R I N C I P L E S O L I D https://www.flickr.com/photos/vpickering/14416940341/

Slide 45

Slide 45 text

DevMynd Let Φ(x) be a property provable about objects x of type T. Then Φ(y) should be true for objects y of type S where S is a subtype of T.

Slide 46

Slide 46 text

L I S KOV S U B S T I T U T I O N P R I N C I P L E S O L I D https://www.flickr.com/photos/vpickering/14416940341/

Slide 47

Slide 47 text

I T ’ S N E V E R TO O L AT E TO https://www.flickr.com/photos/wcouch/8578612563/

Slide 48

Slide 48 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L L I S K O V S U B S T I T U T I O N I N H E R I TA N C E . I T ’ S A T H I N G . L O W I D

Slide 49

Slide 49 text

I N T E R FA C E S E G R E G AT I O N P R I N C I P L E S O L I D https://www.flickr.com/photos/66126733@N04/8477516123/i

Slide 50

Slide 50 text

W H Y S E G R E G AT E I N T E R FA C E S ? Musician AlbumCreator recordSong editSong mixSong sellMerch playSetList Gig

Slide 51

Slide 51 text

W H Y S E G R E G AT E I N T E R FA C E S ? Musician AlbumCreator recordSong editSong mixSong sellMerch playSetList Gig driveVan

Slide 52

Slide 52 text

W H Y S E G R E G AT E I N T E R FA C E S ? StudioActions AlbumCreator recordSong editSong mixSong sellMerch playSetList Gig driveVan VenueActions

Slide 53

Slide 53 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L L I S K O V S U B S T I T U T I O N I N H E R I TA N C E . I T ’ S A T H I N G . L O W I I N T E R FA C E S E G R E G AT I O N M A K E T H E A P I S M A L L H I G H D

Slide 54

Slide 54 text

D E P E N D E N C Y I N V E R S I O N P R I N C I P L E S O L I D https://www.flickr.com/photos/hansmaulwurf/13702053625/

Slide 55

Slide 55 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L L I S K O V S U B S T I T U T I O N I N H E R I TA N C E . I T ’ S A T H I N G . L O W I I N T E R FA C E S E G R E G AT I O N M A K E T H E A P I S M A L L H I G H D D E P E N D E N C Y I N V E R S I O N M O V E C H O I C E S T O E D G E S O F S Y S T E M H I G H

Slide 56

Slide 56 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L L I S K O V S U B S T I T U T I O N I N H E R I TA N C E . I T ’ S A T H I N G . L O W I I N T E R FA C E S E G R E G AT I O N M A K E T H E A P I S M A L L H I G H D D E P E N D E N C Y I N V E R S I O N M O V E C H O I C E S T O E D G E S O F S Y S T E M H I G H

Slide 57

Slide 57 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L L I S K O V S U B S T I T U T I O N I N H E R I TA N C E . I T ’ S A T H I N G . L O W I I N T E R FA C E S E G R E G AT I O N M A K E T H E A P I S M A L L H I G H D D E P E N D E N C Y I N V E R S I O N M O V E C H O I C E S T O E D G E S O F S Y S T E M H I G H

Slide 58

Slide 58 text

https://www.flickr.com/photos/29295318@N08/19322005453

Slide 59

Slide 59 text

S T R AT E G Y & TA C T I C S https://www.flickr.com/photos/teegardin/6150427712/

Slide 60

Slide 60 text

\ O / \ O / \ O / G OA L : P R O M O U N TA I N E E R S T R AT E G Y: C L I M B T H I S M T N TA C T I C S : T H E R O U T E U P https://www.flickr.com/photos/frenchy/222016256/

Slide 61

Slide 61 text

\ O / \ O / \ O / G OA L : P R O M O U N TA I N E E R S T R AT E G Y: C L I M B T H I S M T N TA C T I C S : T H E R O U T E U P 1 2 3 https://www.flickr.com/photos/frenchy/222016256/

Slide 62

Slide 62 text

G OA L : P R O M O U N TA I N E E R S T R AT E G Y: C L I M B T H I S M T N TA C T I C S : T H E R O U T E U P \ O / https://www.flickr.com/photos/frenchy/222016256/

Slide 63

Slide 63 text

G OA L : P R O M O U N TA I N E E R S T R AT E G Y: C L I M B T H I S M T N https://www.flickr.com/photos/frenchy/222016256/

Slide 64

Slide 64 text

G OA L : C H A N G E A B L E S O F T WA R E S T R AT E G Y: TA C T I C S : O O D E S I G N S O L I D https://www.flickr.com/photos/sunfox/5084875405/

Slide 65

Slide 65 text

G OA L : C H A N G E A B L E S O F T WA R E S T R AT E G Y: TA C T I C S : O O D E S I G N S O L I D https://www.flickr.com/photos/sunfox/5084875405/

Slide 66

Slide 66 text

N A M E S U M M A RY U T I L I T Y S S I N G L E R E S P O N S I B I L I T Y O N E R E S P O N S I B I L I T Y P E R C L A S S M E D O O P E N / C L O S E D D O N ’ T E D I T C O D E ; A D D N E W C O D E L O W L L I S K O V S U B S T I T U T I O N I N H E R I TA N C E . I T ’ S A T H I N G . L O W I I N T E R FA C E S E G R E G AT I O N M A K E T H E A P I S M A L L H I G H D D E P E N D E N C Y I N V E R S I O N M O V E C H O I C E S T O E D G E S O F S Y S T E M H I G H

Slide 67

Slide 67 text

G OA L : C H A N G E A B L E S O F T WA R E S T R AT E G Y: TA C T I C S : S O L I D P R I N C I P L E S https://www.flickr.com/photos/sunfox/5084875405/

Slide 68

Slide 68 text

G OA L : C H A N G E A B L E S O F T WA R E S T R AT E G Y: TA C T I C S : S O L I D P R I N C I P L E S https://www.flickr.com/photos/sunfox/5084875405/

Slide 69

Slide 69 text

G OA L : C H A N G E A B L E S O F T WA R E S T R AT E G Y: TA C T I C S : S O L I D P R I N C I P L E S https://www.flickr.com/photos/sunfox/5084875405/

Slide 70

Slide 70 text

https://www.flickr.com/photos/jonathancohen/15420956905

Slide 71

Slide 71 text

H I G H L OW H I G H L OW The wrong set of small objects ❗ C O S T O F U N D E R S TA N D I N G C O S T O F C H A N G E

Slide 72

Slide 72 text

DevMynd T H E O N LY WAY TO M A K E A S TO P - T H E - WO R L D R E FA C TO R I N G WO R K I S TO N OT D O I T . http://www.imdb.com/title/tt0086567/

Slide 73

Slide 73 text

https://www.flickr.com/photos/frenchy/222016256/

Slide 74

Slide 74 text

https://www.flickr.com/photos/frenchy/222016256/

Slide 75

Slide 75 text

DevMynd post.comments.first.author.email NOPE

Slide 76

Slide 76 text

DevMynd https://www.flickr.com/photos/83794824@N07/8059223873/

Slide 77

Slide 77 text

S TA B L E

Slide 78

Slide 78 text

S TA B L E

Slide 79

Slide 79 text

S TA B L E S M E L L Y O U R C O D E https://www.flickr.com/photos/pedrosimoes7/169983321/

Slide 80

Slide 80 text

T I N Y P R O B L E M S F I R S T S TA B L E https://www.flickr.com/photos/ian-arlett/13706787684/

Slide 81

Slide 81 text

S TA B L E https://www.flickr.com/photos/ian-arlett/13706787684/ T I N Y P R O B L E M S F I R S T

Slide 82

Slide 82 text

A U G M E N T T E S T S S TA B L E https://www.flickr.com/photos/horiavarlan/4273968004/

Slide 83

Slide 83 text

https://www.flickr.com/photos/horiavarlan/4273968004/ S TA B L E A U G M E N T T E S T S

Slide 84

Slide 84 text

S TA B L E BA C K U P https://www.flickr.com/photos/mjonasson/19228720295/

Slide 85

Slide 85 text

S TA B L E L E AV E I T B E T T E R T H A N Y O U F O U N D I T https://www.flickr.com/photos/spierisf/6989462184/

Slide 86

Slide 86 text

https://www.flickr.com/photos/spierisf/6989462184/ S TA B L E L E AV E I T B E T T E R T H A N Y O U F O U N D I T

Slide 87

Slide 87 text

https://www.flickr.com/photos/spierisf/6989462184/ S TA B L E L E AV E I T B E T T E R T H A N Y O U F O U N D I T

Slide 88

Slide 88 text

E X P E C T G O O D R E A S O N S S TA B L E https://www.flickr.com/photos/an_untrained_eye/5012331537

Slide 89

Slide 89 text

https://www.flickr.com/photos/an_untrained_eye/5012331537 S TA B L E E X P E C T G O O D R E A S O N S

Slide 90

Slide 90 text

S S M E L L Y O U R C O D E T T I N Y P R O B L E M S F I R S T A A U G M E N T T E S T S B B A C K U P L L E AV E I T B E T T E R E E X P E C T G O O D R E A S O N S

Slide 91

Slide 91 text

S S M E L L Y O U R C O D E T T I N Y P R O B L E M S F I R S T A A U G M E N T T E S T S B B A C K U P L L E AV E I T B E T T E R E E X P E C T G O O D R E A S O N S

Slide 92

Slide 92 text

DevMynd https://twitter.com/kentbeck/status/250733358307500032

Slide 93

Slide 93 text

DevMynd https://twitter.com/kentbeck/status/250733358307500032

Slide 94

Slide 94 text

https://www.flickr.com/photos/frenchy/222016256/

Slide 95

Slide 95 text

\ O / https://www.flickr.com/photos/frenchy/222016256/

Slide 96

Slide 96 text

https://www.flickr.com/photos/bevrichardmartin/5985876061/ https://www.flickr.com/photos/discarnate/27211024/ https://www.flickr.com/photos/lynardie/16191183291/

Slide 97

Slide 97 text

DevMynd Sarah Mei [email protected] @sarahmei THANK YOU!