resilience patterns and defensive programming by daniel fisher

51
danielfisher.com

Upload: sigma-software

Post on 17-Jan-2017

624 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 2: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 3: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 4: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 5: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 6: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/38295844@N05/4980776534/

Page 7: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/pagedooley/2398572388/

Page 8: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

http://www.city-data.com/forum/anchorage/692696-anchorage-here-we-come-finally.html

Page 9: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

BOSS

Page 10: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

“Office Space” by Mike Judge / Twentieth Century Fox Film Corporation

Page 11: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

CHANGE

Page 12: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/bluedharma/89186151

Page 13: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/armydre2008/3144377781

Page 14: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

RELEASE

Page 15: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Time

Chang

e Big

Sm

all

Page 16: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 17: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

FAIL

Page 18: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/38403488@N08/5100179116

Page 19: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Thomas Edison

Page 20: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 21: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/edrost88/8235944730

Page 22: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Yoda Conditions

if (variable.Equals("literal")){

... }

if ("literal".Equals(variable)){

... }

Page 23: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Check Collections for Null

var files = SomeApi.GetFileList();

if (files != null){

for (var i = 0; i < files.length; i++){

...

}

}

Page 24: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

All classes are sealed by default

public class Class1{...

}

public sealed class Class1{...

}

Page 25: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

DDD Value Object Input Validation

public sealed class ZipCode: IValueObject

{public ZipCode(int value)

{

// Input validation!!!

Value = value;

}

public int Value { get; private set;}

}

Page 26: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 27: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 28: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 29: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 30: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 31: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 32: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

http://research.microsoft.com/en-us/um/people/lamport/pubs/distributed-system.txt

Page 33: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 34: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 35: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 36: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 37: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 38: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 39: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 40: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 41: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 42: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/qubodup/8278039181

Page 43: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/st3f4n/143623217

Page 44: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

http://moonbasetshirts.limitedrun.com/products/557785-palpatine-vader-2016

Page 45: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

https://www.flickr.com/photos/susivinh/16341538221

Page 46: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 47: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 48: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Antifragility

Resilience

Robustness

Fragile

Page 49: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 50: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com

Page 51: Resilience Patterns and Defensive Programming by Daniel Fisher

danielfisher.com