La dudas que tengo son:
duda 1) ¿que se hace luego con las partes detectadas de B2?
Usarlo mientras se necesite, pero no hacer ninguna expansión sobre ello. En el punto 3 de prevención de problemas comentaba algo al respecto: <<Intenta evitar nueva funcionalidad a una base de código malo: Añade lo nuevo en un contexto "sano", i.e. si tienes componentes defectuosos pero que "funcionan" y no puedes permitirte reprogramarlos, en lugar de añadirles funcionalidades nueva dentro, hazlo en otros componentes nuevos.>>.
duda 2) ¿y si se da el caso llamémosle "B3": "que funciona bien pero no es una caja negra"?
Intentaría encapsularlo, sin tocar "las tripas", y añadir una interfaz que lo haga operar como una caja negra a través de una API ad hoc.
(Reflexión personal)... posiblemente el llamado "B3" en este caso es intratable. Habría que tratar la aplicación entera como un "B2" y no tocarla. En nuestro caso lo único que podría aprovecharse de la aplicación es el modelo de datos. He pensado que una posiblidad sería plantear una arquitectura-infraestructura MVC con tecnología estandar nueva (JPA, JSF, spring) partiendo de ingeniería inversa, integrarlo en paralelo con el código existente y a partir de ese momento toda modificación-corrección o nueva funcionalidad realizarla en el código bueno.
Pinta bien. Te ahorras el hacer doble mantenimiento, añades lo nuevo en un contexto sano/mantenible, y evitas reescribir "el monstruo espantoso, pero que funciona bien".
Re:dudas
(Puntos:1)( http://www.voluntariado.net/ | Última bitácora: Domingo, 10 Junio de 2012, 21:48h )
duda 1) ¿que se hace luego con las partes detectadas de B2?