Patrones Para Mortales
Patrones Para Mortales
Patrones para Mortales
C# De
Patrones Para Mortales
¿De qué debemos defender nuestro
código?
• Entradas incorrectas
• Operaciones invalidas
• Problemas del/los sistemas
• Futuros desarrolladores
Patrones Para Mortales
"Si algo malo puede
pasar, pasará"
Ley de Murphy
Patrones Para Mortales
Programación Defensiva
“La programación defensiva es un enfoque que busca
mejorar el software y el código fuente, en términos
de”
• Calidad
• Comprensibilidad
• Predictibilidad
Patrones Para Mortales
¿ Cómo vamos a lograrlo?
• Escribiendo más código
• Eliminando código innecesario
Patrones Para Mortales
Riesgo Defensa
Patrones Para Mortales
Refactorizar es el proceso en cual
modificamos la estructura de nuestro
código, sin alterar su comportamiento.
Patrones Para Mortales
Mejorar la calidad de nuestro
código
• Responsabilidad única
• Separación de reponsabilidades
• DRY (Don’t Repeat Yourself)
Patrones Para Mortales
Unit Test
1. Definir casos de test
2. Crear tests para cada caso
3. Ejecutar los tests
4. Ejecutar nuevamente los tests
Patrones Para Mortales
Principle
of Least
Surprise
Patrones Para Mortales
Debe de comportarse como
todos los usuarios
esperarían que se comporte.
Principle of Least
Surprise
Patrones Para Mortales
Defensive Code
• Validar argumentos de métodos
• Guard Clauses
• Manejas Nulls
• Option/Maybe
• Retornar resultados predecibles
• Manejar excepciones
• Exception management strategy
Patrones Para Mortales
“La llamo mi error de
mil millones de dólares”
Tony Hoare
https://es.wikipedia.org/wiki/C._A.
_R._Hoare
Patrones Para Mortales
Patrones Para Mortales
¿Por qué debo escribir código
defensivo?
• Mejora la calidad
• Mas entendible y manejable
• Mayor Predictibilidad
• Nos previene de bugs futuros
• Mejora la testiabilidad
Patrones Para Mortales
Gracias!!!
Germán Küber
Software Architect & Developer
Net-Baires
http://www.germankuber.com.ar/
@GermanKuber
Patrones Para Mortales
https://net-baires.com.ar/JoinSlack
Patrones Para Mortales
Jornada de Arquitectura .NET
Unit Test - ¿Qué, Cómo, Dónde y Cuándo?
http://jornadadearquitectura.net/
Porque hacer arquitectura no es únicamente cosa de
Arquitectos.
Patrones Para Mortales
¿Por qué estoy escribiendo
código defensivo?
Style
Patrones Para Mortales

Defensive code