Tôi đang làm việc trong một dự án "mã spaghetti" và trong khi tôi đang sửa lỗi và triển khai các tính năng mới, tôi cũng thực hiện một số phép tái cấu trúc để làm cho mã đơn vị có thể kiểm tra được.
Mã này thường được liên kết chặt chẽ hoặc phức tạp đến nỗi việc sửa một lỗi nhỏ sẽ dẫn đến rất nhiều lớp được viết lại. Vì vậy, tôi quyết định vẽ một dòng ở đâu đó trong mã nơi tôi dừng tái cấu trúc. Để làm rõ điều này, tôi bỏ một số ý kiến trong mã giải thích tình huống, như:
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;
}
}
Hoặc, một miếng bánh khác:
// 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>>>>();
Đây có phải là một ý tưởng tốt? Tôi nên lưu ý gì khi làm như vậy?