
眾所周知,解決代碼耦合問題的核心原則之一是信息隱藏。即把所有客戶不需要關心的信息盡力隱藏起來,只暴露出僅需要被依賴的東西。這樣做不僅可以控制變化...
符號隱藏與依賴管理是軟件工程中關乎效率的關鍵能力。它的核心是“每個軟件模塊如何在隱藏好自己的同時,還能低成本的精準獲取依賴”。做好了這件事,每個...
一個項目中,除了非常底層的軟件模塊外,大多數模塊都需要其它的模塊的協助才能完成功能,這需要借助模塊之間的依賴管理能力。 依賴管理包含如何控制模塊...
前文談了代碼和庫的符號隱藏手段。在C/C++中,無論我們如何對符號進行隱藏,最后該暴露給客戶的API還是要聲明到頭文件中發布給別人使用。如何設計...
當程序規模變大之后,人們會對軟件進行模塊劃分,以便分而治之。有了模塊之后,就可以將其構建成庫(靜態庫或者動態庫)發布給別人使用。 前文所述的符號...
C語言中全局變量和函數的符號是默認外部可訪問的。 只要我們知道一個全局變量或者函數的聲明,我們就可以在當前的編譯單元中直接使用它,即使它定義在另...
由于工作原因,常常會在各種編程語言技術棧下切換。每次切回到C/C++技術棧下,都會為C/C++語言缺乏一個好用的包管理器而不適應好一陣。 包管理...
上一篇中我們談到在軟件開發中使用演進式設計來讓軟件持續的響應變化。 演進式設計強調對不確定的變化不做提前預估,優先保持設計的“簡單性”,避免過度...
上世紀60年代后,由于“軟件危機”的推動,人們開始借助工程化的方式解決軟件開發中質量、成本和工期不可控的問題,形成了軟件工程學。 軟件工程學從其...