1. 程式人生 > >《架構漫談》閱讀筆記

《架構漫談》閱讀筆記

需求 平衡樹 作用 概念 一點 世界 找到 上架 spa

  架構漫談是由資深架構師王概凱執筆的系列專欄,通過對其閱讀,我從中逐步認識到了什麽是架構,怎樣做好架構,軟件架構如何落地等內容。

  一、什麽是架構

  在軟件行業,對於什麽是架構一直有很多的爭論。事實上,架構在軟件發明時的N多年以前,就已經存在了,這個詞最早出現在建築上。架構產生的五個動力可以概括為:由個人執行的工作;每個人的能力有限;每個人時間有限;人對目標系統有更高的要求;目標系統的復雜性使得單個人完成這個系統。當這五個條件同時成立,一定會產生架構。從這個角度上來說,架構是人類發展過程中,由懵懵懂懂的,被動的去認識這個世界,變成主動的去認識,並以跟高的效率去改造這個世界的方法。

  對於什麽是架構,作者為我總結為四點:1.根據解決的問題,對目標系統的邊界進行界定。2.並對目標系統按某個原則進行切分。切分的原則,要便於不同的角色,對切分出來的部分,並行或串行開展工作,一般共行才能減少時間,3.並對這些切分出來的部分,設立溝通機制。4.根據3,使得這些部分之間能夠進行有機的聯系,合並組裝成為一個整體,完成目標系統的所有工作。

  二、認識架構的基礎概念

  每個概念年實際上所解決的是人遇到的某個特定問題,我們把解決問題的解決方案,給定一個名字,這個名字就是對應的某個特定的概念。在討論桌子這個概念的過程中,很多人會提出抽象這個概念。抽象這個詞代表的含義,實際上是吧不同的概念的相似的部分合並在一起,形成一個新的概念。根據架構的定義,要做好架構所首先必須具備的能力,就是能夠正確的認識概念,能夠發現概念背後所代表的問題,進而才能夠認識目標領域所需要解決的問題,這樣能夠為做好架構打好基礎。 

  三、如何做好機構的識別問題

  找出問題的主題,是架構的首要問題。我們要解決的問題,一定是人的問題。架構師要解決的,基本上都是別人的問題,不是自己的問題,任何找上架構師的問題,絕對都不是真正的問題。

  我們需要識別:用戶究竟是二傳手,還是問題的真正主體。當然明白了問題的主體,我們才能真正的認識問題是什麽。因為問題的主體是問題的隱含邊界,邊界不確定下來,問題就是不確定的。一旦確定了主體,剩下的就是去搞明白主體有哪些問題。

  做好架構首先需要做的就是識別出需要解決的問題。一般來說,如果把真正的問題找到,那麽問題就已經解決了80%了。這個能力基本上就決定了架構師的水平。任何找上架構師的問題,絕對都不是真正的問題。需要從問題暴露的點,一點點去溯源查找,一定會找出來誰的問題,以及是什麽問題。 

要正確的認識問題,需要問兩個問題:

  1. 這是誰的問題?

  2. 有什麽問題?

能夠清晰的定義問題,是解決問題的第一步。

  四、如何做好架構的架構切分

  架構的切分的導火索是人、時間的負載太重。每個人的能力有限,或者單個人來做的話,時間太長。架構的切分實際就是對stakeholder的利益進行切分或合並,使得每個stakeholder的權責是對等的,每個stakeholder可以為自己的利益負責。

  架構切分的最終結果都會體現在組織架構上,只有這樣才能夠讓架構落地並推進。

  架構切分的結果一定是一個樹狀,這也是為什麽會產生分層。層數越多溝通越多,效率越低,分層要越少越好。盡可能變成一顆平衡樹,才能讓整個系統的效率最大化。

由此產出的一些設計算是軟件架構:

  1. 軟件因為流量增大而分拆成不同的運行單元,在不同的機器上部署所形成的架構,屬於軟件架構。

  2. 每個運行單元為了讓不同角色的人,比如前端,業務,數據存儲等能夠並行工作,所分成的代碼架構,也屬於軟件架構。

  五、自己的想法

  作者把架構歸結為分工的需要,但是只有一個人的項目的時候,也是需要架構的。架構使整個系統滿足業務需求的基礎上,簡單、可維護。總之,在以後的工作中,架構無論對個人還是團體都有著不可估量的作用。

《架構漫談》閱讀筆記