在C++項目中,編譯依賴可能會使軟件項目難以維護。限制依賴關係的最佳實踐有哪些,無論是在模塊內還是跨模塊?限制C++項目中編譯依賴關係的一些技巧是什麼?
6
A
回答
12
2
我認爲你需要非常細心體貼這一點。通常,可以通過分離代碼和使用抽象接口(例如:函數指針或等價對象)來限制依賴關係,但分離通常會增加易碎性。例如,您可以通過通用抽象接口調用模塊以減少對實際對象實現的依賴性,但是必須與對象本身同步更新接口,否則代碼將在運行時失敗。
我想說,在模塊中使用定義良好的層次結構來構建大型項目很重要,但是在每個模塊中不要過多地分解代碼來限制依賴關係。如果要改進維護,則必須在減少代碼易碎性的前提下平衡減少的依賴關係。
6
香草薩特有26項,27和28,「最小化編譯時依賴,部分1,2和3」這個確切的主題有很大的治療,在他的優秀著作例外C++,ISBN:0201615622。
alt text http://ak.buy.com/db_assets/prod_images/489/30611489.jpg
恕我直言,這是最好的C++編程書籍可用之一。
2
相關問題
- 1. 刪除依賴關係的技巧?
- 2. 編譯Linux上的C#項目與依賴關係
- 3. C - 編譯包含的依賴關係
- 4. 編譯GWT項目與GWT項目依賴關係
- 5. 什麼是一些jSoup優化技巧?
- 6. Maven:編譯一個項目中的一個Jar中的所有依賴關係
- 7. 什麼是JSF項目的最基本的依賴關係?
- 8. 什麼是Android中的依賴關係?
- 9. 如何編譯靜態鏈接依賴關係的autotools項目?
- 10. (Visual)C++項目依賴關係分析
- 11. VS2010項目依賴關係
- 12. Sbt項目依賴關係
- 13. Eclipse項目依賴關係
- 14. C++和Ruby之間的關係和依賴關係是什麼?
- 15. 如何使aspnet_compiler編譯項目依賴關係?
- 16. 什麼是GcmTaskService(GCM)的依賴關係?
- 17. 什麼是android.media.tv的依賴關係
- 18. 什麼是ntpd的systemd依賴關係?
- 19. 什麼是隱藏的依賴關係?
- 20. SBT中的子項目依賴關係
- 21. Visio中的項目依賴關係圖
- 22. Gradle編譯依賴關係與/ out「@aar」有什麼區別?
- 23. 爲什麼rebar3不能編譯它自己可以編譯的依賴關係?
- 24. 是否有可能跟蹤Xcode C++編譯依賴關係?
- 25. Maven依賴關係究竟是什麼?
- 26. 什麼是jboss-client.jar maven依賴關係?
- 27. .NET Core項目的C++項目依賴關係
- 28. 編譯作爲運行時項目是依賴項的作用域依賴項
- 29. NetBeans中的Maven項目:如何向「依賴關係」和「測試依賴關係」添加依賴關係?
- 30. 重新編譯Jar依賴關係
正如克魯尼說: 「還有什麼」 ???無論如何,我在C++的案例中發現了「抽象接口」鏈接脫離主題:沒有C++接口及其派生實現的例子... – paercebal 2008-10-09 20:10:41