Я работаю над проектом «спагетти-кода», и пока я исправляю ошибки и внедряю новые функции, я также провожу некоторый рефакторинг, чтобы сделать код модульно-тестируемым.
Код часто настолько тесно связан или сложен, что исправление небольшой ошибки приводит к переписыванию множества классов. Поэтому я решил провести где-то в коде линию, где я прекращаю рефакторинг. Чтобы сделать это понятным, я оставляю некоторые комментарии в коде, объясняющие ситуацию, например:
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>>>>();
Это хорошая идея? Что я должен иметь в виду при этом?