5. Escribiendo código
limpio
No es lo mismo el proceso de escribir código
para hacerlo funcionar que el proceso de dejar
nuestro código limpio.
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. “Clean code is simple, direct and reads like well-
written prose” - Grady Booch
“Clean code can be read and enhanced by a
developer other than its original author. It has unit
tests” - Dave Thomas
“Clean code always looks like it was written by
someone who cares” - Michael Feathers
“No duplication, expressiveness, meaningful names”
- Ron Jeffries
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. 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. Comentarios
• Comentarios = fracasos
• Difíciles de mantener
// Acá validamos si el cliente posee saldo
if (cliente.Saldo > totalCompra && cliente.Saldo <=
MAXIMO_TOTAL_COMPRA && …)
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. 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. “Deja el mundo un poco mejor de lo que
lo encontraste” – Boy Scouts of America
Notas del editor
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.