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

?軟件系統的復雜性、耦合度和內聚性

系統
我們編寫的軟件由服務、進程、文件、類、過程等組成 — 這些模塊隱藏了我們無法抗拒的一堆位和片段。讓我們思考一下。

我們遇到的任何軟件系統很可能都過于復雜,一次無法完全理解 — 人類的思維無法理解大量實體及其關系。我們傾向于通過建立抽象來簡化現實:一旦我們將許多閃亮的金屬、玻璃和橡膠定義為“汽車”,我們就可以談論“高速公路”、“停車場”和“乘客” — 我們生活在我們創造的抽象世界中。同樣,我們編寫的軟件由服務、進程、文件、類、過程等組成 — 這些模塊隱藏了我們無法抗拒的一堆位和片段。讓我們思考一下。

概念與復雜性

任何系統都包括 概念 — 以其他概念為基礎定義的概念。例如,如果你正在實現一個電話簿,你會處理 名 和 姓、號碼、排序 和 搜索,這些概念是任何與電話簿相關的開發任務中必須牢記的 — 只因為電話簿的需求是用這些概念及其關系描述的。

在代碼中,高級概念被體現為服務、模塊或目錄,而較低級的概念則對應于類、API 方法或源文件。

概念很重要,因為它們的數量(或相應類和方法的數量)定義了系統的 復雜性 — 開發人員面對的認知負荷。如果程序員詳細了解他們正在處理的組件的行為,他們往往會變得極其高效,并且通常能夠為看似復雜的任務找到簡單的解決方案。否則,開發速度會很慢,并且需要進行大量測試,因為人們不確定他們的更改會如何影響系統的行為。

圖1:復雜性與實體數量相關

模塊、封裝和有界上下文

讓我們回到我們的例子。當你實現電話簿時,你會發現排序和搜索比你最初想象的要復雜得多。一旦你準備進入國際市場,你就會陷入深深的困境。一些電話服務提供商發送7位數字,其他人使用10位數字,還有些人使用13位數字(第一個字符為“+”或“0”)。德語有“?”,它與“ss”相同,而日語同時使用兩種字母表。一旦你開始閱讀標準,實現所有奇怪的行為并回應用戶投訴,你會感到你的電話簿實現淹沒在充滿特殊情況的外語字母表的無關邏輯中。你需要 封裝。

引入 模塊。模塊封裝了幾個概念,有效地將它們隱藏在外部用戶之外,并暴露了其內容的簡化視圖。引入模塊將復雜的系統分成了幾個通常更簡單的部分。

圖2:將系統劃分為模塊,突出顯示有界上下文

該圖有幾個值得注意的地方:

  • 模塊為其 公共API 創建了新的概念。
  • API 入口點增加了 擁有者模塊 和其客戶的復雜性。
  • 系統中的概念總數已增加(從18個到22個),但系統中最高復雜度已下降(從18到15)。

在這里,我們看到引入模塊如何將分而治之的方法應用于減少在系統的任何部分上工作時的認知負荷,以較小的總工作量為代價。

在我們的電話簿示例中,與地區相關的字符串比較和聯系人姓名的字母排序的特殊性(包括大小寫敏感性)應該更好地保留在一個簡單的字符串比較接口之后,以解除電話簿引擎程序員對支持外語的復雜性的負擔。

模塊代表 有界上下文 [DDD] — 系統知識的領域,這些領域操作不同的術語集。對于電話簿來說,整理 和 大小寫敏感性 對于電話簿引擎并不重要 — 它們只在語言支持的上下文中定義。另一方面,通過號碼匹配聯系人 在語言支持模塊中并未定義 — 該術語僅存在于電話簿引擎中。程序員所面臨的是當前有界上下文的復雜性。

除了將問題分解為較簡單的子問題外,模塊還帶來了一些額外的好處:

  • 代碼重用。一個良好編寫的模塊可以在多個項目中使用。
  • 勞動分工。一旦系統被拆分為模塊,并且每個模塊都被分配給一個程序員,開發就會被高效地并行化。
  • 高級概念。有些情況允許將原始問題的幾個概念合并為更高級的聚合,進一步降低復雜性:

圖3:合并了綠色模塊的兩個API概念

例如,電話簿的原始定義包含 名 和 姓。一旦我們將語言支持分離到一個專用模塊中,我們可能會發現各種地區在表示聯系人時有所不同:一些(美國)使用“名 + 姓”,而其他一些(日本)則需要“姓 + 名”。如果我們想要擺脫這個細節,我們應該使用一個新的 全名 概念,它以特定于區域的方式連接名和姓。這樣的改變實際上簡化了電話簿的某些表示邏輯和代碼,因為它用一個概念替換了兩個概念。

耦合度和內聚性

為了有效使用模塊,我們需要學習一些新的概念:

  • 耦合度 是模塊之間連接數量(密度)的度量,相對于模塊的大小。
  • 內聚性 是模塊內連接數量(密度)的度量,相對于模塊的大小。

經驗法則是要追求 低耦合和高內聚,這意味著每個模塊應該封裝一組相關(密切交互)的概念。這就是我們在圖2和圖3中將系統劃分為的方式。現在讓我們看看如果我們違反規則會發生什么:

圖4:上部模塊耦合度高

拆分一個內聚模塊(一組相互交互的概念),會產生兩個強耦合的模塊。這正是我們想要的,只是每個新模塊幾乎與原始模塊一樣復雜。也就是說,我們現在面臨兩個艱巨的任務,而不是一個。此外,系統的性能可能很差,因為模塊之間的通信很少是最佳的,而我們卻有太多這樣的通信。

圖5:下部模塊內聚性低

如果我們將幾個概念集聚在同一個模塊中會發生什么?對于小模塊來說,不會發生什么太糟糕的事 — 模塊的復雜性高于其各個部分,但低于它們的總和。實際上,多個無關的函數通常被收集到一個‘utils’或‘tools’文件或目錄中,以減輕 操作復雜性。

開發與操作復雜性

我們上面討論的是 結構性 或 開發復雜性 —— 有界上下文內部的概念和規則的數量。然而,我們還需要理解系統作為一個整體的操作和組件,從而導致 操作 或 集成復雜性:

  • 這個新需求是否適合現有模塊,還是需要一個專用模塊?
  • 我們使用了哪些存在已知安全漏洞的庫?
  • 有沒有辦法減少我們的云服務成本?
  • 1% 的請求超時了。你能調查一下嗎?
  • 我的團隊需要實現這個和那個。我們有適合重用的東西嗎?
  • 那個全局變量到底是干什么的?
  • 我們真的需要將這段代碼投入生產嗎?
  • 我需要稍微改變一下那個共享組件的行為。有什么意見嗎?

當部署了數百或數千個模塊時,沒有人知道答案。這類似于需要在 Linux 下執行某些操作的情況:已預安裝了數百個工具,數千個其他工具則作為軟件包可用,但唯一的前進方式是首先在搜索引擎中搜索您的需求,然后嘗試搜索結果中的兩三種方法,看哪種適合您的設置。不幸的是,谷歌并不索引您公司的代碼。

模塊的組合

一個模塊不僅可以封裝單個概念,還可以封裝其他模塊。這并不奇怪,因為 OOP 類是一種模塊 — 它具有公共方法和私有成員。將一個模塊隱藏在另一個模塊中會將其從全局范圍中刪除,減少了系統的操作復雜性 — 現在不再是系統的架構師,而是外部模塊的維護者必須記住內部模塊。一方面,在組織和代碼中建立了可管理的層次結構。另一方面,代碼重用和許多優化幾乎不可能實現,因為內部模塊在整個組織中幾乎不為人知:

圖6:模塊的組合阻止了重用

如果我們的內部模塊的功能被我們的客戶需要,我們有兩個不好的選擇:

轉發和重復

圖7:轉發內部模塊的API

我們可以將我們封裝的模塊的API添加到我們的公共API中,并將其調用轉發到內部模塊。然而,這會增加我們模塊的復雜性,并降低我們模塊的內聚性 — 現在我們模塊的每個客戶都暴露于我們封裝的模塊的方法的細節中,即使他們并不打算使用它。

圖8:重復內部模塊

另一個不好的選擇是讓需要我們封裝的模塊的客戶復制它并擁有副本作為自己的子模塊。這使我們擺脫了任何共同的責任,讓我們可以任意修改和誤用我們的內部,并違反了常識的一對 規則。

這兩種方法,即將所有模塊保留在全局范圍內和通過組合封裝實用模塊,都在歷史上找到了它們的位置[FSA]。面向服務的架構 基于重用的想法,但卻成了其 企業服務總線 的復雜性的犧牲品,該總線必須考慮系統中的所有交互(API 方法)。作為反應,微服務 方法把潮流轉向了相反的方向:其支持者不允許在服務之間共享任何資源或代碼,以確保它們的解耦。

責任編輯:趙寧寧 來源: 小技術君
相關推薦

2015-01-14 09:57:29

阿里云異構系統分布式消息

2023-10-06 12:08:53

Java代碼

2017-06-23 08:45:02

存儲技術復雜性

2021-02-22 10:27:30

網絡軟件多云網絡復雜性

2013-11-01 13:38:41

程序員編程語言

2012-12-26 10:53:26

2012-09-19 13:18:37

復雜設計UI設計

2019-05-13 15:47:29

Kubernetes云計算云復雜性

2009-01-20 15:23:33

存儲安全密鑰數據保護

2014-08-21 08:54:03

2024-06-07 00:08:00

分布式系統開發

2019-08-21 13:24:25

KubernetesHadoop容器

2012-08-08 11:04:39

網管軟件惠普云管理

2022-10-21 14:49:41

AI系統

2019-07-29 12:35:15

云計算復雜性云計算平臺

2019-11-23 23:30:55

Python數據結構時間復雜性

2020-06-15 09:58:23

云計算云安全數據

2020-03-24 09:52:34

大數據IT技術

2018-05-16 07:34:52

NFV虛擬化數據中心

2018-07-31 14:47:51

Kubernetes開發應用程序
點贊
收藏

51CTO技術棧公眾號

91免费视频国产| 欧美大胆一级视频| 午夜免费电影一区在线观看| 中文天堂在线视频| 久久美女视频| 日韩一区二区电影在线| av在线播放天堂| 四季av日韩精品一区| 日韩视频三区| 亚洲人午夜色婷婷| 密臀av一区二区三区| 午夜视频成人| 国产91精品在线观看| 7777kkkk成人观看| 黑人と日本人の交わりビデオ| 国产精品一区二区美女视频免费看| 亚洲黄网站在线观看| 精品乱色一区二区中文字幕| 这里只有精品国产| 国产精品av一区二区| 亚洲国产第一页| 欧美三级午夜理伦三级富婆| 午夜在线激情影院| 久久免费午夜影院| 成人h片在线播放免费网站| 久久久久久久国产精品毛片| 大香伊人久久精品一区二区| 91福利区一区二区三区| 9191国产视频| 国产在线观看免费| 国产成人aaa| 国产精品免费一区| 国产精品18p| 成人免费看片39| 亚洲成年人影院在线| 欧美成人免费高清视频| av免费网站在线| 久久久影视传媒| 国产在线播放不卡| 中文字幕亚洲乱码熟女1区2区| 亚洲经典一区| 亚洲精品理论电影| 中文字幕55页| 777午夜精品电影免费看| 亚洲综合久久久| 亚洲国产综合自拍| 欧美18xxxxx| 久久99国内精品| 日韩免费精品视频| 日韩和一区二区| 99久久精品国产亚洲精品| 精品呦交小u女在线| 中文字幕制服丝袜| 玖玖精品一区| 91麻豆精品国产91久久久| 99视频精品免费| 理论片午夜视频在线观看| 亚洲乱码国产乱码精品精可以看 | 日本精品网站| 日韩欧美999| 欧美变态另类刺激| sm久久捆绑调教精品一区| 中文字幕一区视频| 亚洲国产精品毛片| 成人精品一区二区| 91网站视频在线观看| 国内成+人亚洲| 狠狠综合久久av一区二区| 国产精品一品视频| 91在线国产电影| 国产又黄又爽视频| 国产一区二区日韩精品| 日本久久中文字幕| 中文字幕av影院| 久久国产一二区| 日产日韩在线亚洲欧美| 国产www在线| 久久久久国产精品午夜一区| 欧洲成人在线观看| 手机在线看片1024| 老**午夜毛片一区二区三区| 国产成人jvid在线播放| 波多野结衣在线观看视频| 久久精品一区二区国产| 国产精品69av| 一级片一区二区三区| 麻豆国产精品一区二区三区| 国产欧美在线播放| 精品二区在线观看| 久久99久久久欧美国产| 亚洲一区二区免费| 黄色一级大片在线免费看国产一| 99久久久久久99| 蜜桃视频在线观看成人| 加勒比一区二区三区在线| 国产欧美精品一区二区三区四区| 亚洲免费久久| 婷婷色在线播放| 精品日韩中文字幕| 国产成人亚洲精品无码h在线| 欧美福利在线播放| 69堂成人精品免费视频| 中文字幕18页| 国产成人影院| 久久精品国产亚洲精品2020| 久久精品亚洲无码| 日韩图片一区| 国产美女直播视频一区| www.色呦呦| 久久久久久一二三区| 曰韩不卡视频| 啊啊啊久久久| 在线视频一区二区三| 国产欧美精品一二三| 欧洲亚洲一区二区三区| 在线看日韩av| 日韩免费在线视频观看| 久久这里有精品15一区二区三区| 成人深夜直播免费观看| 日韩av成人| 亚洲啪啪综合av一区二区三区| 日韩免费视频播放| 精品91福利视频| 亚洲欧美国内爽妇网| 玖玖爱免费视频| 免费在线观看不卡| 97超碰在线播放| 国产一级网站视频在线| 亚洲一区二区黄色| 亚洲一区二区在线视频观看| 任你躁在线精品免费| 色偷偷噜噜噜亚洲男人的天堂| 国产无遮挡又黄又爽又色| 蜜桃久久久久久久| 国产精选在线观看91| 日本成a人片在线观看| 亚洲综合激情网| 男生操女生视频在线观看| 蜜臀91精品国产高清在线观看| 久久不射电影网| 亚洲综合成人av| 91视视频在线观看入口直接观看www | 亚洲一级特黄| 国产主播欧美精品| 激情小视频在线| 五月激情综合网| 国产伦理在线观看| 国产国产精品| 国产日产久久高清欧美一区| 男人的天堂在线| 婷婷久久综合九色综合绿巨人| 欧美一二三区在线| 原创真实夫妻啪啪av| 婷婷中文字幕一区| 国产精品午夜国产小视频| 国产网站在线播放| 在线观看免费一区| 在线观看免费小视频| 日韩中文字幕区一区有砖一区| 久久久久久久久一区二区| 超碰在线视屏| 日韩电影中文字幕在线观看| 日产精品久久久久| 26uuu成人网一区二区三区| 亚洲色欲综合一区二区三区| 少妇一区二区三区| 日韩美女在线观看| 欧美jizzhd69巨大| 欧美一区二区三区四区视频| 免费毛片在线播放免费| 成人99免费视频| 日日碰狠狠躁久久躁婷婷| 美女少妇全过程你懂的久久| 国产精品久久久久久久久久久久久久 | 亚洲国产精品字幕| 中文字幕在线欧美| 中文字幕av一区 二区| 亚洲色图偷拍视频| 亚洲视频精品| 欧美日韩在线高清| 日韩三级一区| 久久久久久成人精品| 色中色在线视频| 欧美日韩电影在线播放| 免费一级黄色大片| 久久久精品黄色| 国产5g成人5g天天爽| 亚洲国产精品第一区二区三区| 欧美黄色直播| 日韩免费一级| 日本久久亚洲电影| 在线播放免费av| 亚洲欧美国产精品专区久久 | 国产精品综合一区二区| 亚洲人精品午夜射精日韩 | 久久精品人人爽| 视频污在线观看| 欧美日韩精品福利| 国产无套内射又大又猛又粗又爽| 国产欧美1区2区3区| 国产吃瓜黑料一区二区| 麻豆国产精品官网| 你懂的av在线| 亚洲二区三区不卡| 女同一区二区| 亚洲视频国产精品| 国产精品高清在线观看| 岛国毛片av在线| 中文字幕一区二区精品| 懂色av成人一区二区三区| 欧亚洲嫩模精品一区三区| 久草资源在线视频| 国产精品嫩草99a| 一女三黑人理论片在线| 国产一区二区三区四| 日本成年人网址| 国产精品99免费看| 特级毛片在线免费观看| 亚洲亚洲免费| 精品综合久久久| 亚洲一区二区三区中文字幕在线观看| 国产精品男人的天堂| а√天堂8资源中文在线| 久久精品成人一区二区三区| 免费在线超碰| 日韩精品视频在线免费观看| 国产特黄一级片| 欧美日韩国产综合视频在线观看| 九九热在线视频播放| 国产精品灌醉下药二区| 亚洲第一页av| 99国内精品久久| 国产香蕉精品视频| 国产精品乡下勾搭老头1| 伊人影院综合在线| 日本vs亚洲vs韩国一区三区 | 中文字幕色一区二区| 国产欧美久久一区二区三区| 精品一区二区三区免费毛片| 成人三级毛片| 国产伦精品一区二区三区在线| 视频精品一区| 91麻豆精品秘密入口| 精品亚洲a∨| 成人国产精品av| 成人豆花视频| 成人精品视频99在线观看免费| www.久久.com| 国产免费观看久久黄| 六九午夜精品视频| 91免费精品国偷自产在线| 国产精品视频一区二区三区综合| 国产在线999| 欧美电影院免费观看| 99在线观看| 国产精品对白久久久久粗| 国产亚洲精品自在久久| 欧美网色网址| 日本不卡一区二区三区视频| 奇米狠狠一区二区三区| 色99中文字幕| 99久久婷婷国产综合精品电影√| 最新欧美日韩亚洲| 欧美啪啪一区| 国产黄色一级网站| 老司机精品福利视频| 视色视频在线观看| 韩国三级在线一区| av影片在线播放| 成人av在线观| 国产手机在线观看| 国产精品网站在线| 九九视频免费在线观看| 欧美日韩免费网站| 国产又粗又猛又爽又| 欧美美女一区二区在线观看| 黑人精品一区二区三区| 亚洲女同精品视频| 嫩草香蕉在线91一二三区| 欧美理论片在线观看| 一二三四视频在线中文| 国产精品男女猛烈高潮激情| 日韩精品视频中文字幕| 国内视频一区| 日韩a一区二区| 嫩草影院中文字幕| 日本vs亚洲vs韩国一区三区| 奇米777在线| wwww国产精品欧美| 四虎地址8848| 亚洲福利国产精品| 青青艹在线观看| 日韩欧美国产wwwww| 深夜福利在线看| 久久亚洲国产成人| 毛片无码国产| 999精品视频一区二区三区| 亚洲ab电影| 国产欧美综合一区| 久久久久久穴| 一边摸一边做爽的视频17国产 | 自拍偷拍亚洲色图欧美| 国产日韩欧美一区在线| 婷婷激情综合五月天| 国产午夜亚洲精品午夜鲁丝片 | 亚洲精选国产| av中文字幕网址| 久久一区二区视频| 久久久久久久久久久97| 欧美色精品在线视频| 日本美女一级视频| 久久偷看各类女兵18女厕嘘嘘| 中文字幕乱码中文乱码51精品| 91精品视频在线免费观看| 中文精品一区二区| www.国产二区| 久久成人av少妇免费| 中国毛片在线观看| 午夜激情一区二区| 亚洲福利在线观看视频| 日韩在线国产精品| 欧美影视资讯| 久久艳妇乳肉豪妇荡乳av| 黄色欧美日韩| 国产精品久久久久野外| 国产精品精品国产色婷婷| 毛片视频网站在线观看| 精品国产乱码久久久久久夜甘婷婷| 色多多视频在线观看| 国产精品电影观看| 男男gay无套免费视频欧美| 国产精品久久..4399| 成人综合婷婷国产精品久久蜜臀| 日本 欧美 国产| 在线视频你懂得一区二区三区| 青青草娱乐在线| 奇门遁甲1982国语版免费观看高清| 亚洲日本va| 国产片侵犯亲女视频播放| 国产美女娇喘av呻吟久久| 日韩成人短视频| 在线成人免费视频| 黄色网址免费在线观看| 国产日韩欧美在线播放| 热久久天天拍国产| 无尽裸体动漫2d在线观看| 国产欧美一区二区精品仙草咪| 天干夜夜爽爽日日日日| 亚洲美女视频网站| 欧美日韩在线精品一区二区三区激情综合 | 在线播放日韩| 亚洲av成人无码一二三在线观看| 亚洲综合视频在线观看| 俄罗斯嫩小性bbwbbw| 亚州av一区二区| 日韩最新在线| 男人的天堂99| 国产欧美日韩视频在线观看| 看黄色一级大片| 色av吧综合网| 日韩精品免费视频一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ| 丰满的亚洲女人毛茸茸| 8x福利精品第一导航| 在线视频国产区| 国产无套精品一区二区| 国产精品丝袜xxxxxxx| 中文字幕免费高清| 欧美日韩精品福利| 七七成人影院| 欧美成人免费在线| 美女看a上一区| www青青草原| 国产手机视频精品| yy6080久久伦理一区二区| japanese在线视频| 丁香网亚洲国际| 日韩免费av网站| 久久综合免费视频影院| av动漫精品一区二区| av动漫免费看| 亚洲欧美偷拍三级| 亚洲 欧美 精品| 国产精品永久免费| 综合久久久久| 实拍女处破www免费看| 在线91免费看| 欧美另类老肥妇| 中文字幕欧美日韩一区二区| 成人网在线免费视频| 美女黄页在线观看| 久久久久久网址| 四虎国产精品免费观看| 日韩少妇一区二区| 欧美日韩国产一二三| av影视在线看| 正在播放一区| 91麻豆国产香蕉久久精品| 99精品久久久久久中文字幕| 欧美一级大片在线观看|