SlideShare una empresa de Scribd logo
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

Más contenido relacionado

PPTX
Unit testing consejos
PPTX
Defensive code C#
ODP
Testing Ruby on Rails (spanish)
PPTX
Documentación útil
PPTX
The art of unit testing
PDF
Test Driven Infrastructure
PDF
Bdd (Behavior Driven Development)
PPT
Tuenti - de la idea a la web
Unit testing consejos
Defensive code C#
Testing Ruby on Rails (spanish)
Documentación útil
The art of unit testing
Test Driven Infrastructure
Bdd (Behavior Driven Development)
Tuenti - de la idea a la web

Más de Germán Küber (20)

PPTX
Explorando el Diseño de la Memoria en Rust
PPTX
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
PPTX
Mev Rapido.pptx
PPTX
Que son los smart contracts.pptx
PPTX
De 0 a blockchain developer en 3 meses
PPTX
Patrones funcionales
PPTX
Patrones de diseño en solidity
PPTX
Vertical slice architecture
PPTX
De 0 a blockchain developer en 3 meses
PPTX
Diamon pattern presentation
PPTX
Patrones funcionales
PPTX
Programación Funcional C#
PPTX
Event sourcing
PPTX
C sharp 8
PPTX
Arquitectura en aplicaciones Angular y buenas practicas.
PPTX
Un mundo sin if. generics al rescate
PPTX
Azure 360º para Desarrolaldores
PPTX
Vertical slice architecture
PPTX
Microservicios net arquitectura para aplicaciones net contenerizadas - net ...
PPTX
CQRS .NET Conf Chile 2018
Explorando el Diseño de la Memoria en Rust
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
Mev Rapido.pptx
Que son los smart contracts.pptx
De 0 a blockchain developer en 3 meses
Patrones funcionales
Patrones de diseño en solidity
Vertical slice architecture
De 0 a blockchain developer en 3 meses
Diamon pattern presentation
Patrones funcionales
Programación Funcional C#
Event sourcing
C sharp 8
Arquitectura en aplicaciones Angular y buenas practicas.
Un mundo sin if. generics al rescate
Azure 360º para Desarrolaldores
Vertical slice architecture
Microservicios net arquitectura para aplicaciones net contenerizadas - net ...
CQRS .NET Conf Chile 2018
Publicidad

Último (20)

PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
clase auditoria informatica 2025.........
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Maste clas de estructura metálica y arquitectura
PPT
Que son las redes de computadores y sus partes
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Estrategia de apoyo tecnología miguel angel solis
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
REDES INFORMATICAS REDES INFORMATICAS.pptx
clase auditoria informatica 2025.........
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Presentación PASANTIAS AuditorioOO..pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
CyberOps Associate - Cisco Networking Academy
Maste clas de estructura metálica y arquitectura
Que son las redes de computadores y sus partes
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Publicidad

Defensive code