Refactoring to clean code Carlos Peix    Adrian Eidelman  @carlospeix      @aeidelman
clean   CODE
Las pequeñas cosas     importan
Producción vs.Mantenimiento
Escribiendo código          limpio No es lo mismo el proceso de escribir códigopara hacerlo funcionar que el proceso de de...
Ser Profesionales› Hacer el código claro, comprensible, limpio es tan  importante como hacerlo ejecutable› No solamente es...
“Clean code is simple, direct and reads like well-written prose” - Grady Booch“Clean code can be read and enhanced by adev...
(c) 2008 Focus Shift/OSNews/Thom Holwerda - http://www.osnews.com/comics
DEMO
Clases˃ clases deben ser pequeñas! Las˃ y sola una razón por la cual deba Una modificarse.˃ nombre de la clase debe descri...
Nombres˃Nombres por todos lados!˃Revelar la intención  – int d; // elapsed time in days  – List<string> list1 = new List<s...
Comentarios• Comentarios = fracasos• Difíciles de mantener// Acá validamos si el cliente posee saldoif (cliente.Saldo > to...
Funciones˃Las funciones deben ser pequeñas!˃Deben realizar sólo 1 cosa˃Un nivel de abstracción por función˃Usar nombres de...
Formato˃Funciones dependientes verticalmente cerca˃Variables deben declarse tan cerca de su uso como posible˃Indentación˃C...
“Deja el mundo un poco mejor de lo que lo encontraste” – Boy Scouts of America
Refactoring to clean code
Próxima SlideShare
Cargando en…5
×

Refactoring to clean code

1.479 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.479
En SlideShare
0
De insertados
0
Número de insertados
712
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.
  • Queremos dedicar la mayor parte de la sesión a ver código.
  • Cleancode es acerca de pequeñas cosas cuyo valor lejos está de ser pequeño. Esas pequeñas cosas tienen que ver con prestar atención a detalles que van a repercutir fuertemente en la calidad de nuestro código, y eso va a tener un alto impacto en qué tan exitoso puede resultar el proyecto en el que trabajamos, y en qué tan profesionales somos.
  • En la industria aumotriz, de la cual Agile se ha basado fuertemente, la gran mayoría del trabajo no está puesto en la producción, sino en el mantenimiento –o en evitarlo-. En software, el 80% de lo que hacemos es considerado “mantenimiento”. Más aún, dedicamos más veces a leer código –propio y de terceros- que lo que dedicamos a escribir código. Entonces hacer el código comprensible es tan importante como hacerlo ejecutable.
  • Switch mental entre construir código para hacerlo funcional, y refactorizarlo
  • Desafortunadamente en general no vemos esto como parte del arte de programar. Abandonamos nuestro código antes de tiempo, no porque esté listo, sino porque nuestro sistema de valores se focaliza en la apariencia externa en mayor medida que la esencia de lo que entregamos.
  • La primer regla de las clases es que deben ser pequeñas. La segunda regla de las clases es que deben ser más pequeñas que eso.Si nos cuesta determinar un nombre para una clase, probablemente signifique que es demasiado grande.Técnica: Replace a methodwithMethodObject
  • La primer regla de las funciones es que deben ser pequeñas. La segunda regla de las funciones es que deben ser más pequeñas que eso.
  • Refactoring to clean code

    1. 1. Refactoring to clean code Carlos Peix Adrian Eidelman @carlospeix @aeidelman
    2. 2. clean CODE
    3. 3. Las pequeñas cosas importan
    4. 4. Producción vs.Mantenimiento
    5. 5. Escribiendo código limpio No es lo mismo el proceso de escribir códigopara hacerlo funcionar que el proceso de dejar nuestro código limpio.
    6. 6. Ser Profesionales› Hacer el código claro, comprensible, limpio es tan importante como hacerlo ejecutable› No solamente es “cost-effective”, es una cuestión de supervivencia profesional.› Practicar!
    7. 7. “Clean code is simple, direct and reads like well-written prose” - Grady Booch“Clean code can be read and enhanced by adeveloper other than its original author. It has unittests” - Dave Thomas“Clean code always looks like it was written bysomeone who cares” - Michael Feathers“No duplication, expressiveness, meaningful names”- Ron Jeffries
    8. 8. (c) 2008 Focus Shift/OSNews/Thom Holwerda - http://www.osnews.com/comics
    9. 9. DEMO
    10. 10. Clases˃ clases deben ser pequeñas! Las˃ y sola una razón por la cual deba Una modificarse.˃ nombre de la clase debe describir qué El responsabilidad posee..
    11. 11. Nombres˃Nombres por todos lados!˃Revelar la intención – int d; // elapsed time in days – List<string> list1 = new List<string>();˃Los humanos somos buenos con las palabras˃Usar palabras “buscables”˃Explicitar el código – if x[0] > 18 then …
    12. 12. Comentarios• Comentarios = fracasos• Difíciles de mantener// Acá validamos si el cliente posee saldoif (cliente.Saldo > totalCompra && cliente.Saldo <=MAXIMO_TOTAL_COMPRA && …)
    13. 13. Funciones˃Las funciones deben ser pequeñas!˃Deben realizar sólo 1 cosa˃Un nivel de abstracción por función˃Usar nombres descriptivos˃Argumentos: menos es más˃Sin efectos secundarios
    14. 14. Formato˃Funciones dependientes verticalmente cerca˃Variables deben declarse tan cerca de su uso como posible˃Indentación˃Cada programador tiene sus reglas favoritas, pero si trabaja en equipo, el equipo tiene preponderancia
    15. 15. “Deja el mundo un poco mejor de lo que lo encontraste” – Boy Scouts of America

    ×