Tôi nên dành bao nhiêu thời gian để tái cấu trúc mã của mình? [đóng cửa]


22

Tôi không biết nếu nó chỉ với tôi, nhưng khi tôi bắt đầu tái cấu trúc một số mã, tôi lãng phí rất nhiều thời gian để làm điều đó và nó không bao giờ kết thúc.

Mỗi lần tôi đọc lại mã, tôi thấy một cái gì đó có thể được cải thiện, tái cấu trúc mã giống như bộ não của tôi thành một vòng lặp vô hạn và điều kiện cuối cùng đạt được một cách ngẫu nhiên mà không có sự hài lòng.

Vì vậy, tôi nên dành bao nhiêu thời gian để tái cấu trúc mã của mình?


1
có thể trùng lặp khi nào để tái cấu trúc

Câu trả lời:


23

Nếu bạn coi tái cấu trúc là việc riêng của nó, chứ không phải là một phần của quá trình phát triển, thì nó có thể trở thành không bao giờ kết thúc.

Nếu bạn theo phương pháp phát triển theo hướng thử nghiệm của màu đỏ, xanh lục, tái cấu trúc , thì thông thường bạn sẽ không phải mất nhiều thời gian để tái cấu trúc vì hai lý do:

  1. Bạn sẽ tái cấu trúc khi bạn đi, vì vậy nó không nên trở thành nhiệm vụ của voi ma mút, chỉ là một bước nhỏ khác trong chu trình TDD.

  2. "Áp lực" nội bộ để có được bài kiểm tra tiếp theo được viết sẽ giữ cho các nỗ lực tái cấu trúc của bạn ở mức hợp lý.

Nếu bạn đang làm việc với mã kế thừa, thì hãy làm theo "Quy tắc trinh sát của chú Bob". Timebox tự mình trong một khoảng thời gian ngắn (giả sử, 30 phút) và thực hiện mục tiêu của bạn để kiểm tra mã ở trạng thái sạch hơn so với trước đây. Mỗi lần bạn phải chạm vào mã, bạn sẽ để nó tốt hơn một chút. Theo thời gian, mã được sửa đổi nhiều nhất sẽ là mã dễ đọc nhất và được bao gồm nhiều nhất trong cơ sở mã của bạn.


"Nếu bạn coi tái cấu trúc là việc riêng của nó, chứ không phải là một phần của quá trình phát triển, thì nó có thể trở thành không bao giờ kết thúc" ... Otoh, "Dường như sự hoàn hảo đã đạt được, không phải khi không còn gì để thêm, nhưng khi không còn gì để lấy đi nữa "- Antoine de Saint Exupéry ;-)
Mawg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.