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

換個角度,重新理解架構

開發 架構
一個軟件架構基本上代表了一個軟件團隊所做的決定。它不是關于記錄或畫圖,而是關于開發團隊一起為軟件設計做出的決定。

?什么是軟件架構?

“系統設計”可以用來描述我在系統中定義的某些規則或設計的明確的模塊?還是說,它就是我定義的具體的類和函數?

如果我們從敏捷軟件開發的角度來看軟件架構,我們很快就會得出這樣的結論:在實際實施之前,幾乎不可能在詳細級別上定義類和模塊,因為需求可能會隨著Sprint的進行而快速變化,而應用程序本身也會隨著時間的推移而不斷變化。

那么,在開始正式實現軟件系統之前,用來具象化我們將要開發的系統的軟件架構到底是什么?

根據Ralph Johnson的說法,軟件架構被定義為:“架構是非常重要的東西,不管它是什么!”

這個定義一開始肯定會讓人清醒下來,然而它卻蘊含著許多真理。

一個軟件架構基本上代表了一個軟件團隊所做的決定。它不是關于記錄或畫圖,而是關于開發團隊一起為軟件設計做出的決定。軟件開發者、設計者、產品經理因此在具體的架構決策上達成一致,如REST或GraphQL、Python或JavaScript、開發兩個服務或只寫一個服務。

這也使軟件架構師的角色有了完全不同的意義。你不是在黑暗的柜子里用UML和BPMN設計一個軟件架構,然后把圖交給軟件團隊。這個角色的目的是指出軟件架構的不同觀點,并與團隊一起為軟件架構做出決定,而不是替團隊做出架構設計。畢竟,團隊最終會實施它。

那么,什么是最好的軟件架構?

有幾種軟件架構風格,如微服務或基于空間的架構。但顧名思義,它們只是可以用于決策的風格。

這實際上很快就回答了什么是最好的軟件架構的問題,從來沒有最好的軟件架構這一說。一個團隊齊心協力、盡己所能地為這個軟件考慮作出的決定,是為整個團隊和軟件需求所能給出的最佳軟件架構。這是因為所有的團隊資源都被用來讓團隊的每個個體都參與到決策過程中,以現有的人員開發出最好的架構。

如果完全相同的需求提供給另一個團隊,可能會做出完全不同的架構策略。然而,這些策略又會是整個團隊的最佳決定。這是全體軟件開發人員能夠實現所要開發的軟件的唯一方法。

盡管如此,在我的職業生涯中,有一種架構風格是我所了解的,并且經得起時間的考驗。最重要的是,我幾乎沒有再開發過不是這種架構風格的應用程序。

我們談論的是領域驅動的六邊形架構,或者也叫領域驅動的六邊形。這種架構風格是Eric Evans的領域驅動設計、Robert C. Martin的Clean Architecture和Clean Coder以及Alistair Cockburn的六邊形架構(也叫Ports and Adapters)的混合體。在這里,來自知名程序員的不同概念被結合起來,以實現清晰的規則和清晰的應用結構,但仍將個別架構的決定,如REST或GraphQL,Python或NodeJS,留給團隊。

這里有一張領域驅動六邊形的圖片,它很好地說明了如何定義清晰的規則,但又為架構決策留下了足夠的空間。

  領域驅動六邊形

這可以用道路交通的一個例子來作比較。讓道路上的每個人都遵守同樣的規則,比讓少數人遵守類似的規則,然后讓其他人都跟著這少部分人來做要好。在道路交通中,人們做出什么樣的決定取決于每個個體,但車流的方向卻是明確規定的。那么,其實我們只要遵守最終得到的規則就好了。

放到架構設計的案例中:從長遠來看,整個團隊對架構的“編排”比起團隊中部分人對架構進行“協調”會具有更好的表現:這些人確實能夠快速推動架構的決策和演進,但其余的團隊成員卻被忽略了。

因此,從長遠來看,協調得到的軟件架構在長期的波動中無法承受簡單的變更和較短的開發實施時間,而“編排”的軟件架構即使最初會因為團隊成員之前的高同步成本而變得遲緩,但持久地卻能產生高效的結果,抵御波動。總的來說,相互之間的開發比相互之間的競爭要有趣得多。

責任編輯:趙寧寧 來源: IT168網站
相關推薦

2017-11-20 16:17:50

智慧城市

2020-05-12 10:20:39

K8s kubernetes中間件

2023-02-08 08:47:13

計算機網絡MAC

2017-07-26 17:10:24

前端JavascriptThis

2019-10-23 19:42:52

5G4GVR

2014-03-12 17:40:07

GlusterFS分布式文件系統

2022-07-29 08:58:44

多線程并發

2020-04-01 15:04:54

代碼數學符號程序

2017-05-31 15:06:30

2019-01-02 08:04:29

GAN損失函數神經網絡

2009-03-25 09:48:00

WLAN無線網絡

2012-12-07 09:30:24

2011-05-31 14:18:54

橫屏UI設計

2022-06-17 14:33:01

模型AI

2020-09-25 09:37:20

云計算IT技術

2019-10-23 09:02:49

BIONIO單線程

2010-07-09 10:13:42

UDP協議

2017-02-20 09:02:31

Impala架構設計

2018-06-07 08:48:16

性能測試敏捷開發持續集成

2011-12-27 11:14:36

Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品女人久久久 | 国产精品极品美女在线观看免费 | 91啪影院| 久久新| av大片在线观看 | 国产精品a一区二区三区网址 | 久久久久久网 | 搞黄网站在线观看 | 国产精品一区二 | 国产午夜精品一区二区三区四区 | 国产精品久久久久久久久免费相片 | 午夜激情影院 | 成年人黄色一级片 | 97精品久久 | 国产在线中文字幕 | 91亚洲一区| 欧美 日韩 在线播放 | 精品欧美一区二区三区久久久 | 性做久久久久久免费观看欧美 | 国产在线精品一区 | 国产成人免费网站 | 精品视频一区二区三区在线观看 | 中文字幕 在线观看 | 精品国产乱码久久久久久影片 | 日韩av一区二区在线观看 | 国产亚洲一区二区三区 | 日韩在线小视频 | 日本久久一区二区三区 | 婷婷狠狠| 欧洲一级毛片 | 狠狠av| 午夜精品一区二区三区在线视频 | 91麻豆精品国产91久久久更新资源速度超快 | 日韩欧美字幕 | 91亚洲精品在线观看 | 国产成人a亚洲精品 | 一区二区三区视频在线观看 | 久草在线 | 国产一区二区三区www | 国产欧美视频一区二区 | 91久久国产综合久久91精品网站 |