Trong một dự án C++, các phụ thuộc biên dịch có thể làm cho một dự án phần mềm khó duy trì. Một số phương pháp hay nhất để hạn chế phụ thuộc, cả trong mô-đun và trên các mô-đun là gì?Một số kỹ thuật để hạn chế phụ thuộc biên dịch trong các dự án C++ là gì?
Trả lời
tôi nghĩ rằng bạn cần phải rất cẩn thận và chu đáo về vấn đề này. Nói chung, bạn có thể giới hạn các phụ thuộc bằng cách tách mã và sử dụng các giao diện trừu tượng (ví dụ: các con trỏ hàm hoặc một đối tượng tương đương), nhưng sự tách biệt thường thêm vào sự mong manh. Ví dụ, bạn có thể gọi một mô-đun thông qua một giao diện trừu tượng chung để giảm sự phụ thuộc vào việc thực hiện đối tượng thực tế, nhưng bạn phải cập nhật giao diện đồng bộ với chính đối tượng đó, hoặc mã sẽ thất bại trong thời gian chạy.
Tôi có thể nói rằng việc cấu trúc các dự án lớn trong các mô-đun với một hệ thống phân cấp được xác định rõ ràng là rất quan trọng, nhưng trong mỗi mô-đun không đi quá mức. Nếu bạn đang đi để cải thiện bảo trì, bạn phải cân bằng giảm phụ thuộc với việc giảm sự mong manh mã.
Herb Sutter có biện pháp xử lý tuyệt vời chủ đề chính xác trong các mục 26, 27 và 28, "Giảm thiểu phụ thuộc thời gian biên dịch, phần 1, 2 và 3", trong cuốn sách xuất sắc của mình Đặc biệt C++, ISBN: 0201615622.
alt text http://ak.buy.com/db_assets/prod_images/489/30611489.jpg
IMHO, đây là một trong những tốt nhất C++ sách lập trình sẵn.
Ngoài ra hãy xem tại địa chỉ:
Large-Scale C++ Software Design (Addison-Wesley Professional Computing Series)
- 1. Các giới hạn kỹ thuật của phoneGap/Cordova là gì?
- 2. Có lý do kỹ thuật nào để tránh tạo ra các phụ thuộc gói có rối cao trong các dự án Java lớn không?
- 3. Sự khác nhau giữa tham chiếu dự án và phụ thuộc dự án là gì?
- 4. (Visual) Phân tích phụ thuộc dự án C++
- 5. Làm thế nào để biên dịch phụ thuộc vào maven?
- 6. C - Biên dịch với các phụ thuộc bao gồm
- 7. Thuật ngữ kỹ thuật cho ngôn ngữ loại C# hoặc Java là gì?
- 8. Cách tốt nhất để viết thông số kỹ thuật cho mã phụ thuộc vào biến môi trường là gì?
- 9. Không thể nhận phụ thuộc để tham khảo dự án
- 10. Các kỹ thuật tối ưu hóa trình biên dịch C++ trong Visual studio
- 11. bình luận Tài liệu trong C#: lý do kỹ thuật để thích là gì /// hoặc/**
- 12. Thông số kỹ thuật cho Motion JPEG là gì?
- 13. Cách đơn giản ngớ ngẩn để biên dịch một dự án OCaml là gì?
- 14. CMake: Phụ thuộc của một dự án bên ngoài
- 15. Cách lập trình và biên dịch một dự án C# khác từ dự án hiện tại
- 16. Viết thông số kỹ thuật cho một dự án, tuyến đường truyền thống
- 17. Các kỹ thuật để giữ các dự án của bạn trên phiên bản mới nhất
- 18. tạo phụ thuộc cho một makefile cho một dự án trong C/C++
- 19. Thông số kỹ thuật cho tệp .obj Wavefront là gì?
- 20. msvcr90.dll phụ thuộc vào dự án VS 2005 C++
- 21. Biên dịch các dự án con trong sbt
- 22. Những giới hạn kỹ thuật khi sử dụng Fusion Tables là gì?
- 23. Biên dịch các tệp C trong dự án C++ không sử dụng tiêu đề biên dịch trước?
- 24. Kỹ thuật đảo ngược C++
- 25. Đóng gói các dự án NuGet được biên dịch trong chế độ phát hành?
- 26. Cách tốt nhất để thu thập các yêu cầu cho một dự án là gì?
- 27. Phụ thuộc dự án Web Eclipse
- 28. Có nghĩa là gì để "Mavenize" một dự án?
- 29. Dự án Grails - Java Project chung phụ thuộc trong Eclipse
- 30. Cách lấy qmake để tạo "phụ thuộc dự án" trong dự án Visual Studio .sln
Như Clooney sẽ nói: "Còn gì nữa" ??? Dù sao, tôi tìm thấy "Tóm tắt Giao diện" liên kết ra khỏi chủ đề trong một trường hợp C + +: Không có exemple của một giao diện C + + và thực hiện có nguồn gốc của nó ... – paercebal