一、架構(gòu)的定義
所謂一千個架構(gòu)師中有一千種“最好的架構(gòu)”模式。
“架構(gòu)”是我們這行業(yè)種一個很常見的詞,表明其必然也是經(jīng)歷了很長的歲月打磨所形成的一個詞。架構(gòu)的這個詞出現(xiàn)的意義是什么?為了解決什么問題?只有把這2個問題想明白了,才能設(shè)計出一個良好的項目架構(gòu)。
我認(rèn)為 架構(gòu)類似于畫房屋設(shè)計圖,在剛開始我們蓋一層樓的小房子的時候,拍拍腦門想一下,腦子里有個大概的樣子就開始動工了,想怎么蓋就怎么蓋,大部分情況下也都不會出現(xiàn)。但是當(dāng)你要蓋一個大樓,這時候拍拍腦門的方式雖然有可能還能管用,但是由于沒有經(jīng)過深思熟慮的多方考量,建造出來的必然是問題重重。另外建造大樓和蓋個一層樓的小屋所需的團(tuán)隊規(guī)??隙ㄊ遣煌?,每個人心中的標(biāo)準(zhǔn)不同,如果沒有一個統(tǒng)一的規(guī)范,最后的結(jié)果可想而知。所以架構(gòu)就是定規(guī)則做限制,是在權(quán)衡各方得與失之后的一個“最合理決策”,由它來指導(dǎo)團(tuán)隊中的每個人思想層面上的一致,使得最終的產(chǎn)品達(dá)到像由一個人做出來的一樣。另外還有控制復(fù)雜度、提高團(tuán)隊協(xié)作力、降低成本等等作用。
在軟件開發(fā)中,架構(gòu)的意義不單單是為了讓團(tuán)隊達(dá)成一致,因為我們工作的本質(zhì)是為了做出更好的支撐業(yè)務(wù)發(fā)展需要的軟件產(chǎn)品,所以架構(gòu)也是基于業(yè)務(wù)的架構(gòu)。我認(rèn)為一個好的架構(gòu)能夠提前預(yù)見業(yè)務(wù)發(fā)展1~2年為宜。這樣可以付出較為合理的代價換來真正達(dá)到技術(shù)引領(lǐng)業(yè)務(wù)成長的效果。我相信大部分在中小型公司呆過的人應(yīng)該都經(jīng)歷過被業(yè)務(wù)推著走的時代,每天焦頭爛額的這里卡了,這里掛了,這里報錯等等問題。當(dāng)我們遇到這些問題的時候是時候花成本來考量當(dāng)前的架構(gòu)是否存在問題?