Я працюю над проектом "спагеті-код", і, поки я виправляю помилки та впроваджую нові функції, я також роблю деякий рефакторинг для того, щоб зробити код блоком-перевіреним.
Код часто настільки щільно пов'язаний або складний, що виправлення невеликої помилки призведе до перезапису багатьох класів. Тому я вирішив намалювати рядок десь у коді, де зупиняю рефакторинг. Щоб зробити це зрозумілим, я вводжу кілька коментарів у код, що пояснює ситуацію, наприклад:
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;
}
}
Або ще один шматок пирога:
// 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>>>>();
Це гарна ідея? Що слід пам’ятати, роблячи це?