![240](https://upload.jianshu.io/users/upload_avatars/2254808/27004403d414.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
眾所周知捉貌,解決代碼耦合問題的核心原則之一是信息隱藏支鸡。即把所有客戶不需要關(guān)心的信息盡力隱藏起來,只暴露出僅需要被依賴的東西趁窃。這樣做不僅可以控制變化...
符號隱藏與依賴管理是軟件工程中關(guān)乎效率的關(guān)鍵能力牧挣。它的核心是“每個軟件模塊如何在隱藏好自己的同時,還能低成本的精準(zhǔn)獲取依賴”醒陆。做好了這件事瀑构,每個...
一個項目中,除了非常底層的軟件模塊外刨摩,大多數(shù)模塊都需要其它的模塊的協(xié)助才能完成功能寺晌,這需要借助模塊之間的依賴管理能力。 依賴管理包含如何控制模塊...
前文談了代碼和庫的符號隱藏手段澡刹。在C/C++中呻征,無論我們?nèi)绾螌Ψ栠M行隱藏,最后該暴露給客戶的API還是要聲明到頭文件中發(fā)布給別人使用罢浇。如何設(shè)計...
當(dāng)程序規(guī)模變大之后陆赋,人們會對軟件進行模塊劃分,以便分而治之嚷闭。有了模塊之后奏甫,就可以將其構(gòu)建成庫(靜態(tài)庫或者動態(tài)庫)發(fā)布給別人使用。 前文所述的符號...
C語言中全局變量和函數(shù)的符號是默認(rèn)外部可訪問的凌受。 只要我們知道一個全局變量或者函數(shù)的聲明,我們就可以在當(dāng)前的編譯單元中直接使用它思杯,即使它定義在另...
由于工作原因胜蛉,常常會在各種編程語言技術(shù)棧下切換。每次切回到C/C++技術(shù)棧下色乾,都會為C/C++語言缺乏一個好用的包管理器而不適應(yīng)好一陣誊册。 包管理...
上一篇中我們談到在軟件開發(fā)中使用演進式設(shè)計來讓軟件持續(xù)的響應(yīng)變化。 演進式設(shè)計強調(diào)對不確定的變化不做提前預(yù)估暖璧,優(yōu)先保持設(shè)計的“簡單性”案怯,避免過度...
上世紀(jì)60年代后,由于“軟件危機”的推動澎办,人們開始借助工程化的方式解決軟件開發(fā)中質(zhì)量嘲碱、成本和工期不可控的問題金砍,形成了軟件工程學(xué)。 軟件工程學(xué)從其...