Tôi đã tham gia một nhóm hoạt động trên một sản phẩm. Sản phẩm này đã được khoảng 5 năm hoặc lâu hơn, và sử dụng ASP.NET WebForms. Kiến trúc ban đầu của nó đã phai mờ theo thời gian, và mọi thứ trở nên vô tổ chức tương đối trong suốt giải pháp. Nó không có nghĩa là khủng khiếp, nhưng chắc chắn có thể sử dụng một số công việc; bạn đều biết những gì tôi có ý nghĩa.Tái cấu trúc để kiểm tra trên hệ thống hiện có
Tôi đã thực hiện một số phép tái cấu trúc kể từ khi tham gia nhóm dự án khoảng 6 tháng trước. Một số trong những refactorings là đơn giản, Extract Method, Pull Method Up, vv Một số các refactorings có nhiều cấu trúc. Những thay đổi sau này làm tôi lo lắng vì không có bộ kiểm thử đơn vị toàn diện để đi cùng với mọi thành phần.
Toàn đội đang trên tàu vì cần phải thay đổi cấu trúc thông qua tái cấu trúc, nhưng Giám đốc dự án của chúng tôi đã bày tỏ một số lo ngại rằng chúng tôi không có các xét nghiệm đầy đủ để thực hiện tái cấu trúc với sự tự tin rằng chúng tôi không giới thiệu lỗi hồi qui vào hệ thống. Ông muốn chúng tôi viết nhiều bài kiểm tra đầu tiên hơn (chống lại kiến trúc hiện có), sau đó thực hiện các phép tái cấu trúc. Lập luận của tôi là cấu trúc lớp của hệ thống quá chặt chẽ để viết các bài kiểm tra đầy đủ, và sử dụng một phương pháp Test Driven hơn trong khi chúng ta thực hiện các phép tái cấu trúc của chúng ta có thể tốt hơn. Ý tôi là điều này không phải là viết các bài kiểm tra đối với các thành phần hiện có, nhưng viết các bài kiểm tra cho các yêu cầu chức năng cụ thể, sau đó tái cấu trúc mã hiện có để đáp ứng các yêu cầu đó. Điều này sẽ cho phép chúng tôi viết các bài kiểm tra có thể có tuổi thọ lâu hơn trong hệ thống, thay vì viết một loạt các bài kiểm tra 'vứt bỏ'.
Có ai có kinh nghiệm nào về hành động tốt nhất là gì không? Tôi có những suy nghĩ của riêng mình, nhưng muốn nghe một số ý kiến từ cộng đồng.