código limpio - mandev.esmandev.es › cv › edd18 ›...

50
Código limpio revelando la intención del código Manuel Pijierro Sa - @mpijierro

Upload: others

Post on 26-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Código limpiorevelando la intención del código

Manuel Pijierro Sa - @mpijierro

Page 2: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Gracias a...

Page 3: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Gracias a...

Page 4: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Sobre mi

@mpijierro

https://github.com/mpijierro

mandev.es/cv/

Reference Leader Software Development at S|ngular

https://medium.com/@mpijierro

Manuel Pijierro Sa

Page 5: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Talk is cheap. Show me the code

Torvalds, Linux (25-08-2000)

Sobre la charla

Page 6: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Sobre el código limpio

Correcto Simple

Testeable Extensible

Page 7: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Sobre el código limpio

No existe una definición exacta

Tiene algo de subjetivo

Proceso de mejora contínua

Page 8: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Sobre el código limpio

"Code is like humor. When you have to explain it, it’s bad"Cory House, @housecor

"It is not enough for code to work"Robert C. Martin, @unclebobmartin

Page 9: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Mantenibilidad

Page 10: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Mantenibilidad

LEGIBLE COMPRENSIBLE

Page 11: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Aspectos del código que mejoran y facilitan su legibilidad y

comprensibilidad

Page 12: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

1) Sobre los nombres

Page 13: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Evita nombres que no revelen la intención

1) Sobre los nombres

Page 14: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Evita usar varias palabras para un mismo concepto

1) Sobre los nombres nombres

Page 15: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Una palabra por concepto usando estándares y convenciones

Nombre de funciones

- add / remove - increment / decrement- begin / end - insert / delete- create / destroy - lock / unlock- first / last - get / set- show / hide - start / stop

Nombres de variables

- begin / end - first / last- locked / unlocked - min / max- next / previous - old / new- opened / closed - source / targe- up / down

1) Sobre los nombres nombres

Page 16: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

2) Sobre los parámetros

Page 17: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Usa operandos y no opciones

2) Sobre los parámetros

Page 18: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Usa operandos y no opciones

2) Sobre los parámetros

Page 19: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Objetos de dominio y ‘data clumps’

2) Sobre los parámetros

Page 20: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

2) Sobre los parámetrosObjetos de dominio y ‘data clumps’

Page 21: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

3) Sobre las condiciones

Page 22: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Utiliza condicionales semánticos fáciles de leer y comprender

3) Sobre las condiciones

Page 23: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Utiliza condicionales semánticos fáciles de leer y comprender

3) Sobre las condiciones

Page 24: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Un solo nivel de indentación por método

3) Sobre las condiciones

Page 25: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Un solo nivel de indentación por método

3) Sobre las condiciones

Page 26: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Un solo nivel de indentación por método: cláusulas de guarda

3) Sobre las condiciones

Page 27: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Un solo nivel de indentación por método

3) Sobre las condiciones

Page 28: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Un solo nivel de indentación por método

3) Sobre las condiciones

Page 29: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Aprovecha para contar una historia en cada método público...

4) Sobre las funciones

Page 30: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

4) Sobre las funciones...pero no cuentes historias de miedo

Page 31: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

4) Sobre las funcionesPequeñas, menos es más

Page 32: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

5) Sobre los principiosEvita las sorpresas: Principio de la Mínima Sorpresa

Page 33: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

5) Sobre los principiosEvita las sorpresas: Principio de la Mínima Sorpresa

Page 34: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

5) Sobre los principiosEvita las sorpresas: Principio de la Mínima Sorpresa

Page 35: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

5) Sobre los principiosEvita las sorpresas: Principio de la Mínima Sorpresa

Page 36: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

5) Sobre los principiosEvita las sorpresas: Principio de la Mínima Sorpresa

Page 37: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

5) Sobre los principiosEvita las sorpresas: Principio de la Mínima Sorpresa

Page 38: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

6) Sobre los comentariosEl código es el único que siempre dice la verdad

Page 39: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

6) Sobre los comentariosEl código es el único que siempre dice la verdad

Page 40: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

6) Sobre los comentariosEl código es el único que siempre dice la verdad

Page 41: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

7) SimetríaEl código debe parecerse en cualquier parte del proyecto

Simetría sintáctica

Simetría semántica

Simetría sistémica

Page 42: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

7) SimetríaSimetría sistémica

Page 43: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

7) SimetríaSimetría sistémica

Page 44: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

De tu parte queda...

Entrenar

Page 45: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

EntrenarConcentrarse

De tu parte queda...

Page 46: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

EntrenarConcentrarseSer consciente

De tu parte queda...

Page 47: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

EntrenarConcentrarseSer conscienteSer responsable

De tu parte queda...

Page 48: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Bibliografía recomendada

Page 49: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Ahora te toca a ti

¿preguntas? ¿comentarios? ¿sugerencias?

Page 50: Código limpio - mandev.esmandev.es › cv › edd18 › revelando_intencion_del_codigo_manuel_piji… · Sobre el código limpio "Code is like humor. When you have to explain it,

Fin

Gracias por vuestra atención.