Ir al contenido principal

Entradas

Mostrando entradas de enero, 2013

Como llevar a cabo una refactorización

Introducción La refactorización siempre es uno de los procesos de desarrollo más complejos y riesgosos, sin embargo es crucial para la evolución del software que se está desarrollando. La forma de comenzar un proceso de refactorización depende de tres factores: Madurez del equipo de desarrollo Antigüedad del proyecto y de las herramientas utilizadas Evolución del cliente Estos factores pueden propiciar el proceso o bien bloquearlo por completo. Razones por las cuales refactorizar Aquellos que piensen que una refactorización no debería suceder nunca, están equivocados, este proceso es la clave de la evolución de todo software. No es factible comenzar desde cero cada vez que hay una revolución en la tecnologia o el mercado. Basta con que el cliente decida invertir para cambiar la tecnología lo cual impacta directamente en los sistemas que tenga implementados y en consecuencia en la velocidad que nuestro producto deba adaptarse. Pero hay muchas más razones por las cuales es n...

Cómo implementar clases testeables

Clases testeables lineamientos básicos Para lograr una implementación testeable se recomienda cumplir con los siguientes lineamientos: Bajo acoplamiento Capa de acceso a datos intercambiable Minimizar las interfaces privadas Comportamiento de cada interface debe ser parametrizable y tener valor de retorno División en componentes más pequeños Reutilizar la mayor cantidad de componentes posible Cada uno de estos puntos contribuye a la implementación de una clase testeable. Esto garantiza que podrá ser modificada sin propagar errores inprevistos a otras partes del sistema. Bajo acoplamiento El bajo acoplamiento es uno de los principales puntos a tener en cuenta a la hora de programar, pero no siempre se cumple. Capa de acceso a datos intercambiable El origen de los datos no suele cambiar periodicamente durante la vida de un sistema pero si durante el desarrollo, más aún en la etapa de investigación. Implementar una capa de acceso a datos que no sólo permita utilizar cualq...