如何成為一名架構(gòu)師,架構(gòu)師成長之路_golang架構(gòu)師成長之路_個人渣記錄僅為自己搜索用的博客-CSDN博客
如何畫架構(gòu)圖_個人渣記錄僅為自己搜索用的博客-CSDN博客
轉(zhuǎn)自
如何畫好一張架構(gòu)圖?(內(nèi)含知識圖譜) - 知乎
什么是架構(gòu)?要表達的到底是什么?
Linus 03 年在聊到拆分和集成時有一個很好的描述:
I claim that you want to start communicating between independent modules no sooner than you absolutely HAVE to, and that you should avoid splitting things up until you really need to, because that communication complexity often swamps the complexity of the actual pieces involved in it.(讓我們認識到一種現(xiàn)象,把 復(fù)雜系統(tǒng)拆分成模塊,似乎并沒有降低 整個系統(tǒng)的復(fù)雜度。它降低的只是 子系統(tǒng)的復(fù)雜度。而整個系統(tǒng)的復(fù)雜度,反而會由于拆分后的模塊之間,不得不進行 交互,變得更加復(fù)雜。)
我理解這里描述的系統(tǒng)拆分就是架構(gòu)的過程,基本出發(fā)點是為了效率,通過架構(gòu)的合理拆分(無論是空間還是時間上的拆分),最終目的讓效率最大化。那到底什么是架構(gòu),其實沒有完全統(tǒng)一且明確的定義,如下三個定義可以參考。
在百度百科上的定義:
架構(gòu),又名軟件架構(gòu),是有關(guān)軟件 整體結(jié)構(gòu)與組件的 抽象描述,?于指導(dǎo)?型軟件系統(tǒng)各個方面的設(shè)計。
在 Wikipedia 上的定義:
Architecture?is both the? process?and the? product?of planning, designing, and constructing buildings or any other structures.
ISO/IEC 42010:20072 中對架構(gòu)有如下定義:
The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.
這三個定義也是見仁見智,但是我們基本可以得出:架構(gòu)體現(xiàn)的是整體結(jié)構(gòu)和組件之間的關(guān)系。
IEEE對于軟件系統(tǒng)架構(gòu)的定義:
Architecture is the fundamental?organization?of a?system?embodied in its?components, their?relationships?to each other, and to the?environment, and the principles guiding its design and evolution. [IEEE 1471]
organization?是組織的意思,這里理解為組織結(jié)構(gòu)。
直譯:架構(gòu)是一個系統(tǒng)在其組件層面的基本組織結(jié)構(gòu)表現(xiàn),包括系統(tǒng)內(nèi)部組件之間的關(guān)系、組件與外部的關(guān)系以及決定其設(shè)計和演進的原則。
《系統(tǒng)架構(gòu)-復(fù)雜系統(tǒng)的產(chǎn)品設(shè)計與開發(fā)》一書中用最簡單的話來描述架構(gòu):
“對系統(tǒng)中的實體及實體之間的關(guān)系所進行的抽象描述?!?/p>
(第九頁,出自Edward?Crawley等人專著論文《The Influence of Architecture in Engeering Systems》)
以上兩種表述,第一種措辭嚴謹精確,可用于書面定義;第二種更直白容易理解,可用于日常表達。
架構(gòu)和抽象
Haskell 語言的設(shè)計者之一 Paul Hudak 曾說過一句略帶夸張的話:編程中最重要的三件事是:抽象,抽象,抽象。
?抽象的本質(zhì)其實是 抽出共同的(類似的)字段 + 分類 + 取名概念, 類比 界門綱目科屬種概念的提出.
本質(zhì)是:
- 抽象角度其實也是分類的角度,角度不同,會導(dǎo)致完全不同建模方向和結(jié)果;
- 抽象的角度就是建模的方向和目的(“屁股決定腦袋”)。
重新回到我們前邊的兩個問題,業(yè)務(wù)建模中我們談到了歸類,按什么去歸類,答案呼之欲出,按我們的業(yè)務(wù)流程去歸類、按客戶的角色去歸類,按不同流程復(fù)用的東西去分類( phil補充), 又回到了那個最初始的問題:客戶是誰?核心訴求是什么?
?-----------------------------------------------------------------------------
--------------延申-----如何畫軟件架構(gòu)圖?--------------------------
?-----------------------------------------------------------------------------
軟件架構(gòu)圖的目的是將設(shè)計表達出來,而一套設(shè)計包含多個維度,一個圖基本上表達不完,那就需要多個圖,需要哪些圖?
畫架構(gòu)圖目前有幾種選擇:
1、遵循一些標準體系,這些標準要求應(yīng)該有哪些東西,我們就畫哪些東西,這里列兩個標準:
TOGAF: 企業(yè)架構(gòu)領(lǐng)域的一個標準框架,定義了四種圖,從不同維度來表現(xiàn)一套架構(gòu)設(shè)計,包括業(yè)務(wù)架構(gòu)、技術(shù)架構(gòu)、數(shù)據(jù)架構(gòu)、應(yīng)用架構(gòu),以下引用摘自WIKI
開放組體系結(jié)構(gòu)框架(英語:The Open Group Architecture Framework,縮寫:TOGAF)是一個企業(yè)架構(gòu)框架,它提供了一種設(shè)計,規(guī)劃,實施和管理企業(yè)信息技術(shù)架構(gòu)的方法[2]。TOGAF是一種高層設(shè)計方法。 它通常被建模為四個級別:業(yè)務(wù),應(yīng)用程序,數(shù)據(jù),和技術(shù)。 它在很大程度上依賴于模塊化,標準化以及已有的,經(jīng)過驗證的技術(shù)和產(chǎn)品。
RUP:? 是由Rational Software公司開發(fā)的一套搞軟件工程方法,其中有一塊做軟件架構(gòu)設(shè)計的方法使用的是一篇論文中的內(nèi)容——4+1視圖,看了一圈,比較抽象,我也不太理解,就不說了,具體可以自行查詢
我個人更傾向于TOGAF的四種圖,因為容易理解:
軟件架構(gòu)的定義基本上就是說有哪些組件,他們之間的關(guān)系。但是組件這個定義比較泛,在不同的維度組件上表現(xiàn)為不同的東西,TOGAF的四種圖就是從四個維度對軟件架構(gòu)定義的套用:
從業(yè)務(wù)維度上來說,至少要描述清楚有哪些系統(tǒng),有什么功能,他們之間的關(guān)系是怎么樣的等等
從技術(shù)整體維度上來說,由哪些 中間件/子系統(tǒng)/技術(shù)組件 組成,他們之間的關(guān)系是怎么樣的等等
從單個應(yīng)用程序維度上來說,里用到了什么開發(fā)技術(shù),做了什么分層,它又會把數(shù)據(jù)存到哪等等
從數(shù)據(jù)維度上來說,有哪些數(shù)據(jù),存在哪,如何存,他們之間如何轉(zhuǎn)化、流轉(zhuǎn)的等等
2、自己畫,能說清意思就行
說實在的,我們畫圖的目的就是表達清楚自己設(shè)計的內(nèi)容,對老板,對產(chǎn)品、對研發(fā)、對運維,只要能達到目的也沒必要非得糾結(jié)這些目前還沒達成統(tǒng)一的標準。自己畫就行
最后,畫圖的時候不要想著把所有細節(jié)都能弄進去。對于一個龐大的系統(tǒng),不要妄想幾張圖就說清所有的事情;也不要畫幾張圖就撒手不管做起ppt架構(gòu)師了,架構(gòu)圖固然重要(錯誤的設(shè)計會導(dǎo)致項目組很難受,甚至導(dǎo)致項目失敗,試錯成本相當高),引導(dǎo)團隊進行架構(gòu)的落地過程也相當重要,這是對你架構(gòu)設(shè)計質(zhì)量以及你個人技術(shù)能力的檢驗。
3、C4模型
C4模型是一種更為容易理解的模型,學習成本低,表達效果好,直接上鏈接
用于軟件架構(gòu)的C4模型_架構(gòu)_Simon Brown_InfoQ精選文章文章來源:http://www.zghlxwxcb.cn/news/detail-626750.html
https://www.infoq.com/articles/C4-architecture-model/文章來源地址http://www.zghlxwxcb.cn/news/detail-626750.html
到了這里,關(guān)于什么是架構(gòu) 架構(gòu)圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!