Sto lavorando a un progetto "spaghetti-code", e mentre correggo bug e implementando nuove funzionalità, eseguo anche alcuni refactoring per rendere il codice testabile all'unità.
Il codice è spesso così strettamente accoppiato o complicato che la correzione di un piccolo bug comporterebbe la riscrittura di molte classi. Così ho deciso di tracciare una riga da qualche parte nel codice in cui smetto di refactoring. Per chiarire questo, lascio alcuni commenti nel codice che spiega la situazione, come:
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;
}
}
Oppure, un altro pezzo di torta:
// 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>>>>();
Questa è una buona idea? Cosa dovrei tenere a mente quando lo fai?