Sto lavorando a un progetto "spaghetti-code" e, mentre correggo i bug e implemento nuove funzionalità, faccio anche un po 'di refactoring per rendere il codice testabile.
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 linea da qualche parte nel codice in cui smetto di refactoring. Per chiarire questo, lascio cadere alcuni commenti nel codice che spiegano 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>>>>();
E 'questa una buona idea? Cosa devo tenere a mente quando lo faccio?