中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

什么是架構(gòu)?

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

架構(gòu)漫談是由資深架構(gòu)師王概凱Kevin執(zhí)筆的系列專欄,專欄將會(huì)以Kevin的架構(gòu)經(jīng)驗(yàn)為基礎(chǔ),逐步討論什么是架構(gòu)、怎樣做好架構(gòu)、軟件架構(gòu)如何落地、如何寫好程序等問題。專欄的目的是希望能拋出一些觀點(diǎn),并引發(fā)大家思考,如果你有感觸或者新的感悟,歡迎聯(lián)系專欄負(fù)責(zé)人Gary(微信greenguolei)深聊。

  本文是漫談架構(gòu)專欄的第一篇,作者將會(huì)通過類比的方式來介紹什么是架構(gòu)以及為什么會(huì)產(chǎn)生架構(gòu)。

  緣起

  一直以來,在軟件行業(yè),對(duì)于什么是架構(gòu),都有很多的爭(zhēng)論,每個(gè)人都有自己的理解。甚至于很多架構(gòu)師一說架構(gòu),就開始談?wù)撌裁磻?yīng)用架構(gòu)、硬件架構(gòu)、數(shù)據(jù)架構(gòu)等等。我曾經(jīng)也到處尋找過架構(gòu)的定義,請(qǐng)教過很多人,結(jié)果發(fā)現(xiàn),沒有大家都認(rèn)可的定義。套用一句關(guān)于big data流行的笑話,放在架構(gòu)上也適用:

Architecture is like teenage sex,everybody talks about it,nobody really knows what is it。

  事實(shí)上,架構(gòu)在軟件發(fā)明時(shí)的N多年以前,就已經(jīng)存在了,這個(gè)詞最早是跟隨著建筑出現(xiàn)的。所以,我覺得有必要從源頭開始,把架構(gòu)這個(gè)概念先討論清楚,只有這樣,軟件行業(yè)架構(gòu)的討論才有意義。

  什么是架構(gòu)?

  架構(gòu)的英文是Architecture,在Wikipedia上,架構(gòu)是這樣定義的:

Architecture (Latin architectura, from the Greek ?ρχιτ?κτων arkhitekton"architect", from ?ρχι- "chief" and τ?κτων "builder") is both the process and the product of planning, designing, and constructing buildings and other physical structures。

  從這個(gè)定義上看,架構(gòu)好像是一個(gè)過程,也不是很清晰。為了講清楚這個(gè)問題,我們先來看看為什么會(huì)產(chǎn)生架構(gòu)。

  為什么會(huì)產(chǎn)生架構(gòu)?

  想象一下,在最早期,每個(gè)人都完全獨(dú)立生活,衣、食、住、行等等全部都自己搞定,整個(gè)人類都是獨(dú)立的個(gè)體,不相往來。為了解決人類的延續(xù)的問題,自然而然就有男女群居出現(xiàn),這個(gè)時(shí)候就出現(xiàn)了分工了,男性和女性所做的事情就會(huì)有一定的分工,可是人每天生活的基本需求沒有發(fā)生變化,還是衣食住行等生活必須品。

  但是一旦多人分工配合作為生存的整體,力量就顯得強(qiáng)大多了,所以也自然的形成了族群:有些人種田厲害,有些人制作工具厲害,有些地方適合產(chǎn)出糧食,有些地方適合產(chǎn)出棉花等,就自然形成了人的分群,地域的分群。當(dāng)分工發(fā)生后,實(shí)際上每個(gè)人的生產(chǎn)力都得到了提高,因?yàn)樽龅亩际敲總(gè)人擅長(zhǎng)的事情。

  整個(gè)人群的生產(chǎn)力和抵抗環(huán)境的能力都得到了增強(qiáng)。為什么呢?因?yàn)槊總(gè)人的能力和時(shí)間都是有限的,并且因?yàn)槿说慕Y(jié)構(gòu)的限制,人同時(shí)只能專心做好一件事情,這樣不得已就導(dǎo)致了分工的產(chǎn)生。既然分工發(fā)生了,原來由一個(gè)人干生存所必需的所有的事情,就變成了很多不同分工的角色合作完成這些事情,這些人必須要通過某些機(jī)制合在一起,讓每個(gè)人完成生存所必需的事情,這實(shí)際上也導(dǎo)致了交易的發(fā)生(交易這部分就不在這里展開了,有機(jī)會(huì)再討論)。

  在每個(gè)人都必須自己完成所有生活必須品的生產(chǎn)的時(shí)候,是沒有架構(gòu)的(當(dāng)然在個(gè)人來講,同一時(shí)刻只能做有限的事情,在時(shí)間上還是可能會(huì)產(chǎn)生架構(gòu)的)。一旦產(chǎn)生的分工,就把所有的事情,切分成由不同角色的人來完成,最后再通過交易,使得每個(gè)個(gè)體都擁有生活必須品,而不需要每個(gè)個(gè)體做所有的事情,只需要每個(gè)個(gè)體做好自己擅長(zhǎng)的事情,并具備一定的交易能力即可。

  這實(shí)際上就形成了社會(huì)的架構(gòu)。那么怎么定義架構(gòu)呢?以上面這個(gè)例子為例,把一個(gè)整體(完成人類生存的所有工作)切分成不同的部分(分工),由不同角色來完成這些分工,并通過建立不同部分相互溝通的機(jī)制,使得這些部分能夠有機(jī)的結(jié)合為一個(gè)整體,并完成這個(gè)整體所需要的所有活動(dòng),這就是架構(gòu)。由以上的例子,也可以歸納出架構(gòu)產(chǎn)生的動(dòng)力:

  1. 必須由人執(zhí)行的工作(不需要人介入,就意味著不需要改造,也就不需要架構(gòu)了)

  2. 每個(gè)人的能力有限(每個(gè)人都有自己的強(qiáng)項(xiàng),個(gè)人的產(chǎn)出受限于最短板,并且由于人的結(jié)構(gòu)限制,同時(shí)只能專注于做好一件事情,比如雖然有兩只眼睛,但是只能同時(shí)專注于一件事物,有兩只手,無法同時(shí)做不同的事情。ps. 雖然有少部分人可以左手畫圓右手畫框,但是不是普遍現(xiàn)象)

  3. 每個(gè)人的時(shí)間有限(為了減少時(shí)間的投入,必然會(huì)導(dǎo)致把工作分解出去,給擅長(zhǎng)于這些工作的角色來完成,見2,從而縮短時(shí)間)

  4. 人對(duì)目標(biāo)系統(tǒng)有更高的要求(如果滿足于現(xiàn)狀,也就不需要進(jìn)行架構(gòu)了)

  5. 目標(biāo)系統(tǒng)的復(fù)雜性使得單個(gè)人完成這個(gè)系統(tǒng),滿足條件2,3(如果個(gè)人就可以完成系統(tǒng)的提高,也不需要?jiǎng)e的人參與,也就不需要架構(gòu)的涉及,只是工匠,并且一般這個(gè)工作對(duì)時(shí)間的要求也不迫切。當(dāng)足夠熟練之后,也會(huì)有一定的架構(gòu)思考,但考慮更多的是如何提高質(zhì)量,提高個(gè)人的時(shí)間效率)

  有人可能會(huì)挑戰(zhàn)說,如果一個(gè)人對(duì)目標(biāo)系統(tǒng)進(jìn)行分解,比如某人建一棟房子,自己采購(gòu)材料,自己搭建,難道也不算架構(gòu)嘛?如果對(duì)于時(shí)間不敏感的話,是會(huì)出現(xiàn)這個(gè)情況的,但是在這種情況下,并不必然導(dǎo)致架構(gòu)的發(fā)生。如果有足夠的自覺,以及足夠的熟練的話,也會(huì)產(chǎn)生架構(gòu)的思考,因?yàn)檫@樣對(duì)于提高生產(chǎn)力是有幫助的,可以縮短建造的時(shí)間,并會(huì)提高房子的質(zhì)量。事實(shí)上建筑的架構(gòu)就是在長(zhǎng)期進(jìn)行這些活動(dòng)后,積累下來的實(shí)踐。

  當(dāng)這5個(gè)條件同時(shí)成立,一定會(huì)產(chǎn)生架構(gòu)。從這個(gè)層面上來說,架構(gòu)是人類發(fā)展過程中,由懵懵懂懂的,被動(dòng)的去認(rèn)識(shí)這個(gè)世界,變成主動(dòng)的去認(rèn)識(shí),并以更高的效率去改造這個(gè)世界的方法。以下我們?cè)倌媒ㄖ䜩砼e例加強(qiáng)一下理解。

  最開始人類是住在山洞里,住在樹上的,主要是為了躲避其他猛獸的攻擊,以及減少自然環(huán)境的變化,對(duì)人類生存的挑戰(zhàn)。為了完成這些目標(biāo),人類開始學(xué)會(huì)在平地上用樹木和樹葉來建立隔離空間的設(shè)施,這就是建筑的開始。但是完全隔離也有很多壞處,慢慢就產(chǎn)生了門窗等設(shè)施。

  建筑的本質(zhì)就是從自然環(huán)境中,劃出一塊獨(dú)占的空間,但是仍然能夠通過門窗等和自然環(huán)境保持溝通。這個(gè)時(shí)候架構(gòu)就已經(jīng)開始了。對(duì)地球上的空間進(jìn)行切分,并通過門窗,地基等,保持和地球以及空間的有機(jī)的溝通。當(dāng)人類開始學(xué)會(huì)用火之后,茅棚里面自然而然慢慢就會(huì)被切分為兩部分,一部分用來燒飯,一部分用來生活。當(dāng)人的排泄慢慢移入到室內(nèi)后,洗手間也就慢慢的出現(xiàn)了。這就是建筑內(nèi)部的空間切分。

  這個(gè)時(shí)候人們對(duì)建筑的需求也就慢慢的越來越多,空間的切分也會(huì)變成很多種,組合的方式也會(huì)有很多種,比如每個(gè)人住的房子,群居所產(chǎn)生的宗教性質(zhì)的房子,集體活動(dòng)的房子等等。這個(gè)時(shí)候人們就開始有意識(shí)的去設(shè)計(jì)房子,架構(gòu)師就慢慢的出現(xiàn)了。一切都是為了滿足人的越來越高的需求,提升質(zhì)量,減少時(shí)間,更有效率的切分空間,并且讓空間之間更加有機(jī)的進(jìn)行溝通。這就是建筑的架構(gòu)以及建筑的架構(gòu)的演變。

  總結(jié)一下,什么是架構(gòu),就是:

  1. 根據(jù)要解決的問題,對(duì)目標(biāo)系統(tǒng)的邊界進(jìn)行界定。
  2. 并對(duì)目標(biāo)系統(tǒng)按某個(gè)原則的進(jìn)行切分。切分的原則,要便于不同的角色,對(duì)切分出來的部分,并行或串行開展工作,一般并行才能減少時(shí)間。
  3. 并對(duì)這些切分出來的部分,設(shè)立溝通機(jī)制。
  4. 根據(jù)3,使得這些部分之間能夠進(jìn)行有機(jī)的聯(lián)系,合并組裝成為一個(gè)整體,完成目標(biāo)系統(tǒng)的所有工作。

  同樣這個(gè)思考可以展開到其他的行業(yè),比如企業(yè)的架構(gòu),國(guó)家的架構(gòu),組織架構(gòu),音樂架構(gòu),色彩架構(gòu),軟件架構(gòu)等等。套用三國(guó)演義的一句話,合久必分,分久必合。架構(gòu)實(shí)際上就是指人們根據(jù)自己對(duì)世界的認(rèn)識(shí),為解決某個(gè)問題,主動(dòng)地、有目的地去識(shí)別問題,并進(jìn)行分解、合并,解決這個(gè)問題的實(shí)踐活動(dòng)。架構(gòu)的產(chǎn)出物,自然就是對(duì)問題的分析,以及解決問題的方案:包括拆分的原則以及理由,溝通合并的原則以及理由,以及拆分,拆分出來的各個(gè)部分和合并所對(duì)應(yīng)的角色和所需要的核心能力等。

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:svn常用命令整理

下一篇:從架構(gòu)的角度看,如何寫好代碼?