組件耦合

通讀完《架構(gòu)整潔之道》全書,回過頭再來寫總結(jié)和感想醇王,真不是一件容易的事呢燥。之前在《禪與摩托車維修藝術(shù)再探》里我說,寫這類文字是一個合上書又翻開書的過程寓娩,合上書回想主要收獲叛氨,翻開書做有重點的二次閱讀。這篇就是翻開書棘伴。

組件耦合

這一章節(jié)除了已經(jīng)廣泛應(yīng)用的每日構(gòu)建外寞埠,主要講了三個原則:無依賴環(huán)原則、穩(wěn)定依賴原則焊夸、穩(wěn)定抽象原則仁连。

到這里我想到這些原則、規(guī)則阱穗、law與程序員之間的關(guān)系饭冬。作為一名程序員,這些原則應(yīng)該要內(nèi)化掉揪阶,了解原則之后至少要指導(dǎo)一次編碼實踐昌抠,在實際需求中這些原則應(yīng)該共同組成程序員的良質(zhì)(《禪與摩托車維修藝術(shù)》),指導(dǎo)程序員追求更加有序鲁僚、節(jié)省人力的設(shè)計方法炊苫。作為一名TL、SE或者架構(gòu)師蕴茴,我逐漸意識到劝评,這些原則是需要有意識地收集、整理倦淀、舉證蒋畜、實踐的,因為這類角色經(jīng)常需要去給別人講東西撞叽,經(jīng)常需要推動一些改革姻成,工作重點中有一大部分都是與人打交道,已經(jīng)不止是應(yīng)用愿棋,更多地變成了一本行走的書科展,我想架構(gòu)師團隊?wèi)?yīng)該至少把不同方面不同角度的原則整理出來,將零碎的知識點歸納出來糠雨,作為指導(dǎo)設(shè)計和健康度評估的checklist才睹。

組件依賴關(guān)系圖中不應(yīng)該出現(xiàn)環(huán)。組件間難道不是通過接口通信的嗎?怎么會出現(xiàn)環(huán)呢琅攘?我意識到我認(rèn)為的“組件”和這里說的“組件”出現(xiàn)了不一致垮庐。《組件》一章說“組件是軟件的部署單元”坞琴,可以獨立部署哨查,也可以做成插件進行動態(tài)加載。我想《組件耦合》一章里說的組件剧辐,應(yīng)該是插件寒亥,只有插件才會出現(xiàn)互相依賴的情況,可獨立部署和發(fā)布的組件一般都是依賴于接口的荧关。自然也就不會出現(xiàn)依賴環(huán)溉奕。依賴關(guān)系圖可以通過structure 101或者understand這類軟件自動獲取,用以評估當(dāng)前組件間依賴關(guān)系是否符合預(yù)期羞酗。無依賴環(huán)原則不只適用于組件間腐宋,也適用于模塊間,即domain層的各個文件夾之間檀轨,反思一下胸竞,模塊間的依賴關(guān)系確實是很容易出現(xiàn)環(huán)的,模塊間的依賴關(guān)系很難守護参萄,這往往是業(yè)務(wù)模型或者算法決定的卫枝,這一階段的設(shè)計一般很少考慮依賴關(guān)系,在業(yè)務(wù)專家看來讹挎,就像坐在辦公桌前面對一桌子的零件校赤,每一個具體問題都可以拿來用來解決問題,機械專家組裝機械的時候零件A上需要零件B筒溃,零件B上又需要與零件A同一廠家的零件马篮,將來一旦A廠家更換,B的處境就很尷尬怜奖,整個系統(tǒng)面臨失敗的風(fēng)險浑测。這是一個很現(xiàn)實的問題,這要求業(yè)務(wù)專家也必須了解“實際”歪玲,不能制造空中樓閣迁央,最近新看一本書《系統(tǒng)架構(gòu)》,就是在說不單單程序需要架構(gòu)師滥崩,所有人造系統(tǒng)都需要架構(gòu)師岖圈。

與三個原則同級標(biāo)題的,有一個“自上而下的設(shè)計”钙皮,書中認(rèn)為“組件結(jié)構(gòu)是不可能自上而下被設(shè)計出來的蜂科,它必須隨著軟件系統(tǒng)的變化而變化和擴張”顽决,這與《UNIX編程藝術(shù)》的觀點是不一致的。關(guān)于自上而下還是自下而上崇摄,是分場景的擎值,軟件是要盡量自上而下的,但一個項目演進過程中總會遇到新的變化方向和聚合實體逐抑,這就需要自下而上。熟悉系統(tǒng)的第二次開發(fā)是自上而下屹蚊,新系統(tǒng)的開發(fā)是自下而上厕氨。

依賴關(guān)系必須要指向更穩(wěn)定的方向。前兩天交流的時候我舉了個例子汹粤,模塊A有流量統(tǒng)計的功能命斧,模塊B也想做流量統(tǒng)計,那B能不能直接拿A功能用呢嘱兼?不能国葬,要把流量統(tǒng)計功能提取出來,A和B共同依賴于流量統(tǒng)計芹壕。模塊的穩(wěn)定性汇四,書中給了詳細(xì)的量化穩(wěn)定性的方法可作參考,一個組件的穩(wěn)定程度取決于它的修改頻率踢涌、修改的方式通孽、獲取實例的多少、抽象化程度睁壁,上面舉的就是抽象新模塊的例子背苦,修改頻率高的模塊不穩(wěn)定比如A和B模塊,如果修改的方式總是按系統(tǒng)原始設(shè)計的變化方向進行修改也可以認(rèn)為是穩(wěn)定的潘明,獲取的實例越多行剂、輸出越多表明模塊與外部的聯(lián)系越多外部修改很容易引發(fā)修改也就越不穩(wěn)定。

一個組件的抽象化程度應(yīng)該與其穩(wěn)定性保持一致钳降。這個原則與上面穩(wěn)定依賴原則有點像厚宰,在依賴于抽象的基礎(chǔ)上又做了進一步的要求。穩(wěn)定組件要高度抽象牲阁,否則就會難以修改固阁。比如組件內(nèi)的主流程,就要足夠抽象城菊,主流程太關(guān)注細(xì)節(jié)會導(dǎo)致難于擴展备燃,具體的實現(xiàn)要放到實現(xiàn)層。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凌唬,一起剝皮案震驚了整個濱河市并齐,隨后出現(xiàn)的幾起案子漏麦,更是在濱河造成了極大的恐慌,老刑警劉巖况褪,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撕贞,死亡現(xiàn)場離奇詭異,居然都是意外死亡测垛,警方通過查閱死者的電腦和手機捏膨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來食侮,“玉大人号涯,你說我怎么就攤上這事【馄撸” “怎么了链快?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長眉尸。 經(jīng)常有香客問我域蜗,道長,這世上最難降的妖魔是什么噪猾? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任霉祸,我火速辦了婚禮,結(jié)果婚禮上畏妖,老公的妹妹穿的比我還像新娘脉执。我一直安慰自己,他們只是感情好戒劫,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布半夷。 她就那樣靜靜地躺著,像睡著了一般迅细。 火紅的嫁衣襯著肌膚如雪巫橄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天茵典,我揣著相機與錄音湘换,去河邊找鬼。 笑死统阿,一個胖子當(dāng)著我的面吹牛彩倚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扶平,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帆离,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了结澄?” 一聲冷哼從身側(cè)響起哥谷,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤岸夯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后们妥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猜扮,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年监婶,在試婚紗的時候發(fā)現(xiàn)自己被綠了旅赢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡压储,死狀恐怖鲜漩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情集惋,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布踩娘,位于F島的核電站刮刑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏养渴。R本人自食惡果不足惜雷绢,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望理卑。 院中可真熱鬧翘紊,春花似錦、人聲如沸藐唠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宇立。三九已至踪宠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妈嘹,已是汗流浹背柳琢。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留润脸,地道東北人柬脸。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像毙驯,于是被迫代替她去往敵國和親倒堕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,988評論 0 13
  • 古人有人生四大樂事之說: 久旱逢甘雨行施,他鄉(xiāng)遇故知, 洞房花燭夜魂那,金榜提名時蛾号。 而我們的大文豪蘇東坡則認(rèn)為,人生賞心...
    花落惜無言閱讀 672評論 0 2
  • 最近讀了一本書涯雅,叫《翻譯的基礎(chǔ)》鲜结。 一個做建筑的,平時寫寫文章來裝裝文青活逆,今兒又看起翻譯的書來精刷,(偷笑)自己都被自...
    歌舒雪閱讀 193評論 0 0
  • 姓名:徐芳芳 公司:南京凱弘進出口貿(mào)易有限公司 349期努力二組【日精進打卡第263天】 【知~學(xué)習(xí)】 《六項精進...
    云海沐晨閱讀 93評論 0 0
  • 本文寫于寶貝女兒出生第80天,大寶4歲9個月蔗候。 今天沒忍住怒允,對大寶發(fā)了好幾次脾氣,此刻看著他一個人坐在床上乖乖的看...
    大靜2020閱讀 256評論 0 1