歪讀《架構(gòu)整潔之道》初篇(1-6章)--萬丈高樓平地起

道可道,非常道


為什么要讀《架構(gòu)整潔之道》這本書?一是工作需要,最近需要做一個(gè)軟件系統(tǒng)的架構(gòu)設(shè)計(jì),深感理論知識(shí)欠缺,急需充電;二是扔了一個(gè)讀書的帽子,付出了200大元的代價(jià),雖然不多,肉疼之下加人無信不立,只有勉力為之;其三,作者M(jìn)artin(Bob大叔)是在軟件工程領(lǐng)域一位技近乎道的大師級(jí)人物,前面已讀過他的《代碼整潔之道》、《敏捷軟件開發(fā):原則、模式和實(shí)踐》,皆受益匪淺,故選擇拜讀之。


兩手都要抓,兩手都要硬


買東西講究物美價(jià)廉,軟件開發(fā)也講究以最小的投入產(chǎn)出最大的價(jià)值。對(duì)軟件系統(tǒng),作者提出兩種價(jià)值:行為價(jià)值與架構(gòu)價(jià)值。

行為價(jià)值即軟件系統(tǒng)直觀展示出來的功能,也就是軟件當(dāng)前展示出來的價(jià)值。

架構(gòu)價(jià)值,即軟件需求變化的時(shí)候,軟件容易修改的價(jià)值。

作者寫《軟件架構(gòu)》,很明顯是偏向架構(gòu)價(jià)值的,不過我們實(shí)際開發(fā)中,很明顯是以滿足行為價(jià)值為主的,畢竟行為價(jià)值好衡量,架構(gòu)價(jià)值卻很難在短期看出好處。當(dāng)然對(duì)于一個(gè)簡(jiǎn)單的工具或腳本,數(shù)行代碼,無所謂架構(gòu),滿足功能即可。架構(gòu)在越復(fù)雜的系統(tǒng),越需要長(zhǎng)期演進(jìn)的系統(tǒng),越有價(jià)值。

在我看來,兩種價(jià)值無所謂誰更重要,一為滿足當(dāng)下一為展望未來,一為滿足客戶需求一為可持續(xù)發(fā)展,舍棄當(dāng)下何談未來,空談未來近憂必來,兩種價(jià)值都重要啊。

自古深情留不住,唯有套路得人心


任何一個(gè)完整的軟件系統(tǒng),底層設(shè)計(jì)細(xì)節(jié)和高層架構(gòu)都是不可分割的。雖然本書主講軟件架構(gòu),不過先引入的是底層設(shè)計(jì),也就是先從三種編程范式講起。

范式,通俗點(diǎn)講,就是規(guī)則,限制,套路。不過就如武功招式一樣,新手都需要先按照秘籍修煉,當(dāng)熟悉足夠多的招式,亂熟于心后,就可以從心所欲而不踰矩。

套路一:結(jié)構(gòu)化編程

降龍十八掌,是由18招獨(dú)立的招式組成,每一招可以單獨(dú)使用,不同招式組合又可以結(jié)合為威力更大的連招,但是不能一招未完成,中途就變到一邊去了。結(jié)構(gòu)化編程即摒棄goto這樣不受限制的直接控制轉(zhuǎn)移語句,讓我們的軟件可以進(jìn)行功能性降解拆分,軟件拆分為一個(gè)個(gè)組件,組件拆分到模塊,模塊拆分為一個(gè)個(gè)小函數(shù),當(dāng)我們保證了一個(gè)個(gè)小函數(shù)的正確性的時(shí)候,整個(gè)軟件也可以認(rèn)為是正確的。

套路二:面向?qū)ο缶幊?/h4>

內(nèi)功與招式,武俠世界永恒的追求與話題。雖然有如華山派這樣的劍宗氣宗之爭(zhēng),但更多的時(shí)候,兩者是相輔相成的。當(dāng)你有一套好的內(nèi)功心法,那么可以通過這套內(nèi)功驅(qū)動(dòng)不同的招式來應(yīng)敵,而不需要學(xué)一套招式換一套心法。

本書對(duì)面向?qū)ο蟮慕忉屢踩绱?,不同于傳統(tǒng)的一些解釋,如三大特征(封裝、繼承、多態(tài)),如“真實(shí)世界的建模,抽象出類,實(shí)例化對(duì)象,通過對(duì)象操作數(shù)據(jù)”等,站在架構(gòu)層面,面向?qū)ο缶褪且远鄳B(tài)為手段,對(duì)源碼中的依賴關(guān)系進(jìn)行控制的能力。這種能力,可以設(shè)計(jì)出插件式架構(gòu),讓高層策略性組件與底層實(shí)現(xiàn)組件分離,也可以實(shí)現(xiàn)組件的獨(dú)立部署與開發(fā)。

套路三:函數(shù)式編程

《天涯明月刀》中傅紅雪每日練習(xí)拔刀術(shù)數(shù)萬次,不同于一般武功招數(shù)的變化萬端,講究直來直往,不變應(yīng)萬變,唯快不破。

我們熟悉的編程語言,如C++、java中,變量是可以隨便變化的,而函數(shù)式編程則不同,限制了程序中的賦值,通過限制變量的可變,解決如競(jìng)爭(zhēng)、死鎖、并發(fā)更新等問題。

整本書34章,前面6章只算引子,從第七章開始,介紹設(shè)計(jì)原則,一堆燒腦名詞與規(guī)則即將涌現(xiàn),敬請(qǐng)期待......

最后編輯于
?著作權(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)容