Tôi đang làm việc với một cơ sở mã di sản vừa và nhỏ và khi làm việc với một vé tôi sẽ bắt gặp mã cần được dọn sạch hoặc tôi cần phải dọn sạch để có thể hiểu được ứng dụng.
Một ví dụ thực tế là:
if( !a && b ){
doSomething1();
doSomething2();
doSomething3();
doSomething4();
doSomething5();
}else if( a ){
doSomething1();
doSomething2();
doSomething3();
doSomething4();
doSomething5();
}else if( !b && ( a || c ) ){
doSomething1();
doSomething2();
doSomething3();
doSomething4();
doSomething5();
}
Một cách khác là sửa lỗi chính tả và Tham gia vào các bình luận và tài liệu trên một tá tệp nguồn.
Tuy nhiên, thường thì việc dọn dẹp này kết thúc không liên quan đến vấn đề chính và tôi tự hỏi làm thế nào là tốt nhất để thực hiện việc dọn dẹp. Theo cách tôi thấy, có ba lựa chọn:
- Trước khi sửa lỗi: điều này hoạt động theo trình tự thời gian vì đây là thứ tự xảy ra nhưng nếu chúng phá vỡ một cái gì đó, chúng làm phức tạp việc sửa chữa và làm cho việc khắc phục sự cố với sản phẩm trở nên khó khăn hơn. Nó cũng giới thiệu một cam kết bổ sung đó là tiếng ồn.
- Với bản sửa lỗi: nhưng điều đó che khuất sự thay thế thực tế của mã bị lỗi bằng các tệp
findGeoragphy
đúngfindGeography
. - Sau khi sửa lỗi: việc này đòi hỏi phải gỡ bỏ và dọn sạch mà bạn đã thực hiện giúp bạn hiểu mã và sau đó kiểm tra lại sửa chữa, cam kết sửa lỗi, sau đó quay lại và làm lại việc dọn dẹp. Điều này cho phép khác biệt rõ ràng nhất với mã bị lỗi, nhưng trùng lặp nỗ lực và cũng có thể dẫn đến các cam kết giả.
tl; dr: Vậy, phương pháp tốt nhất để cam kết mã dọn dẹp là gì?
Bối cảnh: Chúng tôi không có bài kiểm tra đơn vị và tiến trình phát triển bằng cách chạy các thay đổi và theo dõi chúng và ném chúng lên tường để QA xác nhận thông qua các bản sửa lỗi hồi quy thủ công. Ngoài ra, nếu chúng ta không thực hiện một số hình thức dọn dẹp, mã sẽ trở nên khó hiểu. Tôi biết điều này là xa lý tưởng, nhưng đây là nhà phát triển doanh nghiệp thực sự đặt thức ăn trên bàn của tôi và không phải là sự lựa chọn của tôi.