¿Cuál sería el mejor enfoque? Escriba pruebas unitarias para ellos, o pregunte por qué están allí?
Eliminar código es una buena cosa.
Cuando no puede eliminar el código, puede marcarlo como @Deprecated , que documenta la versión principal que está seleccionando para eliminar el método. Luego puedes borrarlo "más tarde". Mientras tanto, quedará claro que no se debe agregar ningún código nuevo que dependa de él.
No recomendaría invertir en métodos obsoletos, por lo que no hay nuevas pruebas unitarias para alcanzar los objetivos de cobertura.
La diferencia entre los dos es principalmente si los métodos son parte o no de la interfaz publicada . La eliminación arbitraria de partes de la interfaz publicada puede ser una sorpresa desagradable para los consumidores que dependían de la interfaz.
No puedo hablar con EclEmma, pero según mi experiencia, una de las cosas de las que debes tener cuidado es la reflexión. Si, por ejemplo, utiliza archivos de configuración de texto para elegir a qué clases / métodos acceder, la distinción utilizada / no utilizada puede no ser obvia (me han quemado por un tiempo).
Si su proyecto es una hoja en el gráfico de dependencia, entonces el caso de desaprobación se debilita. Si su proyecto es una biblioteca, entonces el caso de desaprobación es más fuerte.
Si su empresa utiliza un mono-repo , eliminar es un riesgo menor que en el caso de múltiples repositorios.
Como se señala en l0b0 , si los métodos ya están disponibles en el control de origen, recuperarlos después de la eliminación es un proceso sencillo. ejercicio. Si estaba realmente preocupado por la necesidad de hacerlo, piense en cómo organizar sus compromisos para que pueda recuperar los cambios eliminados si los necesita.
Si la incertidumbre es lo suficientemente alta, podría considerar comentar el código , en lugar de eliminarlo. Es un trabajo extra en la ruta feliz (donde el código eliminado nunca se restaura), pero hace que sea más fácil de restaurar. Supongo que deberías preferir una eliminación directa hasta que te hayas quemado un par de veces, lo que te dará una idea de cómo evaluar la "incertidumbre" en este contexto.
pregunta por qué están ahí?
El tiempo invertido en capturar la historia no se pierde necesariamente. Se sabe que realizo una eliminación en dos pasos: primero, agregando y confirmando un comentario que explique lo que hemos aprendido sobre el código, y luego borrando el código (y el comentario).
También puede usar algo análogo a registros de decisiones arquitectónicas como una forma de capturar La tradición con el código fuente.