Vấn đề với việc thực hiện tái cấu trúc chính là bạn có thể và đôi khi sẽ đi theo một con đường dẫn bạn nhận ra rằng bạn đã cắn nhiều hơn những gì bạn có thể nhai. Tái cấu trúc khổng lồ là một sai lầm. Nếu thiết kế hệ thống bị thiếu sót ngay từ đầu, thì việc tái cấu trúc chỉ có thể đưa bạn đến nay trước khi bạn cần đưa ra quyết định khó khăn. Hoặc rời khỏi hệ thống như hiện tại và làm việc xung quanh nó, hoặc lên kế hoạch thiết kế lại và thực hiện một số thay đổi lớn.
Tuy nhiên có một cách khác. Lợi ích thực sự của việc tái cấu trúc mã là làm cho mọi thứ đơn giản hơn, dễ đọc hơn và thậm chí dễ bảo trì hơn. Khi bạn tiếp cận một vấn đề mà bạn không chắc chắn, bạn tăng đột biến, đi xa để xem nó có thể dẫn đến đâu để tìm hiểu thêm về vấn đề, sau đó vứt bỏ gai nhọn và áp dụng tái cấu trúc mới dựa trên mức tăng đột biến đã dạy bạn Vấn đề là, bạn thực sự chỉ có thể cải thiện mã của mình một cách chắc chắn nếu các bước nhỏ và các nỗ lực tái cấu trúc của bạn không vượt quá khả năng viết bài kiểm tra của bạn trước. Sự cám dỗ là viết một bài kiểm tra, sau đó viết mã, sau đó viết mã thêm vì một giải pháp có vẻ rõ ràng, nhưng ngay sau đó bạn nhận ra rằng sự thay đổi của bạn sẽ thay đổi nhiều bài kiểm tra hơn, vì vậy bạn cần cẩn thận chỉ thay đổi một điều một lúc.
Do đó, câu trả lời là không bao giờ biến việc tái cấu trúc của bạn thành một vấn đề chính. Bước chân em bé. Bắt đầu bằng cách trích xuất các phương thức, sau đó tìm cách loại bỏ trùng lặp. Sau đó chuyển sang các lớp trích xuất. Mỗi bước nhỏ, một thay đổi nhỏ tại một thời điểm. NẾU bạn đang giải nén mã, hãy viết một bài kiểm tra trước. Nếu bạn đang xóa mã, sau đó xóa mã đó và chạy thử nghiệm của bạn và quyết định xem có cần thử nghiệm nào nữa không. Một bước nhỏ bé tại một thời điểm. Có vẻ như sẽ mất nhiều thời gian hơn, nhưng thực sự sẽ rút ngắn đáng kể thời gian tái cấu trúc của bạn.
Tuy nhiên, thực tế là mọi sự tăng đột biến dường như là một sự lãng phí tiềm năng của nỗ lực. Thay đổi mã đôi khi không đi đến đâu và bạn thấy mình khôi phục mã từ vcs của mình. Đây chỉ là một thực tế của những gì chúng ta làm hàng ngày. Tuy nhiên, mọi đột biến không bị lãng phí, nếu nó dạy cho bạn một cái gì đó. Mọi nỗ lực tái cấu trúc thất bại sẽ dạy cho bạn rằng bạn đang cố gắng thực hiện quá nhiều quá nhanh, hoặc cách tiếp cận của bạn có thể sai. Điều đó cũng không lãng phí thời gian nếu bạn học được điều gì đó từ nó. Bạn càng làm công cụ này, bạn càng học được nhiều hơn và bạn sẽ trở nên hiệu quả hơn với nó. Lời khuyên của tôi là chỉ nên mặc nó bây giờ, học cách làm nhiều hơn bằng cách làm ít hơn và chấp nhận rằng đây chỉ là cách mọi thứ có thể cần phải làm cho đến khi bạn trở nên tốt hơn trong việc xác định mức độ tăng vọt trước khi nó dẫn bạn đến đâu.