成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

“開閉原則” 推崇模塊業務 “只讀” 的思想,是很好的架構治理哲學

開發 架構
“開閉原則” 推崇模塊業務 “只讀” 的思想,是很好的架構治理哲學。它告訴我們,軟件是可以以 “搭積木” 的方式搭出來的。核心的一點是,我們如何形成更多的 “積木”,即一個個業務只讀、接口穩定、易于組合的模塊。

開閉原則包含以下兩層含義:

模塊的業務穩定性是架構治理的核心理念之一。按照“只讀”設計原則,一旦模塊的業務穩定,就不應頻繁進行變更。相反,如果業務需要變化,更好的做法是將其歸檔或放棄,以保持系統穩定。這種“只讀”思想是架構治理的基石,強調每個模塊都應該是一個獨立可完成的單元。實際上,這也是對開閉原則在業務層面的另一種表述方式。

模塊業務的變化點應該以簡單或復雜的方式開放給其他業務模塊。對于簡單的變化點,可以通過回調函數或接口來實現,從而交給其他模塊處理。而對于更復雜的變化點,可以通過引入插件機制來將系統分解為“最小化的核心系統 + 多個彼此正交的周邊系統”。需要注意的是,回調函數或接口本質上就是一種事件監聽機制,因此可以視作插件機制的特例。這種方式可以有效地管理系統的變化點,提高系統的靈活性和可維護性。

實際上,我們以前也有設計原則,它們之中不乏精彩絕倫、振聾發聵的總結。比如:

接口隔離原則(Interface Segregation Principle,ISP):模塊之間的依賴應該建立在盡可能小的接口上。這意味著一個模塊不應該依賴于其不需要使用的接口,而應該只依賴于其需要的最小接口集合。

依賴倒置原則(Dependence Inversion Principle,DIP):高層模塊不應該依賴于低層模塊,它們應該依賴于抽象接口。通過依賴于抽象接口,而不是具體實現,可以降低模塊之間的耦合度,提高系統的靈活性和可維護性。

無環依賴原則(Acyclic Dependencies Principle,ADP):為了避免循環依賴,不要讓兩個模塊之間形成環狀依賴關系。解除循環依賴的方法是遵循依賴倒置原則,依賴于抽象接口而不是具體實現。

組合/聚合復用原則(Composition/Aggregation Reuse Principle,CARP):在擴展功能時,應優先考慮使用組合而不是繼承。通過組合的方式,可以靈活地組合不同的功能模塊,而不會造成繼承鏈的復雜性和耦合度的增加。

高內聚與低耦合(High Cohesion and Low Coupling,HCLC):模塊內部應該保持高內聚,即模塊內部的各個元素應該緊密相關,完成相同的功能。同時,模塊之間應該保持低耦合,減少彼此之間的依賴關系,從而提高系統的靈活性和可維護性。

慣例優于配置(Convention over Configuration,COC):為了提高開發效率,應盡量采用慣例而不是過多的配置。通過使用慣例,可以減少配置的復雜性,提高代碼的可讀性和可維護性。

命令查詢分離(Command Query Separation,CQS):在定義接口方法時,應區分命令(寫操作)和查詢(讀操作),將它們分離開來。通過分離命令和查詢,可以提高代碼的清晰度和可維護性。

關注點分離(Separation of Concerns,SOC):將復雜的問題分解為多個簡單的問題,并分別解決這些簡單的問題。通過關注點分離,可以降低系統的復雜度,提高代碼的可理解性和可維護性。

這些都是很好很好的。但是,我們需要意識到的一點是,熟讀架構思維并不足以讓我們成為優秀的架構師。

盡管架構思維對于軟件工程至關重要,但我們必須牢記,軟件工程的復雜性是自然存在的,它不會因為良好的架構思維而消失。因此,雖然理解架構思維至關重要,但真正的架構師武器庫并不局限于此。那么,架構師的真正武器庫是什么?答案是從架構治理開始談起。正如我們之前提到的,“開閉原則”倡導了模塊業務的“只讀”思想,這是一種優秀的架構治理哲學。它告訴我們,軟件可以像搭積木一樣構建。關鍵在于,我們如何形成更多的“積木”,也就是那些業務只讀、接口穩定、易于組合的模塊。因此,真正提高我們工程效率的是我們的業務分解能力和歷史積累的成果。

在架構分解過程中,存在兩大挑戰:第一是需求交織,即不同需求混雜在一起,形成了所謂的全局性功能。第二是需求易變,即不同客戶、不同場景下的需求看起來截然不同,并呈現出發散趨勢。這些挑戰需要我們認真應對,以確保軟件系統的靈活性和可維護性。

作為架構師,心性至關重要。架構師需要堅守對業務進行正交分解的信念,不斷探索各類需求的架構分解方法。這種思考過程漸漸形成了各種架構范式,它們不僅僅是一些架構思維,更是“一個個業務只讀、接口穩定、易于組合的模塊 + 組合的方法論”,構成了架構師真正的武器庫。

這個武器庫包含了許多內容。首先,它應該包括信息科技形成的基礎架構,將前輩們的經驗與自己的實踐相結合。但光是了解還不夠,更重要的是深刻理解基礎架構背后的架構邏輯,并確保將其完全融入自己的思維體系中,達到與基礎架構的“同頻共振”。只有這樣,當架構設計需要時,我們才能“想到它們”。有趣的是,有些人可能看似博學多才,但在實際的架構設計中卻很難將他們的知識運用起來。

我個人不太喜歡常規意義上的 “設計模式”。或者說,我們對設計模式常規的打開方式是有問題的。理解每一個設計模式,都應該放到它想要解決的問題域來看。所以,我個人更喜歡的架構范式更多的是 “設計場景” 的總結。“設計場景” 和設計模式的區別在于它有自己清晰的問題域定義,是一個實實在在的通用子系統。

“開閉原則” 推崇模塊業務 “只讀” 的思想,是很好的架構治理哲學。它告訴我們,軟件是可以以 “搭積木” 的方式搭出來的。核心的一點是,我們如何形成更多的 “積木”,即一個個業務只讀、接口穩定、易于組合的模塊。


責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2011-07-04 17:59:03

開閉原則

2022-09-27 09:21:34

SOLID開閉原則Go

2012-03-15 11:15:13

Java設計模式

2023-07-09 15:24:05

架構設計思想AKF

2024-01-23 09:07:29

Unix哲學工具

2024-07-11 16:32:13

代碼Java

2011-09-01 11:27:27

數據庫調整開閉原則

2017-12-05 15:34:06

Unix操作系統編程

2017-12-11 10:24:08

ERP治理軟件

2012-07-20 09:51:56

贊揚管理藝術管理

2012-03-01 14:30:41

關鍵業務IT基礎架構

2024-12-09 08:18:33

2022-02-18 16:23:45

元宇宙元宇宙治理問題

2023-03-15 18:34:26

資源治理數據治理業務線

2009-07-17 17:25:31

敏捷開發

2022-07-13 09:47:15

微服務治理架構師

2024-05-22 15:31:56

2011-07-13 10:12:56

SQL語句優化操作符優化

2021-04-09 15:08:49

數字化轉型數據IT

2023-12-10 22:00:47

STLC++編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产网站在线免费观看 | 国产精品成av人在线视午夜片 | 中文字幕日韩欧美一区二区三区 | 精品视频一区二区三区在线观看 | 一区二区视频在线观看 | 国内精品久久久久 | 91成人| 欧美簧片 | 日韩另类视频 | 久久99精品久久久久久噜噜 | 亚洲综合天堂 | 国产精品美女久久久 | 国产高清在线观看 | 亚洲欧美一区二区三区国产精品 | 欧美xxxx色视频在线观看免费 | 一区二区三区四区不卡视频 | 久久人人网 | 欧美一级在线免费 | 亚洲一区二区久久 | 日韩一区二区福利视频 | 欧美黑人激情 | 午夜一区二区三区视频 | 日本h片在线观看 | 99影视| 国产精品亚洲综合 | 亚洲不卡 | 黄色大片免费观看 | 波多野结衣电影一区 | 亚洲精品自拍 | 久操国产| 夜夜夜夜夜夜曰天天天 | 91福利电影在线观看 | 亚洲精品二区 | 国产成人精品免费 | 婷婷中文字幕 | 亚洲精品久久久久久久久久久 | 羞羞视频在线观看网站 | 人人鲁人人莫人人爱精品 | 久久久久久久久久久久久9999 | 国产a区| 黄网站在线播放 |