Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

33
Nuestro código habla, ¿Qué nos dice? MADRID · NOV 18-19 · 2016

Transcript of Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Page 1: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Nuestro código habla,

¿Qué nos dice?

MADRID · NOV 18-19 · 2016

Page 2: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Modesto San Juan@msanjuan

MADRID · NOV 18-19 · 2016

Page 3: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Contexto

Page 4: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Este podría ser tu próximo compañero

Page 5: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

“Hay que tocar ese código de hace 6 meses”

Page 6: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Tu yo del futuro te lo agradecerá

Page 7: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

¿Qué podemos hacer?

• Estructura

• API

• Código

• Tests

• Datos

• Monitorización

• Historia

Page 8: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Estructura

Page 9: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Estructura

Page 10: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Estructura

Page 11: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Estructura

Page 12: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Estructura

Page 13: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Estructura

Page 14: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Tu API es una puerta a tu negocio

Page 15: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

APIs

• Mínima sorpresa

• Códigos de retorno adecuados

• Verbos adecuados

• Tests

• Datos

• Monitorización

Page 16: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

APIs: mínima sorpresa

/tasks/1/status /tasks/1/status /tasks/1/detail /tasks/1/errors

Page 17: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Código

Lenguaje del negocio

Arquitectura hexagonal*

Abstracciones correctas

Niveles de abstracción

SingletonTight CouplingUntestabilityPremature optimizationIndescriptible namingDuplication

Single ResponsibilityOpen/CloseLiskov SubstitutionInterface SegregationDependency Inversion

Page 18: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

“Duplication is far cheaper than the wrong abstraction”

Sandy Metz

Page 19: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Falta de abstracciones: Primitivos voladores

Page 20: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Código

Page 21: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Tests

Deben hablar de funcionalidades

En el lenguaje del dominio

Legibles

Simples

VS

Page 22: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Datos

BBDDDevopsConfiguraciónParametrización...

Page 23: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Una vez desplegado...

Page 24: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016
Page 25: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

¿Monitorización?

Page 26: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Identificación de errores

Page 27: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Reproducción de errores

Page 28: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Toma de decisiones...

Page 29: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Proactivo vs Reactivo

Page 30: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

¡Sin pasarse!

Page 31: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Historia

¿Dónde pongo el foco?

Silos de conocimiento

Acoplamientos inesperados

Page 32: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

En resumen

Estructura

API

Código (incluyendo DevOps!)

Datos (BBDD, configuración,

parametrización)

Monitorización

Historia

Naming! Siempre Naming!

Page 33: Nuestro código habla, ¿Qué nos dice? - Codemotion 2016

Gracias!