SlideShare a Scribd company logo
danielfisher.com
Defensive Programming,
Daniel Fisher
Resilience Patterns &
Antifragility
danielfisher.com
I’m a technician & always concerned about bandwidth
So I ask you to send one packet instead of two
DANIEL
My name is
Any further questions? Just Ask!
danielfisher.com
software
I design, develop, deploy, teach, train, coach and speak
HTML5 & WEB, DATA ACCESS & PERFORMANCE,
SCALABLE & TESTABLE DESIGN, DISTRIBUTED SYSTEMS
& SERVICES, SECURITY & TRUST
lennybacon.com my blog url
@lennybacon my twitter handle
info@danielfisher.com my smtp
find my services at danielfisher.com
danielfisher.com
THAT IS ALL THAT I DEEPLY BELEVE IN
D I S C L A I M E R
IT FITS MY SHOES
IT MIGHT NOT FIT YOURS
THIS PRESENTATION CONTAINS MY
PERSONAL VIEW ON THE WORLD
IT IS BASED ON MY EXPERIENCE IN SOFTWARE DEVELOPMENT PROJECTS SINCE 1996
MOST THINGS I LEARNED FROM PAIN
OTHERS FROM MOMENTS OF GRACEFULNESS, BRAVENESS & SUCCESS
danielfisher.com
CHAPTER 1
Software Development: A world of fear
danielfisher.com
https://www.flickr.com/photos/38295844@N05/4980776534/
danielfisher.com
https://www.flickr.com/photos/pagedooley/2398572388/
danielfisher.com
http://www.city-data.com/forum/anchorage/692696-anchorage-here-we-come-finally.html
danielfisher.com
BOSS
danielfisher.com
“Office Space” by Mike Judge / Twentieth Century Fox Film Corporation
danielfisher.com
CHANGE
danielfisher.com
https://www.flickr.com/photos/bluedharma/89186151
danielfisher.com
https://www.flickr.com/photos/armydre2008/3144377781
danielfisher.com
RELEASE
danielfisher.com
Time
Change
Big…
Small…
danielfisher.com
danielfisher.com
FAIL
danielfisher.com
https://www.flickr.com/photos/38403488@N08/5100179116
danielfisher.com
I have not failed!
I've just found
10,000 ways that
won't work …Thomas Edison
danielfisher.com
CHAPTER 2
Paranoia basics: Defensive programming
danielfisher.com
https://www.flickr.com/photos/ajahan/8413794849
danielfisher.com
Yoda Conditions
if (variable.Equals("literal"))
{
...
}
if ("literal".Equals(variable))
{
...
}
danielfisher.com
Check Collections for Null
var files = SomeApi.GetFileList();
if (files != null)
{
for (var i = 0; i < files.length; i++)
{
...
}
}
danielfisher.com
All classes are sealed by default
public class Class1
{
...
}
internal sealed class Class1
{
...
}
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;}
}
danielfisher.com
CHAPTER 3
Advanced paranoia tactics: Robustness
danielfisher.com
CULTURE
IT’S ALL ABOUT
danielfisher.com
Finding Bugs is
good and mustn’t
be punished!
It makes code
less buggy!
danielfisher.com
Finding Bugs in
tests is even
better!
No customer will
even face them!
danielfisher.com
Try to break, burn,
shoot and drown
it together!
I call it
Breakstorming!
danielfisher.com
CHAPTER 4
Professional Paranoia: Resilience patterns
danielfisher.com
A distributed system
is one in which the failure
of a computer you didn't
even know existed can
render
your computer unusable
http://research.microsoft.com/en-us/um/people/lamport/pubs/distributed-system.txt
danielfisher.com
danielfisher.com
Topology changes
Networks fail
Latency varies by location
Bandwidth differs by location
Things get hacked
danielfisher.com
Servers get rebooted
Code has bugs
Other users might use it different
Failover means offline
Processing time varies by amount of data
Environments differ
File system is not always available
danielfisher.com
Life is not a
walk in the park.
neither is software!
danielfisher.com
Success is the ability
to go from one
failure to another
with no loss of
enthusiasm.
WinstonChurchill
danielfisher.com
Scale like a boss
Asynchronicity
No one waiting for an error
Bulkheads & Replays
Loose coupling for the win
But dare you forget the dead letters
No cascading failures and stack trace
danielfisher.com
BASE OVER ACID
Atomic, Consistent, Isolated and Durable
solutions are not a silver bullet.
Basic Availability, Soft-state and Eventual consistency work
better in most distributed scenarios.
BUT YOU MUST THINK DIFFERENT FOR BASE
Use a more relaxed consistency model to reduce coupling
Queues are as transactional as databases
danielfisher.com
Idempotency
Non-idempotency is complicated to handle
and increases coupling between participants.
stateless stateless stateless
THIS ALSO REQUIRES YOU TO THINK DIFFERENT
But in the end it is nothing more than divide and conquer with an eye on the results
Functional programming and
immutable types for the win.
danielfisher.com
Monitor & Audit
Measure to gain latency control and detect non-
timely responses before they time out.
Learn more about the life of your system to predict its behavior.
If you can’t debug, log is your friend
Respond to detected failures.
20% - 40% logging code
Auditing and Logging can even be party of your architecture
danielfisher.com
Retry Pattern
https://www.flickr.com/photos/st3f4n/143623217
danielfisher.com
Circuit Breaker Pattern
https://www.flickr.com/photos/qubodup/8278039181
danielfisher.com
Leader Election Pattern
http://moonbasetshirts.limitedrun.com/products/557785-palpatine-vader-2016
danielfisher.com
CompensatingTransaction Pattern
https://www.flickr.com/photos/susivinh/16341538221
danielfisher.com
CHAPTER 5
Things that gain from disorder: Antifragility
danielfisher.com
Nassim Nicholas Taleb wrote two interesting books
about how economical systems behave.
He focusses on what happens under
stress and on unexpected occurrences
of events.
The black swan
Antifragility
danielfisher.com
Antifragility
Resilience
Robustness
Fragile
Time
Value/Correctness/Stability/…
danielfisher.com
What Doesn't Kill You
Makes You Stronger
Every time something catastrophic
happens that you take on and survive…
… your team and you code becomes
Stronger, Better, Faster, More
danielfisher.com
Asymmetric information & options
An opportunity to cope with
the lack of knowledge
ST R AT E GY
Business, Architecture & Code
Long Term vs Short Term
Sustainability vs Reward
danielfisher.com
Thank you!
danielfisher.com my company
lennybacon.com my blog url
@lennybacon my twitter handle
info@danielfisher.com my smtp

More Related Content

Viewers also liked

2011 - Dotnet Information Day: NUGET
2011 - Dotnet Information Day: NUGET2011 - Dotnet Information Day: NUGET
2011 - Dotnet Information Day: NUGET
Daniel Fisher
 

Viewers also liked (20)

2009 Dotnet Information Day: More effective c#
2009 Dotnet Information Day: More effective c#2009 Dotnet Information Day: More effective c#
2009 Dotnet Information Day: More effective c#
 
2006 DDD4: Data access layers - Convenience vs. Control and Performance?
2006 DDD4: Data access layers - Convenience vs. Control and Performance?2006 DDD4: Data access layers - Convenience vs. Control and Performance?
2006 DDD4: Data access layers - Convenience vs. Control and Performance?
 
2015 - Basta! 2015, DE: JavaScript und build
2015 - Basta! 2015, DE: JavaScript und build2015 - Basta! 2015, DE: JavaScript und build
2015 - Basta! 2015, DE: JavaScript und build
 
antifragility - DevOps Melbourne November 2013
antifragility - DevOps Melbourne November 2013 antifragility - DevOps Melbourne November 2013
antifragility - DevOps Melbourne November 2013
 
A Behavioral Interpretation of Resilience and Antifragility
A Behavioral Interpretation of Resilience and AntifragilityA Behavioral Interpretation of Resilience and Antifragility
A Behavioral Interpretation of Resilience and Antifragility
 
Designing the Agile Connected Organization
Designing the Agile Connected OrganizationDesigning the Agile Connected Organization
Designing the Agile Connected Organization
 
2008 - TechDays PT: Building Software + Services with Volta
2008 - TechDays PT: Building Software + Services with Volta2008 - TechDays PT: Building Software + Services with Volta
2008 - TechDays PT: Building Software + Services with Volta
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
2010 - Basta!: REST mit ASP.NET MVC
2010 - Basta!: REST mit ASP.NET MVC2010 - Basta!: REST mit ASP.NET MVC
2010 - Basta!: REST mit ASP.NET MVC
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc
 
2011 - DNC: REST Wars
2011 - DNC: REST Wars2011 - DNC: REST Wars
2011 - DNC: REST Wars
 
2009 - DNC: Silverlight ohne UI - Nur als Cache
2009 - DNC: Silverlight ohne UI - Nur als Cache2009 - DNC: Silverlight ohne UI - Nur als Cache
2009 - DNC: Silverlight ohne UI - Nur als Cache
 
2008 - TechDays PT: Modeling and Composition for Software today and tomorrow
2008 - TechDays PT: Modeling and Composition for Software today and tomorrow2008 - TechDays PT: Modeling and Composition for Software today and tomorrow
2008 - TechDays PT: Modeling and Composition for Software today and tomorrow
 
2008 - Basta!: DAL DIY
2008 - Basta!: DAL DIY2008 - Basta!: DAL DIY
2008 - Basta!: DAL DIY
 
2011 - Dotnet Information Day: NUGET
2011 - Dotnet Information Day: NUGET2011 - Dotnet Information Day: NUGET
2011 - Dotnet Information Day: NUGET
 
2015 TechSummit Web & Cloud - Gem, NPM, Bower, Nuget, Paket - Päckchen hier, ...
2015 TechSummit Web & Cloud - Gem, NPM, Bower, Nuget, Paket - Päckchen hier, ...2015 TechSummit Web & Cloud - Gem, NPM, Bower, Nuget, Paket - Päckchen hier, ...
2015 TechSummit Web & Cloud - Gem, NPM, Bower, Nuget, Paket - Päckchen hier, ...
 
2006 - Basta!: Advanced server controls
2006 - Basta!: Advanced server controls2006 - Basta!: Advanced server controls
2006 - Basta!: Advanced server controls
 
A behavioural model for the discussion of resilience, elasticity, and antifra...
A behavioural model for the discussion of resilience, elasticity, and antifra...A behavioural model for the discussion of resilience, elasticity, and antifra...
A behavioural model for the discussion of resilience, elasticity, and antifra...
 
Saturation vs satisfaction in it industry
Saturation vs satisfaction in it industrySaturation vs satisfaction in it industry
Saturation vs satisfaction in it industry
 
2015 - Network 2015, UA: Defensive programming, resilience patterns & antifra...
2015 - Network 2015, UA: Defensive programming, resilience patterns & antifra...2015 - Network 2015, UA: Defensive programming, resilience patterns & antifra...
2015 - Network 2015, UA: Defensive programming, resilience patterns & antifra...
 

Similar to .NET Developer Days 2015, PL: Defensive programming, resilience patterns & antifragility

Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...
Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...
Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...
Adrian Sanabria
 

Similar to .NET Developer Days 2015, PL: Defensive programming, resilience patterns & antifragility (20)

NRWConf, DE: Defensive programming, resilience patterns & antifragility
NRWConf, DE: Defensive programming, resilience patterns & antifragilityNRWConf, DE: Defensive programming, resilience patterns & antifragility
NRWConf, DE: Defensive programming, resilience patterns & antifragility
 
Word press security 101
Word press security 101  Word press security 101
Word press security 101
 
Open Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration PresentationOpen Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration Presentation
 
The Cloud 9 - Threat & Solutions 2016 by Bobby Dominguez
The Cloud 9 - Threat & Solutions 2016 by Bobby DominguezThe Cloud 9 - Threat & Solutions 2016 by Bobby Dominguez
The Cloud 9 - Threat & Solutions 2016 by Bobby Dominguez
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
 
Mark Villinski - Top 10 Tips for Educating Employees about Cybersecurity
Mark Villinski - Top 10 Tips for Educating Employees about CybersecurityMark Villinski - Top 10 Tips for Educating Employees about Cybersecurity
Mark Villinski - Top 10 Tips for Educating Employees about Cybersecurity
 
Performance - a challenging craft
Performance  - a challenging craftPerformance  - a challenging craft
Performance - a challenging craft
 
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
 
Make Every Spin Count: Putting the Security Odds in Your Favor
Make Every Spin Count: Putting the Security Odds in Your FavorMake Every Spin Count: Putting the Security Odds in Your Favor
Make Every Spin Count: Putting the Security Odds in Your Favor
 
Your Customers Need A Hero - Save Them From Internet Villains With DMARC
Your Customers Need A Hero - Save Them From Internet Villains With DMARCYour Customers Need A Hero - Save Them From Internet Villains With DMARC
Your Customers Need A Hero - Save Them From Internet Villains With DMARC
 
Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...
Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...
Stranded on Infosec Island: Defending the Enterprise with Nothing but Windows...
 
Daniel Lance - What "You've Got Mail" Taught Me About Cyber Security
Daniel Lance - What "You've Got Mail" Taught Me About Cyber SecurityDaniel Lance - What "You've Got Mail" Taught Me About Cyber Security
Daniel Lance - What "You've Got Mail" Taught Me About Cyber Security
 
Law Firm & Legal Department Security & Practice In The Real World
Law Firm & Legal Department Security & Practice In The Real WorldLaw Firm & Legal Department Security & Practice In The Real World
Law Firm & Legal Department Security & Practice In The Real World
 
Can't Touch This: Detecting Lateral Movement In Zero Touch Environments
Can't Touch This: Detecting Lateral Movement In Zero Touch EnvironmentsCan't Touch This: Detecting Lateral Movement In Zero Touch Environments
Can't Touch This: Detecting Lateral Movement In Zero Touch Environments
 
Security for AWS : Journey to Least Privilege (update)
Security for AWS : Journey to Least Privilege (update)Security for AWS : Journey to Least Privilege (update)
Security for AWS : Journey to Least Privilege (update)
 
Security for AWS: Journey to Least Privilege
Security for AWS: Journey to Least PrivilegeSecurity for AWS: Journey to Least Privilege
Security for AWS: Journey to Least Privilege
 
Things that go bump on the web - Web Application Security
Things that go bump on the web - Web Application SecurityThings that go bump on the web - Web Application Security
Things that go bump on the web - Web Application Security
 
Dizzion Channel Partner Training opening the door to stickier customers - la...
Dizzion Channel Partner Training  opening the door to stickier customers - la...Dizzion Channel Partner Training  opening the door to stickier customers - la...
Dizzion Channel Partner Training opening the door to stickier customers - la...
 
Password and Account Management Strategies - April 2019
Password and Account Management Strategies - April 2019Password and Account Management Strategies - April 2019
Password and Account Management Strategies - April 2019
 
The Technical Debt Trap - Michael "Doc" Norton
The Technical Debt Trap - Michael "Doc" NortonThe Technical Debt Trap - Michael "Doc" Norton
The Technical Debt Trap - Michael "Doc" Norton
 

More from Daniel Fisher

2006 - DDD4: Decoupling service oriented backend systems
2006 - DDD4: Decoupling service oriented backend systems2006 - DDD4: Decoupling service oriented backend systems
2006 - DDD4: Decoupling service oriented backend systems
Daniel Fisher
 

More from Daniel Fisher (12)

2011 - DotNetFranken: ASP.NET MVC Localization
2011 - DotNetFranken: ASP.NET MVC Localization2011 - DotNetFranken: ASP.NET MVC Localization
2011 - DotNetFranken: ASP.NET MVC Localization
 
2011 NetUG HH: ASP.NET MVC & HTML 5
2011 NetUG HH: ASP.NET MVC & HTML 52011 NetUG HH: ASP.NET MVC & HTML 5
2011 NetUG HH: ASP.NET MVC & HTML 5
 
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
 
2010 - Basta!: IPhone Apps mit C#
2010 - Basta!: IPhone Apps mit C#2010 - Basta!: IPhone Apps mit C#
2010 - Basta!: IPhone Apps mit C#
 
2010 - Basta: ASP.NET Controls für Web Forms und MVC
2010 - Basta: ASP.NET Controls für Web Forms und MVC2010 - Basta: ASP.NET Controls für Web Forms und MVC
2010 - Basta: ASP.NET Controls für Web Forms und MVC
 
2010 Basta!: Massendaten mit ADO.NET
2010 Basta!: Massendaten mit ADO.NET2010 Basta!: Massendaten mit ADO.NET
2010 Basta!: Massendaten mit ADO.NET
 
2009 - Basta!: Url rewriting mit iis, asp.net und routing engine
2009 - Basta!: Url rewriting mit iis, asp.net und routing engine2009 - Basta!: Url rewriting mit iis, asp.net und routing engine
2009 - Basta!: Url rewriting mit iis, asp.net und routing engine
 
2009 - Basta!: Agiles requirements engineering
2009 - Basta!: Agiles requirements engineering2009 - Basta!: Agiles requirements engineering
2009 - Basta!: Agiles requirements engineering
 
2008 - Basta!: Massendaten auf dem Client
2008 - Basta!: Massendaten auf dem Client2008 - Basta!: Massendaten auf dem Client
2008 - Basta!: Massendaten auf dem Client
 
2008 - Afterlaunch: 10 Tipps für WCF
2008 - Afterlaunch: 10 Tipps für WCF2008 - Afterlaunch: 10 Tipps für WCF
2008 - Afterlaunch: 10 Tipps für WCF
 
2006 - NRW Conf: Asynchronous asp.net
2006 - NRW Conf: Asynchronous asp.net2006 - NRW Conf: Asynchronous asp.net
2006 - NRW Conf: Asynchronous asp.net
 
2006 - DDD4: Decoupling service oriented backend systems
2006 - DDD4: Decoupling service oriented backend systems2006 - DDD4: Decoupling service oriented backend systems
2006 - DDD4: Decoupling service oriented backend systems
 

Recently uploaded

Recently uploaded (20)

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 

.NET Developer Days 2015, PL: Defensive programming, resilience patterns & antifragility

Editor's Notes

  1. No NullReferenceException No accidential assignment
  2. No duplicate validation Trust that values are correct
  3. https://msdn.microsoft.com/en-us/library/dn589788.aspx
  4. https://msdn.microsoft.com/en-us/library/dn589784.aspx
  5. https://msdn.microsoft.com/en-us/library/dn568104.aspx
  6. https://msdn.microsoft.com/en-us/library/dn589804.aspx
  7. Thales of Milet and the olive press