(07-03-2014 13:22)Desert69 escribió: No lo rehagas, probablemente falles.
No puedo encontrar el puto artículo que estaba buscando, pero había un chango que decía que cuando te chocás con un sistema legacy que es una verga, lo mejor que podés hacer es orientarlo a APIs. Arrancás haciendo una buena cobertura de tests sobre una parte del sistemita, y una vez que eso está testeado, lo splitteás en una API y un consumidor de esa API. Una vez que tenés la API definida, sos Gardel: hacé todo el refactor que quieras adentro de la API, que para afuera te chupa todo un huevo. Y gradualmente vas a poder ir creando consumidores de esa API que sean piolas, al punto de que el software legacy que dependa de este módulo siga consumiendo el endpoint pedorro que hiciste al splittear, pero los desarrollos nuevos usen el nuevo consumidor, que es feliz.
ehm..
Es imposible testear porque la lógica está toda metida adentro de los windows forms. El sistema es de programación de unos equipitos que se conectan por usb, le tira comandos y responden los equipos, se configuran y se graban. No es super wow el sistema, pero desde el 07 que se sigue modificando el mismo código que ya de entrada tenía 0 diseño orientado a objetos, usando un lenguaje orientado a objetos. No hay casi clases, son todos formularios con la lógica mezclada y código repetido por doquier.