2. Hay 4 reglas que son fundamentales para
crear un software bien diseñado.
Ejecutar todas las pruebas
No contiene duplicados
Expresa la intención del programador
Minimiza el numero de clases y
métodos
3. Regla 1: EJECUTAR TODAS LAS
PRUEBAS
Un sistema puede funcionar de
excelente manera sobre el papel pero
si no existe una manera de comprobar
que funciona, el esfuerzo será
cuestionable.
Un sistema minuciosamente probado
y que supera todas las pruebas en
todo momento se denomina testeable.
LA CREACION DE PRUEBAS
CONDUCE A OBTENER MEJORES
DISEÑOS
4. REGLA DE 2 A 4:
REFACTORIZAR
Una vez creadas las pruebas, se debe
mantener el código limpio y las clases.
Para ello, refactorizamos el código
progresivamente.
5. Re-factorizar:
La optimización de un código previamente
escrito, por medio de cambios en su
estructura interna sin esto suponer
alteraciones en su comportamiento externo.
6. ELIMINAR DUPLICADOS
Los duplicados significan mas trabajo
innecesario. Suponen un esfuerzo
adicional como: líneas de código
similar o duplicación en
implementación.
8. EXPRESIVIDAD
Es fácil generar código, que nosotros
a la hora de programar entendamos,
pero los demás como podrán
entenderlo ?
El principal coste de un proyecto de
software es su mantenimiento a largo
plazo, por ello entre mas claro sea el
código, menos tiempo implementaran
otros en intentar compréndelo.
9. Puede expresarse entendible
si:
Eligiendo buenos nombres: los nombre
de una clase o función deben ser
concordantes con sus funcionalidades.
Se deben mantener funciones y clases
cortas. Lo que usualmente facilita su
entendimiento y modificación.
Usar nomenclatura estándar.
Las pruebas bien escritas deben servir
para facilitar el funcionamiento de una
clase.
10. CLASES Y METODOS
MINIMOS
En un esfuerzo por reducir el tamaño de
clases y métodos siempre tendrá que ser al
máximo.
El objetivo es eliminar cantidad de código
que se pueden hacer en menos líneas.
Aunque de las cuatro reglas es la que
menos prioridad tiene , es mucho mas
importante el tener tests, eliminar
duplicados y saber expresarse.