Vì vậy, chúng tôi có tệp nguồn mainmodule.cpp khổng lồ này (là 11000 dòng?) Trong dự án của chúng tôi và mỗi khi tôi phải chạm vào nó, tôi co rúm lại.
Vì tệp này rất trung tâm và lớn, nó tiếp tục tích lũy ngày càng nhiều mã và tôi không thể nghĩ ra một cách hay để làm cho nó thực sự bắt đầu co lại.
Tệp được sử dụng và thay đổi tích cực trong một số (> 10) phiên bản bảo trì của sản phẩm của chúng tôi và do đó rất khó để cấu trúc lại nó. Nếu tôi "đơn giản" tách nó ra, hãy nói bắt đầu, thành 3 tệp, sau đó hợp nhất các thay đổi từ các phiên bản bảo trì sẽ trở thành một cơn ác mộng. Và nếu bạn chia ra một tập tin có lịch sử lâu dài và phong phú như vậy, việc theo dõi và kiểm tra các thay đổi cũ trong SCC
lịch sử đột nhiên trở nên khó khăn hơn rất nhiều.
Về cơ bản, tệp chứa "lớp chính" (điều phối và điều phối công việc nội bộ chính) của chương trình của chúng tôi, vì vậy mỗi khi một tính năng được thêm vào, nó cũng ảnh hưởng đến tệp này và mỗi khi nó phát triển. :-(
bạn sẽ làm gì trong tình huống này? Bạn có ý tưởng nào về cách di chuyển các tính năng mới sang một tệp nguồn riêng biệt mà không làm rối quá SCC
trình làm việc không?
(Lưu ý về các công cụ: Chúng tôi sử dụng C ++ với Visual Studio
; Chúng tôi sử dụng AccuRev
như SCC
nhưng tôi nghĩ loại SCC
không thực sự quan trọng ở đây; Chúng tôi sử dụng Araxis Merge
để làm so sánh thực tế và sáp nhập các tập tin)