Estoy trabajando en un proyecto de "código de espagueti", y mientras estoy arreglando errores e implementando nuevas características, también realizo algunas refactorizaciones para que el código sea comprobable por unidad.
El código suele estar tan estrechamente acoplado o complicado que corregir un pequeño error daría como resultado que se reescriban muchas clases. Así que decidí dibujar una línea en algún lugar del código donde dejo de refactorizar. Para aclarar esto, dejo algunos comentarios en el código que explican la situación, como:
class RefactoredClass {
private SingletonClass xyz;
// I know SingletonClass is a Singleton, so I would not need to pass it here.
// However, I would like to get rid of it in the future, so it is passed as a
// parameter here to make this change easier later.
public RefactoredClass(SingletonClass xyz) {
this.xyz = xyz;
}
}
O, otro pedazo de pastel:
// This might be a good candidate to be refactored. The structure is like:
// Version String
// |
// +--> ...
// |
// +--> ...
// |
// ... and so on ...
//
Map map = new HashMap<String, Map<String, Map<String, List<String>>>>();
¿Es esta una buena idea? ¿Qué debo tener en cuenta al hacerlo?