讀《架構漫談》系列有感

2022-08-25 22:21:16 字數 1828 閱讀 7131

讀了這一系列博文,我對架構也有了大致的了解。在簡單的閱讀之後,我解決了幾個問題。 

第乙個問題,什麼是架構?

要學習架構,首先要知道架構。那麼,什麼是架構呢?引用《架構漫談(一)

》裡的話就是把乙個整體切割成不同的部分,由不同的角色來完成這些分工,並通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為乙個整體,並完成這個整體所需要的所有活動,這就是架構。架構的定義及步驟如下:

1.根據要解決的問題,對目標系統的邊界進行界定。

2.並對目標系統按某個原則的進行切分。切分的原則,要便於不同的角色,對切分出來的部分,並行或序列開展工作,一般並行才能減少時間。

3.並對這些切分出來的部分,設立溝通機制。

4.根據3

,使得這些部分之間能夠進行有機的聯絡,合併組裝成為乙個整體,完成目標系統的所有工作。

架構的學問就在於如何界定系統邊界,以及如何建立建立機制,並且建立怎樣的機制等這些細節之中。

第二個問題,做好架構的第一步是什麼?

做好架構首先需要做的就是識別出需要解決的問題。作為軟體工程師或者架構師,我們大部分時候是要去解決別人的問題。找出問題的主體是做架構的首要問題,我們要解決的問題,一定都是人的問題。更進一步,架構師要解決的,基本都是別人的問題,不是自己的問題。再進一步,我們一定要明白,任何找上架構師的問 題,絕對都不是真正的問題。為什麼呢? 因為如果是真正的問題的話,提問題過來的人肯定都能夠自己解決了,不需要找架構師。架構師都要有這個自覺:發現問題永遠都比解決問題來的更加重要。

當問題的主體離架構師越遠,就會讓找出問題主體的過程越加困難。當明白了問題的主體,我們才可能真正的認識問題是什麼。因為問題的主體是問題的隱含邊界,邊界不確定下來,問題就是不確定的。一旦確定了主體,剩下的就是 去搞明白主體有哪些問題。這個就比較直接了,常用的方式就是直接面對主體進行訪談,深入到主體的工作生活當中,體驗並感受這些問題,甚至通過資料的反饋來定位問題。

第三個問題,如何切分架構?

首先,肯定會有人問,為什麼要切分架構?當我們識別了問題的主體,就確定了系統的利益相關人。當某個或者某些利益相關人的權利和義務不對等,我們就需要切分架構。那麼,如何切分呢?因為每個人的時間都有限,我們的目的就是在最短的時間內完成最多的事情。

從某種意義上講,談架構就是談分層。實際上分層的過程就是建模的過程,每次對大問題的切分都會生成很多小問題,每個小問題就形成了不同的概念。這些不同的概念大部分時候人們自發的已經建好了,架構師更多的是要去理解這些概念,識別概念背後所代表的的人的利益。

架構切分的輸出實際上就是乙個系統的模型,對於乙個整體問題,有多少的相關方,每個相關方需要承擔哪些權利和義務,不同的相關方是如何結合起來完成系統的 整體任務的。有的時候是從上往下切(企業),有的時候是從下往上合併,有的時候兩者皆有之(人類社會的發展)。而切分的結果最終都會體現在組織架構上,因 為我們切分的實際上就是人的利益。

第四個問題,軟體架構要解決什麼問題?

話題終於討論到了計算機的問題。博文中提到,軟體實際上是對現實生活的模擬,虛擬化。有了軟體之後,實際上,我們是把我們日常生活中所做的事情,包括我們自己本人都一起虛擬化到了計算機中。而人則演化成了,通過計算機的輸入輸出裝置,控制 計算機中的自己,來完成日常的工作,以及與其他人的溝通。也就是說,軟體一直以來的動力,始終都是來模擬人和這個社會的。比如模擬大氣運動(天氣預報), 模擬人類社會(網際網路社交),模擬交易,包括現在正在流行的vr,人工智慧等等。模擬的物件越來越高階,難度越來越大。

如同前面描述的架構的定義,軟體架構的出現也是同樣的。一開始是懵懵懂懂的去寫軟體,後來慢慢的就有意識的去切分,演變成了不同的架構。這個背後的動力也 是一樣的,就是提公升參與的人的利益,降低成本。導火索也是軟體工程師的任務太重,我們需要把很多任務作拆分出來。拆分的原則也是一樣的,如何讓權責一致。同 樣,這個拆分也是需要組織架構的調整,來保證架構的落地。

讀架構漫談 有感

什麼是架構 緣起一直以來,在軟體行業,對於什麼是架構,都有很多的爭論,每個人都有自己的理解。甚至於很多架構師一說架構,就開始談論什麼應用架構 硬體架構 資料架構等等。我曾經也到處尋找過架構的定義,請教過很多人,結果發現,沒有大家都認可的定義。套用一句關於 big data 流行的笑話,放在架構上也適...

讀《架構漫談》有感

上上週,在王老師的 威逼利誘 下,歷時兩周,總算是讀完了這九篇關於架構的部落格。雖然其中很多內容我還不是很理解,但是還是學到了很多,對於軟體工程以及架構的概念也有了更深的理解。首先就說說什麼是架構,用 架構漫談 中的原話來說,架構,就是 1.根據要解決的問題,對目標系統的邊界進行界定。2.並對目標系...

讀《架構漫談一》有感

架構漫談 一 什麼是架構?1.我的目的 我看架構漫談的目的是通過架構幫助我解決如何看懂一本書,如何看懂乙個概念並非是通過它來解決如何設計軟體架構 企業架構 架構等 這些問題,但通過看這篇文章也讓我得到了除了我的目的之外的一些知識,進一步擴張了我的思維方式,讓我從更抽象更高的層次去考慮如何解決自己不僅...