Để đưa ra quan điểm của tôi:
Những thay đổi nhỏ, gia tăng khiến mã ở trạng thái tốt hơn những gì nó được tìm thấy
Chắc chắn là Có: Các thay đổi "thẩm mỹ" không liên quan trực tiếp đến các tính năng (tức là nó không thể lập hóa đơn như một yêu cầu thay đổi).
Chắc chắn là Không: Viết lại các phần lớn rõ ràng vi phạm phần "nhỏ, tăng dần". Tái cấu trúc thường được sử dụng ngược lại với viết lại: thay vì thực hiện lại, hãy cải tiến hiện có.
Chắc chắn Có thể: Việc thay thế cấu trúc dữ liệu và thuật toán là một phần của trường hợp biên giới. Sự khác biệt quyết định ở đây IMO là các bước nhỏ: sẵn sàng giao hàng, sẵn sàng làm việc với trường hợp khác.
Ví dụ: Hãy tưởng tượng bạn có Mô-đun công cụ ngẫu nhiên báo cáo bị chậm lại do sử dụng vectơ. Bạn đã xác định rằng chèn vectơ là nút thắt cổ chai, nhưng thật không may, mô-đun dựa vào bộ nhớ liên tục ở nhiều nơi để khi sử dụng danh sách, mọi thứ sẽ bị phá vỡ một cách im lặng.
Viết lại có nghĩa là vứt bỏ Mô-đun để xây dựng một tòa nhà tốt hơn và nhanh hơn từ đầu, chỉ cần chọn một số mảnh từ cái cũ. Hoặc viết một lõi mới, sau đó lắp nó vào hộp thoại hiện có.
Tái cấu trúc có nghĩa là thực hiện các bước nhỏ để loại bỏ số học con trỏ, để chuyển đổi. Có thể bạn thậm chí tạo một hàm tiện ích bao gồm số học con trỏ, thay thế thao tác con trỏ trực tiếp bằng các lệnh gọi đến hàm đó, sau đó chuyển sang trình vòng lặp để trình biên dịch phàn nàn về những nơi mà số học con trỏ vẫn được sử dụng, sau đó chuyển sang a list
, rồi xóa chức năng loét.
Ý tưởng đằng sau là mã tự trở nên tồi tệ hơn. Khi sửa lỗi và thêm tính năng, chất lượng sẽ giảm theo từng bước nhỏ - ý nghĩa của một biến thay đổi một cách tinh vi, một hàm nhận được một tham số bổ sung để phá vỡ sự cô lập, một vòng lặp hơi phức tạp, v.v. Không có lỗi nào trong số này là lỗi thực sự, bạn có thể 't nói với một số dòng làm cho vòng lặp trở nên phức tạp, nhưng bạn làm tổn hại đến khả năng đọc và bảo trì.
Tương tự, thay đổi tên biến hoặc trích xuất một hàm, không phải là những cải tiến hữu hình của riêng chúng. Nhưng nhìn chung, chúng chống lại sự xói mòn chậm.
Giống như một bức tường đá cuội mà hàng ngày người ta rơi xuống đất. Và hàng ngày, một người qua đường nhặt nó lên và đặt nó lại.