Una cosa que me ayuda a trabajar con código que es nuevo para mí, esto es mucho menos necesario para un código bien escrito, es refactorizarlo masivamente por un día o dos y luego descartar todos mis cambios. Este proceso me ayuda a entender lo que hace el código; trabajar con código me ayuda a entenderlo. También comienza a enseñarme qué partes del código son frágiles.
Si tiene la oportunidad de migrar a una versión más nueva de Java, entonces la genérica de todas las colecciones le ayudará a comprender qué tipos de datos se pasan.
Por supuesto, hago esto después de instalar el software en un laboratorio de pruebas y jugar con él un poco para entender lo que hace.
Editar: Pensando en mi respuesta, también es útil habilitar todos los rastreos y registros de diagnóstico, usar el sistema y luego estudiar los registros. Si existe un rastreo de protocolo de comunicación, entonces observar este seguimiento ayudará a comprender el protocolo de comunicación utilizado por el código, quizás con un rastro de Wireshark de la misma prueba.
Otra migración útil es migrar de la biblioteca de Concurrencia anterior a la nueva biblioteca de simultaneidad de Java 5 (y 6). Esto lo ayudará a comprender dónde están los hilos, cuándo se inician y cuándo se apagarán.
Por supuesto, con cualquier cambio de código en una base de código desconocida, supongo que se realizan las pruebas adecuadas para garantizar que no haya nada roto. Sin embargo, para equilibrar esto, aprendí que después de refactorizar el código mal escrito, los errores recientemente introducidos son a menudo mucho más fáciles de encontrar que los errores que existían antes de la refactorización.
No estoy seguro si eso es así, pero me parece gracioso que lo siguiente sea escribir nuevas pruebas (no dice mucho sobre las pruebas de unidades existentes, ¿o sí? :) – Learning
No me refiero a menospreciar a mis colegas , pero aún no he visto un conjunto 100% completo de pruebas unitarias (incluso las mías se pueden mejorar). :) Además, considero que escribir pruebas es solo una mejor manera de aprender que leerlas. –
ROTFL, buena :))))))) – IAdapter