架構(gòu)設(shè)計(jì)策略之尋找設(shè)計(jì)的最佳平衡點(diǎn)

如果沒有所謂的“Deadline”(最后期限),我們就不用擔(dān)心架構(gòu)設(shè)計(jì)的問題,因?yàn)槲覀冇凶銐虻臅r(shí)間去研究去學(xué)習(xí)找到最優(yōu)的架構(gòu)設(shè)計(jì)方案。然而,做夢(mèng)是可以有的。那怎么尋找?相信大家都各有各的看法,基本分為這幾派:

  • 梭哈派,不要給我說什么架構(gòu)設(shè)計(jì)、設(shè)計(jì)思維!老夫架構(gòu)設(shè)計(jì)就是敲代碼,邊敲邊設(shè)計(jì),自然而然代碼就是架構(gòu),想那么多還不如直接敲。
    梭哈派
  • 借鑒派,善于借鑒業(yè)界成熟項(xiàng)目的標(biāo)準(zhǔn),都按成熟標(biāo)準(zhǔn)來就好。
  • 靈活派,根據(jù)實(shí)際項(xiàng)目需求來做架構(gòu)設(shè)計(jì),最好看現(xiàn)場(chǎng)情況來判斷。
  • 文檔派,都得寫文檔,寫完整了文檔,就能預(yù)防后續(xù)的問題和風(fēng)險(xiǎn)。

肯定不止上面的介紹的對(duì)于架構(gòu)設(shè)計(jì)的看法,相信大家都有自己認(rèn)同的看法,歡迎評(píng)論區(qū)留下“最強(qiáng)流派”。

架構(gòu)設(shè)計(jì)最佳平衡點(diǎn)肯定會(huì)有架構(gòu)大師做了研究的,下面將從專業(yè)的研究分析下。

架構(gòu)設(shè)計(jì)對(duì)總工期的影響

參考Barry Boehm《Architecting: How Much and When?》書中項(xiàng)目工期的構(gòu)成:開發(fā)架構(gòu)設(shè)計(jì)、返工(處理技術(shù)債:打補(bǔ)丁、改BUG、重構(gòu)、重寫)(見圖2)。

圖2 項(xiàng)目工期的構(gòu)成

可見,Boehm證明了隨著架構(gòu)設(shè)計(jì)時(shí)間增加開發(fā)返工量都會(huì)減少。書中還詳細(xì)地研究了系統(tǒng)規(guī)模影響最佳構(gòu)架設(shè)計(jì)的平衡點(diǎn),鑒于國(guó)內(nèi)外的項(xiàng)目情況不同,本文就不作為參考了。但從中還是可以得出以下個(gè)人認(rèn)為比較客觀的結(jié)論:

  • 系統(tǒng)越大,前期做架構(gòu)設(shè)計(jì)的獲益越大,反之越小。
  • 一千萬行代碼以上的大項(xiàng)目在總工期上架構(gòu)設(shè)計(jì)時(shí)間占3到4成較好,不超過一萬行代碼的小項(xiàng)目則不超過1成。
  • 前期架構(gòu)設(shè)計(jì)做得不夠,后期做好返工的心理準(zhǔn)備。

架構(gòu)設(shè)計(jì)的時(shí)間決定

上節(jié)內(nèi)容用系統(tǒng)規(guī)模來評(píng)估架構(gòu)設(shè)計(jì)的工作量似乎很符合“靈活派”的做法,因?yàn)榭梢愿鶕?jù)項(xiàng)目需求很容易確定系統(tǒng)的規(guī)模。相信肯定有人會(huì)問:那復(fù)雜度不要考慮嗎?大型系統(tǒng)可能很復(fù)雜,但有“借鑒派”的成熟解決方案就不必做太多架構(gòu)設(shè)計(jì)。然而,也并非所有復(fù)雜度高的系統(tǒng)都很龐大。

因此,評(píng)估前期架構(gòu)設(shè)計(jì)的時(shí)間,不能只按標(biāo)準(zhǔn)、經(jīng)驗(yàn)、代碼量、復(fù)雜度來決定。應(yīng)該是按照風(fēng)險(xiǎn)來驅(qū)動(dòng)架構(gòu)設(shè)計(jì)(下篇文章再詳細(xì)講解),當(dāng)然這也是Boehm做的研究(見《Using Risk to Balance Agile and Plan-Driven Methods》)。

總結(jié)

無論是如何尋找架構(gòu)設(shè)計(jì)的最佳平衡點(diǎn),都要遵循《架構(gòu)設(shè)計(jì)思維原則》和運(yùn)用《架構(gòu)設(shè)計(jì)思維模式》來做架構(gòu)設(shè)計(jì),因?yàn)檫@些設(shè)計(jì)思維原則和模式非常有助于實(shí)現(xiàn)風(fēng)險(xiǎn)驅(qū)動(dòng)架構(gòu)設(shè)計(jì),找到架構(gòu)設(shè)計(jì)的最佳平衡點(diǎn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容