2015 - network 2015, ua: defensive programming, resilience patterns & antifragility

51
danielfisher.com

Upload: daniel-fisher

Post on 16-Apr-2017

271 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 2: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 3: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 4: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 5: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 6: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 7: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 8: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 9: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

BOSS

Page 10: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 11: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

CHANGE

Page 12: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 13: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 14: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

RELEASE

Page 15: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Time

Chang

e Big

Sm

all

Page 16: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 17: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

FAIL

Page 18: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 19: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Thomas Edison

Page 20: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 21: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 22: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Yoda Conditions

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

... }

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

... }

Page 23: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Check Collections for Null

var files = SomeApi.GetFileList();

if (files != null){

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

...

}

}

Page 24: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

All classes are sealed by default

public class Class1{...

}

public sealed class Class1{...

}

Page 25: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

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: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 27: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 28: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 29: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 30: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 31: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 32: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 33: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 34: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 35: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 36: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 37: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 38: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 39: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 40: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 41: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 42: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 43: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 44: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 45: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

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

Page 46: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 47: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 48: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Antifragility

Resilience

Robustness

Fragile

Page 49: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 50: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com

Page 51: 2015 - Network 2015, UA: Defensive programming, resilience patterns & antifragility

danielfisher.com