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