理清技術、業務和架構的關係架構
在不少人的概念裏面,架構和技術其實是等同的。學會了幾種技術,就認爲本身是架構師了,甚至是學習的技術越多,就以爲本身的水平越高。這樣其實是對本身很不負責任的。學習
要知道任何技術都是爲了解決某種問題而存在的,學會了技術,並不表明本身可以解決問題,這一點很是的重要。效率
什麼是技術技術
好比取火,最先人類只能靠打雷等天然現象產生火。取火其實就是一個業務目標,要解決的是人類本身的問題,這就是業務,實際就是人類的利益。這個時候人類沒有生火的技術,只能靠不斷的加木材,保持火不熄滅。後來人們發現了鑽木取火:只要用一個乾的木棍,在另外一個幹木表面快速的轉動,就能夠生火。這個辦法讓人類能夠自行創造火源,就產生了鑽木取火的技術。解決方案
也就是說:架構師
業務目標是爲了取火,鑽木取火這個技術的出現解決了這個問題。工作
鑽木取火的效率不高,影響了業務(取火)的效率,就有了進一步改進的動機,改進轉動木棍的方式,產生了弓弦轉動木棍的技術。ab
技術與架構,以及與業務之間的關係
技術老是在人類解決對業務的要求不斷提升的狀況下產生,目的也是爲了獲取更大更好的利益。因此:
技術是爲了解決業務的問題而產生的,沒有了業務,技術就沒有了存在的前提。
有了更好的技術,效率更差的技術,就會慢慢的被淘汰,消失,一切都聽從人類的利益訴求–也就是業務。有人會問,不用鑽木取火了,可是弓弦加速轉動木棍還能夠用啊? 沒錯,由於弓弦轉動木棍這個技術,不是來生火的,是用來加速木棍轉動的,所解決的問題不同。可是兩種不一樣的技術,合理結合起來,會更好更有效率的解決業務問題。
因此技術與技術之間,有兩種關係:
在解決同一個業務問題的前提下,更高效,更低成本的技術,會淘汰低效,高成本的技術。這是人類利益訴求所決定的。
通常剛開始解決根本問題的技術(鑽木取火)的效率是比較低的,只是把不可能變成了可能(從這一點上來講,技術纔是業務的enabler)。而後就會有提升效率的需求出現,要求改進這個技術。這個技術的低效率部分就會被其餘人(或者技術發明人本身)加以改進,這部分就會造成新的技術。
當關系2發生的時候,這個地方一定會造成一個切分,新技術會經過某種方式和原有的技術鏈接在一塊兒造成一個總體,讓這個新的技術能夠和原有技術共同工做,使得原有的技術能夠用更高的效率解決問題。由於要解決的主要問題(生火)並無發生改變,分拆所造成的是一個樹狀的結構。
按照前面的架構定義,這個時候其實已經產生了架構。也就是說,通常是先有技術,纔會有架構。這些其餘技術(弓弦拉動木棍),是從直接解決問題的初始主要技術中分拆出來造成的,並經過樹狀結構和主要技術(鑽木取火)組合在一塊兒。在解決主要問題(生火)以後,再開始逐漸的分拆爲更爲細粒度的技術(弓弦轉木棍)。
而這個細粒度的技術(弓弦轉動木棍)每每不會和業務的主要目標(生火)發生直接的關係。不一樣的技術,經過樹狀結構,組合在一塊兒,造成了一個完整的架構解決方案,共同完成業務的目標。這就是技術,業務和架構之間的關係。不少人把這個過程稱爲架構的進化,我更願意把這個過程稱爲技術的進步所致使的新的架構分拆,由於這個過程內在的動力,更多的是來自技術對解決業務問題的解決。