精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

軟件架構(gòu)編年史:整潔架構(gòu)

開發(fā) 架構(gòu)
Robert C. Martin(大名鼎鼎的 Uncle Bob)于2012年在他的一篇博客中發(fā)表了整潔架構(gòu)的觀點,并在一些會議上做了關(guān)于該架構(gòu)的演講。

[[404606]]

本文轉(zhuǎn)載自微信公眾號「逸言」,作者覃宇。轉(zhuǎn)載本文請聯(lián)系逸言公眾號。

Robert C. Martin(大名鼎鼎的 Uncle Bob)于2012年在他的一篇博客中發(fā)表了整潔架構(gòu)的觀點,并在一些會議上做了關(guān)于該架構(gòu)的演講。

整潔架構(gòu)借助了許多或熟悉或陌生的概念、規(guī)則和模式,說明了如何將它們?nèi)跁炌óa(chǎn)生出一種構(gòu)建應(yīng)用的標(biāo)準(zhǔn)套路。

站在 EBI 架構(gòu)、六邊形架構(gòu)和洋蔥架構(gòu)的肩膀上

整潔架構(gòu)的核心目標(biāo)與端口和適配器(六邊形)架構(gòu)以及洋蔥架構(gòu)是一致的:

  • 工具無關(guān)
  • 傳達機制無關(guān)
  • 獨立的可測試性

下面這張圖發(fā)表在整潔架構(gòu)的博客中,揭示了該架構(gòu)的總體思路:

Robert C. Martin 2012, The Clean Architecture

正如 Uncle Bob 自己在博客中所說,上面這張圖試圖將最新的架構(gòu)觀點整合成一個可操作的思路。

我們來對比一下整潔架構(gòu)和六邊形架構(gòu)以及洋蔥架構(gòu)的示意圖,看看它們在哪些方面是一致的:

外化工具和傳達機制

六邊形架構(gòu)聚焦于使用接口和適配器將工具和傳達機制從應(yīng)用中外化出去。這也是洋蔥架構(gòu)的核心基石之一,就像圖中呈現(xiàn)的那樣,UI、基礎(chǔ)設(shè)置和測試全部都在示意圖的最外層。整潔架構(gòu)也有完全一致的特征,UI、Web、DB 等等都在最外層。最終,所有的應(yīng)用核心代碼都是獨立于框架/庫的。

依賴方向

六邊形架構(gòu)中并沒有明確地告知我們依賴的方向。然而,我們可以輕易地推測出來:應(yīng)用擁有接口,它們必須由適配器實現(xiàn)或使用。所以適配器依賴接口,依賴位于圓心的應(yīng)用。外部依賴內(nèi)部,依賴的方向就指向圓心。在洋蔥架構(gòu)的示意圖中,也沒有發(fā)現(xiàn)關(guān)于依賴方向的表示,但是,Jeffrey Palermo 在他的第二篇博客中清楚地表明了所以依賴都指向圓心。整潔架構(gòu)則非常明確的指出依賴的方向是指向圓心的。它們都在架構(gòu)層級引入了依賴倒置原則。內(nèi)圈不能知道外圈的任何信息。還有,當(dāng)數(shù)據(jù)跨越界限進行傳遞時,數(shù)據(jù)總是以最方便內(nèi)圈使用的格式提供。

分層

六邊形架構(gòu)示意圖只展現(xiàn)了兩個層次:應(yīng)用內(nèi)部和應(yīng)用外部。而洋蔥架構(gòu)引入了 DDD 中定義的應(yīng)用層次的混合:控制用例邏輯的應(yīng)用服務(wù);封裝了領(lǐng)域邏輯的領(lǐng)域服務(wù),這些邏輯既不屬于實體也不屬于值對象;還有實體、值對象等等...和洋蔥架構(gòu)相比,整潔架構(gòu)保留了應(yīng)用服務(wù)層(用例)和實體層,當(dāng)好像漏掉了領(lǐng)域服務(wù)層。然而,讀過 Uncle Bob 的博客后,我們會發(fā)現(xiàn),他認為任何領(lǐng)域?qū)ο蠖际菍嶓w,而非只有 DDD 中的“實體”才是實體:“一個實體可以是一個擁有方法的對象,或者是一組數(shù)據(jù)結(jié)構(gòu)和函數(shù)”。實際上,他為了簡化示意圖而將最中間的兩層合并了。

獨立的可測試性

三種架構(gòu)風(fēng)格共同遵守的規(guī)則,讓它們將應(yīng)用和業(yè)務(wù)邏輯隔離了出來。這意味著任何情況下我們都可以簡單地 mock 外部工具和傳達機制,獨立地對應(yīng)用的代碼進行測試,而不需要使用數(shù)據(jù)庫或 HTTP 請求。

正如我們所見,整潔架構(gòu)包含了六邊形架構(gòu)和洋蔥架構(gòu)的規(guī)則。截至目前,整潔架構(gòu)好像沒有加入什么新鮮的概念。但是,在整潔架構(gòu)示意圖的右下角,還有一張小圖...

站在 MVC 和 EBI 的肩膀上

整潔架構(gòu)示意圖的右下角的這張小圖說明了控制流是如何工作的。這張小圖并沒還有提供太多信息,但博客中的說明和 Robert C. Martin 的會議演講拓展了該話題。

我們在上圖的左側(cè)看到的是 MVC 中的視圖和控制器。雙實線另一層的所有形狀都是 MVC 中的模型。這些模型也代表著 EBI 架構(gòu)(我們可以清楚的看到邊界、交互器和實體),六邊形架構(gòu)中的“應(yīng)用”、洋蔥架構(gòu)中的“應(yīng)用核心”,以及前面整潔架構(gòu)示意圖中的“實體”層和“用例”層。

假設(shè)有一個 HTTP 請求按照控制流到達了控制器??刂破鹘酉聛頃?/p>

  • 拆解請求;
    • 使用相關(guān)數(shù)據(jù)創(chuàng)建一個請求模型;
    • 執(zhí)行交互器(作為交互器接口的,即邊界的,實例被注入到控制器中)中的方法并將請求模型傳遞給它;
  • 交互器會:
    • 使用實體網(wǎng)關(guān)實現(xiàn)(作為實體網(wǎng)關(guān)接口的實例被注入到交互器中)查找相關(guān)實體;
    • 編排實體之間的交互;
    • 用操作的數(shù)據(jù)結(jié)果創(chuàng)建響應(yīng)模型;
    • 將響應(yīng)模型交給展示器進行填充;
    • 將展示器返回給控制器;
  • 使用展示器生成視圖模型;
  • 將視圖模型綁定到視圖;
  • 將視圖返回給客戶端。

這里只有“展示器”的用法我有些疑問,我在項目中的實際做法和這里不太一樣。我會將某種 DTO 類型的數(shù)據(jù)返回給交互器,而不是注入一個填充了數(shù)據(jù)的展示器對象。

我通常會采用實際上是一種 MVP 實現(xiàn),控制器在其中負責(zé)從客戶端接收數(shù)據(jù)并響應(yīng)它。

總結(jié)

我不認為整潔架構(gòu)是革命性的,因為它實際上并沒有帶來突破性的概念或模式。

但是,我認為它是相當(dāng)重要的成果:

  • 它發(fā)掘了某種程度上被遺忘了的概念、規(guī)則和模式;
  • 它澄清了一些實用且重要的概念、規(guī)則和模式;
  • 它告訴我們?nèi)绾伟阉械母拍?、?guī)則和模式整合起來,形成一種構(gòu)建復(fù)雜應(yīng)用并保持可維護性的標(biāo)準(zhǔn)套路

Uncle Bob 關(guān)于整潔架構(gòu)的工作總會讓我想起牛頓。引力始終是存在的,每個人都知道松手讓蘋果遠離地面的高處落下,它會落向地面。牛頓做的事情“只不過”是寫了一篇論文披露這個事實。這件事請很“簡單”,但卻讓人們開始思考它并基于它創(chuàng)造更新的想法。

換句話說,我認為 Robert C. Martin 就是軟件開發(fā)領(lǐng)域的牛頓[*注] !

引用來源

2012 – Robert C. Martin – Clean Architecture (NDC 2012)

2012 – Robert C. Martin – The Clean Architecture

2012 – Benjamin Eberlei – OOP Business Applications: Entity, Boundary, Interactor

2017 – Lieven Doclo – A couple of thoughts on Clean Architecture

2017 – Grzegorz Ziemoński – Clean Architecture Is Screaming

[[404607]]

覃宇,Android開發(fā)者/ThoughtWorks技術(shù)教練//譯者,熱衷于探究軟件開發(fā)的方方面面,從端到云,從工具到實踐。喜歡通過翻譯來學(xué)習(xí)和分享知識,譯作有《Kotlin實戰(zhàn)》、《領(lǐng)域驅(qū)動設(shè)計精粹》、《Serverless架構(gòu):無服務(wù)器應(yīng)用與AWS Lambda》和《云原生安全與DevOps保障》。

 

責(zé)任編輯:武曉燕 來源: 逸言
相關(guān)推薦

2021-03-26 07:47:18

單體架構(gòu)程序

2021-04-12 09:48:50

MVCHTMLCSS

2021-04-30 09:16:08

軟件架構(gòu)命名

2012-06-11 15:29:14

OpenStack

2015-07-17 13:27:06

2012-12-21 15:32:32

Linux Deepi

2011-07-20 09:19:47

SQL Server

2019-01-23 17:37:58

華為

2012-03-30 11:34:52

Linux Deepi

2014-10-29 14:43:05

2014-05-20 17:26:06

2014-12-12 14:55:42

移動惡意代碼移動安全

2013-10-31 14:31:09

2011-08-08 09:25:55

2025-01-23 09:07:51

2023-09-06 06:46:40

顯卡接口RTX 4060

2015-12-16 10:11:14

2020-08-21 13:54:24

瀏覽器程序員內(nèi)核

2014-05-09 11:19:38

iOS移動互聯(lián)網(wǎng)

2009-09-22 08:14:23

點贊
收藏

51CTO技術(shù)棧公眾號

日韩精品你懂的| 极品日韩久久| 国产探花在线视频| 亚洲综合网狠久久| 色一区在线观看| 91九色国产ts另类人妖| 天天操天天射天天| 另类人妖一区二区av| 欧美日韩成人在线播放| 中文字幕一区二区三区人妻电影| 国产精品久久久久久吹潮| 亚洲综合免费观看高清在线观看| 欧美日韩高清在线一区| 99产精品成人啪免费网站| 亚洲综合精品四区| 欧美日韩成人网| 国产亚洲精品精品精品| 国产精品三p一区二区| 欧美私模裸体表演在线观看| 日韩网站在线免费观看| 免费观看在线午夜影视| 成人激情小说乱人伦| 国产精品直播网红| 国产精品777777| 欧美日韩理论| www.日韩欧美| 91精品国自产在线| 亚洲春色h网| 精品国产一区二区三区av性色| 男女无套免费视频网站动漫| 国产夫妻在线播放| 亚洲精品亚洲人成人网| 一区二区三区电影| 国产精品一区二区婷婷| 26uuu亚洲| 国内外成人免费视频| 亚洲第一黄色片| 久久国产欧美日韩精品| 国产精品精品一区二区三区午夜版| 精品人妻在线播放| 亚洲五月综合| 久久久www成人免费精品张筱雨| 丰满少妇高潮一区二区| 亚洲精品国模| 亚洲国产中文字幕在线观看| 精品综合久久久久| 日韩毛片免费视频一级特黄| 欧美日韩另类在线| 日韩欧美一区二| 18在线观看的| 亚洲免费高清视频在线| 国产美女视频免费| 久草资源在线观看| 亚洲少妇屁股交4| 男插女免费视频| 超碰免费在线播放| 一区二区三区在线视频播放| 国产又粗又长又爽视频| 色呦呦在线播放| 亚洲一区二区av电影| 成年人深夜视频| 大香伊人久久| 天天综合天天做天天综合| 18禁免费观看网站| 伊人久久精品一区二区三区| 色噜噜狠狠色综合中国| 麻豆一区二区三区视频| 午夜不卡一区| 日韩欧美视频一区| 中文字幕第九页| 日本中文字幕在线一区| 亚洲天堂av综合网| 国产又粗又长免费视频| 亚洲国产成人精品女人| 欧美第一页在线| 中文字幕一区二区三区手机版| 亚洲少妇在线| 国产成人精品免费视频| 一区二区三区午夜| 国产电影一区在线| 国产在线精品一区二区三区| 男同在线观看| 国产精品久久三| 成年人深夜视频| 樱桃视频成人在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91小视频网站| 亚洲精品黑牛一区二区三区| 精品中文字幕久久久久久| 欧洲av一区二区三区| 亚洲理论电影网| 欧美激情视频在线| 日本中文字幕在线观看视频| 国产一区二区在线看| 久久国产精品亚洲va麻豆| av在线之家电影网站| 亚洲综合一区二区三区| 农村妇女精品一二区| 国产精品高清一区二区| 亚洲成人av片在线观看| 一级二级黄色片| 亚洲国产二区| 91精品美女在线| 日本成人一区| 一区二区三区丝袜| 欧美午夜影院一区| 亚洲一区美女| 国产剧情av在线播放| 欧美日韩亚洲不卡| 风间由美一二三区av片| 亚洲xxx拳头交| 国产成人一区二区三区电影| 亚洲第一免费视频| 中文字幕一区二区三| 大肉大捧一进一出好爽视频| 欧美高清一级片| 一色桃子一区二区| 久久青青草视频| 成人深夜福利app| 99re99热| 欧美日韩卡一| 一区二区三欧美| 亚洲一区欧美在线| 国产69精品久久久久毛片 | 女人另类性混交zo| 视频一区日韩精品| 日韩一区二区在线视频| 蜜臀精品一区二区三区| 99视频精品在线| 精品久久久久久无码中文野结衣| 亚洲精品伊人| 最近2019中文字幕大全第二页| 国产无遮挡呻吟娇喘视频| 福利电影一区二区三区| 三级在线免费观看| 999色成人| www亚洲欧美| 中文字幕资源网| 国产嫩草影院久久久久| 欧美精品成人网| 久久91精品| 日本久久久久久久| 青青色在线视频| 欧美午夜影院在线视频| 一级国产黄色片| 亚洲尤物影院| 美女被啪啪一区二区| 九色porny视频在线观看| 亚洲黄色成人网| 粉嫩aⅴ一区二区三区| 成人免费的视频| 成人午夜精品久久久久久久蜜臀| 成人在线视频你懂的| 高清一区二区三区日本久| 成人黄色免费视频| 亚洲一区二区影院| 国产xxxx视频| 性欧美videos另类喷潮| 清纯唯美一区二区三区| 韩日一区二区| 久久亚洲国产精品成人av秋霞| 99国产精品99| 亚洲午夜在线观看视频在线| 日韩少妇一区二区| 亚久久调教视频| 日本在线播放不卡| 亚洲伦理一区二区| 欧美大片免费观看在线观看网站推荐| 国产 欧美 自拍| 欧美视频一二三| 极品人妻videosss人妻| 精品一区二区三区免费| 精品国产一区二区三区无码| 台湾色综合娱乐中文网| 国产精品男人爽免费视频1| 国产精品实拍| 亚洲国产欧美一区二区三区同亚洲| 国产午夜免费福利| 国产精品妹子av| 久久久久99人妻一区二区三区| 亚洲黄色精品| 午夜一区二区三区| 在线精品自拍| 国产成人久久精品| 亚洲91av| 亚洲天堂视频在线观看| 国产乱人乱偷精品视频a人人澡| 亚洲自拍偷拍九九九| 免费黄色在线视频| 国产经典欧美精品| 亚洲人成色77777| 亚洲精品中文字幕乱码| 久久综合一区| 天堂av一区| 国产成人精品在线观看| 丁香高清在线观看完整电影视频| 亚洲天堂av电影| 狠狠人妻久久久久久综合麻豆| 91久久奴性调教| 538精品在线观看| 欧美经典一区二区| 91传媒理伦片在线观看| 美女尤物国产一区| 久久久久久久中文| 欧美大片一区| 亚洲第一在线综合在线| 日日狠狠久久偷偷综合色| 91亚洲国产成人精品性色| av电影一区| 欧美日本高清一区| 日本电影在线观看网站| 亚洲开心激情网| 亚洲精品视频网| 欧美喷潮久久久xxxxx| 香蕉影院在线观看| 亚洲图片自拍偷拍| 久久久久久久久久网站| 国产精品色呦呦| 国产乱了高清露脸对白| 国产成人av一区| 国产性生活一级片| 日本v片在线高清不卡在线观看| www在线观看免费| 你懂的国产精品| 中文字幕中文字幕99| 精品国产中文字幕第一页 | 成人高清电影网站| 精品欧美国产| 国产日韩三级| 国产精品亚洲不卡a| 欧美不卡在线观看| 91九色国产在线| 日韩大陆av| 国产欧美一区二区三区四区| 日韩高清成人| 国产精品吹潮在线观看| 精品国产免费人成网站| 8090成年在线看片午夜| 黑森林国产精品av| 97视频在线观看成人| 美女露胸视频在线观看| 8050国产精品久久久久久| 欧美少妇网站| 欧美亚洲视频一区二区| 中文字幕影音在线| 欧美在线免费观看| 成人性生活视频| 日本精品视频在线| 日本在线中文字幕一区二区三区| 国产精品成人一区二区三区吃奶| 国产成人精品123区免费视频| 国产精品99久久久久久久久| 经典三级一区二区| 国产精品网站大全| 人人玩人人添人人澡欧美| 国产一区二区在线免费视频| 二区三区精品| 懂色av一区二区三区在线播放| 福利片在线一区二区| 好吊色欧美一区二区三区四区 | 亚洲精品国产精品久久| 日韩大片在线| japanese在线视频| 亚洲大黄网站| 成年人视频在线免费| 日韩av在线免费观看不卡| 久久撸在线视频| 国产精品99久久久久久似苏梦涵| 91人人澡人人爽| 91免费视频网| 激情高潮到大叫狂喷水| 亚洲一区二区三区美女| 日韩色图在线观看| 欧美日韩精品一区二区三区| 精品人妻无码一区二区色欲产成人| 精品国产乱码久久久久久1区2区 | 疯狂欧洲av久久成人av电影| 成人资源av| 国产中文字幕一区二区三区| 日韩视频在线免费播放| 99热精品在线| 奇米影音第四色| 成人av网站在线观看| 1024在线看片| 亚洲一区二区高清| 亚洲一区在线观| 日韩精品在线网站| 邻家有女韩剧在线观看国语| 欧美成年人网站| 亚洲美女炮图| 2019国产精品视频| 国产一区二区三区四区五区传媒| 经典三级在线视频| 欧美一级久久| 台湾佬美性中文| 国产精品女同一区二区三区| 亚欧洲精品在线视频| 欧美在线看片a免费观看| 蜜桃久久一区二区三区| 色妞一区二区三区| 麻豆视频在线观看免费网站黄| 国产玖玖精品视频| 中文字幕中文字幕精品| 国产免费内射又粗又爽密桃视频| 日本午夜精品一区二区三区电影 | 国产美女免费视频| 亚洲人成77777在线观看网| 日本高清成人vr专区| 国产精品视频久| 色婷婷狠狠五月综合天色拍| 中文字幕中文字幕在线中心一区 | 日本wwwwwww| 亚洲欧洲性图库| 波多野结衣一区二区三区在线 | 成人免费无码大片a毛片| 亚洲另类一区二区| 中文字幕在线观看高清| 亚洲欧美日韩国产中文专区| 51漫画成人app入口| 999日本视频| 婷婷中文字幕一区| 在线免费观看av的网站| 国产三级精品在线| 最新中文字幕一区| 亚洲国产成人久久| 日本不卡影院| 亚洲自拍小视频| 91亚洲国产| mm131国产精品| 国产精品系列在线| 波多野结衣一区二区三区四区| 国产视频精品免费播放| 麻豆国产在线| 精品乱码一区二区三区| 99精品国产福利在线观看免费| 一级黄色电影片| 亚洲国产美女搞黄色| 亚洲国产精品久久人人爱潘金莲| 超碰91人人草人人干| av日韩在线免费观看| 成年人黄色在线观看| 国产一区二区伦理| 欧美第一页在线观看| 欧美一级生活片| 2024最新电影免费在线观看| 99re视频在线观看| 91久久久久| 成人无码www在线看免费| 懂色aⅴ精品一区二区三区蜜月| 午夜国产在线视频| 日本最新高清不卡中文字幕| 国产乱码精品一区二区亚洲| 激情内射人妻1区2区3区 | 日韩av在线免费观看一区| av在线中出| 欧美18视频| 蜜臀av一区二区三区| 日韩成人短视频| 制服丝袜成人动漫| 欧洲成人综合网| 精品无码久久久久国产| 丝袜a∨在线一区二区三区不卡| 一级片手机在线观看| 欧美日韩一区不卡| 二区三区四区高清视频在线观看| 97视频资源在线观看| 亚洲免费成人| 91精品国自产在线| 日韩一区二区三免费高清| 2001个疯子在线观看| 日本婷婷久久久久久久久一区二区| 久久国产精品色婷婷| 久久视频免费看| 亚洲午夜国产成人av电影男同| 欧美一区=区三区| 2019日韩中文字幕mv| 国产人久久人人人人爽| 国产成人精品av在线观| 51久久精品夜色国产麻豆| 青青草综合网| 99精品一区二区三区无码吞精| 日本久久电影网| av网站大全在线| 欧美视频小说| 国产丶欧美丶日本不卡视频| 高清乱码免费看污| 欧美另类精品xxxx孕妇| 国产精品一区2区3区| 手机看片国产精品| 在线日韩一区二区| 丁香花在线影院| 亚洲欧美日韩在线综合 | 日韩电影在线观看网站| 五月天av网站| 亚洲欧美另类人妖| 视频精品一区二区三区| 麻豆三级在线观看| 精品福利在线视频| 二区三区在线观看| 日韩一区免费观看|