架構漫談——讀後感

根據架構漫談博客,咱們首先知道如下概念:架構

(一)什麼是架構人工智能

  1. 根據要解決的問題,對目標系統的邊界進行界定。
  2. 並對目標系統按某個原則的進行切分。切分的原則,要便於不一樣的角色,對切分出來的部分,並行或串行開展工做,通常並行才能減小時間。
  3. 並對這些切分出來的部分,設立溝通機制。對象

  4. 根據 3,使得這些部分之間可以進行有機的聯繫,合併組裝成爲一個總體,完成目標系統的全部工做。get

(二)如何識別問題博客

找出問題的主體,是作架構的首要問題。咱們要解決的問題,必定都是人的問題。更進一步,架構師要解決的,基本都是別人的問題,不是本身的問題。再進一步,咱們必定要明白,任何找上架構師的問題,絕對都不是真正的問題。爲何呢? 由於若是是真正的問題的話,提問題過來的人確定都可以本身解決了,不須要找架構師。架構師都要有這個自覺:發現問題永遠都比解決問題來的更加劇要。class

通常來講,從問題暴露的點,一點點去溯源查找,必定會找出來誰的問題,以及是什麼問題。最壞狀況就是當咱們時間或者能力有限,實在是沒法定位出是誰的問題的時候,好比系統出故障,也就意味着咱們沒法根本解決問題。這時最好的辦法就是去下降問題發生所帶來的成本,儘可能去隔離問題影響的範圍。給我留出時間和空間去識別真正的問題。效率

(三)如何作好架構切分擴展

當人們認識到要主動的去切分一個系統的時候,毫無疑問,咱們不能忘掉利益這個原動力。全部的切分決策都不可以違背這一點,這是大方向。結合前一篇「識別問題」,一旦肯定了問題的主體,那麼系統的利益相關人(用現代管理學語言叫:stockholder)就肯定了下來。所發現的問題,會有幾種狀況:軟件

  1. 某個或者某些利益相關人負載過重。互聯網

  • 時間上的負載過重。

  • 空間上的負載過重,本質上仍是時間上的負載過重。

  2.某個或者某些利益相關人的權利和義務不對等。

狀況1是切分的緣由,狀況2是切分不合理而致使的新的問題,最終仍是要回到狀況1。對於狀況1,本質上都是時間上的負載。由於每一個人的時間是有限的,怎麼在有限的時間內作出更多的事情?那麼只有把時間上連續的動做,切分紅時間上能夠並行的動做,在空間上橫向擴展。因此切分就要有幾個原則:

  1. 必須在連續時間內發生的一個活動,不能切分。好比孕婦懷孕,必需要10月懷胎,不可以切成10我的一個月完成。

  2. 切分出來的部分的負責人,對這個部分的權利和義務必須是對等的。比方說媽媽10月懷胎,媽媽有權利處置小孩的出生和撫養,一樣也對小孩的出生和撫養負責。爲何必須是這樣呢? 由於若是權利和義務是不對等的話,會傷害每一個個體的利益,分出來執行的效率會比沒有分出來還要低,實際上也損害了總體的利益,這違背了提高總體利益的初衷。

  3. 切分出來的部分,不該該超出一個天然人的負載。固然對於每一個人的能力不一樣,負載能力也不同,須要不斷的根據實際狀況調整,這實際上就是運營。

  4. 切分是內部活動,內部無任怎麼切,對整個系統的外部應該是透明的。若是由於切分致使整個系統解決的問題發生了變化,那麼這個變化不屬於架構的活動。固然不少時候當咱們把問題分析的比較清楚的時候,整個系統的邊界會進一步的完善,這就會造成螺旋式的進化。但這不屬於架構所應該解決的問題。進化的發生,也會致使新的架構的切分。

原則2是確保咱們不能違反人性,由於維護本身的利益,是每一個人的本性。只有權利和義務對等才能作到這一點。從原則2的也能夠推理,全部的架構分拆,都應該是造成樹狀的結果,不該該變成有向圖,更不該該是無向圖。不少人一談架構,必談分層,可是基本上都沒意識到,是由於把一個總體分拆爲了一棵樹,由於有了樹,纔有層。

(四)什麼是軟件

咱們是把咱們平常生活中所作的事情,包括咱們本身本人都一塊兒虛擬化到了計算機中。而人則演化成了,經過計算機的輸入輸出設備,控制計算機中的本身,來完成平常的工做,以及與其餘人的溝通。也就是說,軟件一直以來的動力,始終都是來模擬人和這個社會的。好比模擬大氣運動(天氣預報),模擬人類社會(互聯網社交),模擬交易,包括如今正在流行的VR,人工智能等等。模擬的對象愈來愈高級,難度愈來愈大。

無論如何發展,模擬人的全部行爲都是一個大的趨勢。也就是說,軟件的主要目的,仍是把人類的生活模擬化,提供更低成本,高效率的新的生活。從這個角度來看,軟件主要依賴的仍是人類的生活知識。軟件更多的是扮演一個cost center,這也是爲何會出現不少的軟件代工。

(五)什麼是架構師

當咱們所作的工做是處於社會的分工的一環,須要幫助別人解決問題,而且按時解決別人的問題成爲咱們本身的問題的時候,咱們就有了時間壓力,潛意識裏會天然而然的有一種對時間的恐懼。這個恐懼在潛意識裏面會千方百計推進咱們採用各類手段,以便及時的完成工做,換取報酬。甚至會加班加點,不擇手段。
若是咱們還生活在這個恐懼下面,是不可能成爲架構師的。要成爲架構師,必需要超越這個恐懼纔可以看清楚,咱們要解決的是別人的問題,不是本身完成工做的問題。由於僅僅是完成了本身的工做,也並不必定就解決了別人的問題。若是別人的問題沒有解決——即便咱們認爲本身的工做完成了——咱們的工做實際也沒完成,由於咱們工做是否完成,是別人說了算的,不是咱們本身。

架構師是要去平衡別人的利益,甚至會調整別人的利益的。一旦架構師是全心全意的爲別人的利益服務,天然而然的架構師就擁有了強有力的影響力,確定會是一個leader。可是隻是民意上的leader是沒有用的,不能徹底發揮架構師的能量。
架構師必須是一個組織的領導人,有權利調動這個組織的架構,纔可以更好的發揮架構師的做用,更好的把利益的調整落到實處。因此不少公司設了不少架構師的職位,可是並不具有調動組織架構的權利,那麼這個架構師的職位必定是形同虛設。架構師只可以經過創建某些流程來行使架構師的權利,好比強制架構review,反而會形成不少內部沒必要要的衝突,最終都會致使這些流程流於形式,得不償失。相信不少人都已經經歷過這些,但彷佛不多有人回去探討這是爲何。

技術老是在人類解決對業務的要求不斷提升的狀況下產生,目的也是爲了獲取更大更好的利益。因此:

  1. 技術是爲了解決業務的問題而產生的,沒有了業務,技術就沒有了存在的前提。

  2. 有了更好的技術,效率更差的技術,就會慢慢的被淘汰,消失,一切都聽從人類的利益訴求——也就是業務。有人會問,不用鑽木取火了,可是弓弦加速轉動木棍還能夠用啊? 沒錯,由於弓弦轉動木棍這個技術,不是來生火的,是用來加速木棍轉動的,所解決的問題不同。可是兩種不一樣的技術,合理結合起來,會更好更有效率的解決業務問題。

  因此技術與技術之間,有兩種關係:

  1. 在解決同一個業務問題的前提下,更高效,更低成本的技術,會淘汰低效,高成本的技術。這是人類利益訴求所決定的。

  2. 通常剛開始解決根本問題的技術(鑽木取火)的效率是比較低的,只是把不可能變成了可能(從這一點上來講,技術纔是業務的enabler)。而後就會有提升效率的需求出現,要求改進這個技術。這個技術的低效率部分就會被其餘人(或者技術發明人本身)加以改進,這部分就會造成新的技術。

相關文章
相關標籤/搜索