《架構漫談》閱讀筆記

2022-05-08 16:45:16 字數 1610 閱讀 6122

軟體架構師如何工作?

不同於軟體工程中只需要編碼的「低階」碼農,一名合格的軟體架構師首先要對架構有深刻的理解。那麼什麼是架構?從建築的角度解釋,架構是計畫、設計和建造建築物、物理結構的過程和生產活動。從這個定義上看,架構像乙個過程,但又不明確。為了弄清這個問題,我們首先要了解為什麼會產生架構?在最早期,人類之間不會溝通,過著自給自足的自閉式生活。但是作為乙個高階動物,繁衍後代的本能讓男性和女性開始群居,這個時候就出現了分工。每個人擅長的能力不同,有些人種田厲害,有些人製作工具厲害,有些人狩獵厲害等,當每個人都得帶了合適的分工,這個群體就像是乙個有著完整骨架的人,不再一盤散沙,不再各自為戰。所以架構就是:

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

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

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

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

軟體架構師是乙個嚴格的職業,需要對概念的絕對理解和掌握。《同福客棧》裡給我印象最深的人物不是那些每集都出現的主角,而是乙個倒霉的小反派「姬無命」,因為他就是對概念不夠理解,才會被呂秀才抓到破綻強加錯誤的概念,最後死在了自己的手裡。其實大部分人對於每天都習以為常的概念,都自以為明白了,但實際上都是下意識的,並不是主動的認識。為什麼軟體架構師一定要認識概念呢?根據前面對架構的定義,要做好架構所首先必須具備的能力,就是能夠正確的認識

概念,能夠發現概念背後所代表的問題,進而才能夠認識目標領域所需要解決的問題,這樣

才能夠為做好架構打好基礎。 

認識概念只是乙個基礎,發現問題才是軟體架構的關鍵。大部分的概念基本都有乙個很大的問題,就是缺乏主語。所以就需要軟體構架師找出問題的主題,主題找到了,邊界進而也就明確了,後續的一系列解決方案也都水到渠成。架構師要解決的,基本都是別人的問題,不是自己的問題。任何找上架構師的問題,絕對都不是真正的問題。因為如果是真正的問題的話,提問題過來的人肯定都能夠自己解決了,不需要找架構師。架構師都要有這個自覺:發現問題永遠都比解決問題來的更加重要。

在識別出問題後,大部分問題都會迎刃而解,但還是會有一些問題需要做出相應的調整,也就是架構的切分。切分是乙個很生動的詞彙:切分團體中每個人應得的「蛋糕」,也就是合理分配每個人的利益。利益是乙個人生存的根本,所有維護利益是每個人的本能,「人不為己天誅地滅」正是由此而來。有捨才有所得,在這個模式下,每個人都必須捨棄自己一部分的利益,才能達到團體的共贏,而那些不願意和別人進行利益交換,不想依賴別人的人就會受到孤立,生活自然也就越過越差。那麼如何切分呢?切分一定要掌握如下幾個原則:

1. 必須在連續時間內發生的乙個活動,不能切分。

2. 切分出來的部分的負責人,對這個部分的權利和義務必須是對等的。

3. 切分出來的部分,不應該超出乙個自然人的負載。

4. 切分是內部活動,內部無任怎麼切,對整個系統的外部應該是透明的。 

在我看來,架構的實質其實就是利益的分配,架構師就是要去平衡別人的利益,甚至會調整別人的利益的。軟體工程是乙個博大精深的學科,我不能只滿足於做乙個會程式設計的碼農,現在的社會需要的是軟體構架師這種複合型程式設計人才,不侷限於解決問題,而是發現問題、平衡問題的兩端。這就需要從今天開始做乙個有心人,盲目的程式設計只會侷限自己的眼光,提高自己的格局從善於發現開始。

《架構漫談》閱讀筆記

在每個人都必須自己完成所有生活必須品的生產的時候,是沒有架構的 當然在個人來講,同一時刻只能做有限的事情,在時間上還是可能會產生架構的 一旦產生的分工,就把所有的事情,切分成由不同角色的人來完成,最後再通過交易,使得每個個體都擁有生活必須品,而不需要每個個體做所有的事情,只需要每個個體做好自己擅長的...

《架構漫談》閱讀筆記

架構漫談是由資深架構師王概凱執筆的系列專欄,通過對其閱讀,我從中逐步認識到了什麼是架構,怎樣做好架構,軟體架構如何落地等內容。一 什麼是架構 在軟體行業,對於什麼是架構一直有很多的爭論。事實上,架構在軟體發明時的n多年以前,就已經存在了,這個詞最早出現在建築上。架構產生的五個動力可以概括為 由個人執...

架構漫談閱讀筆記

架構漫談 一直以來,在軟體行業,對於什麼是架構,都有很多的爭論,每個人都有自己的理解。甚至於很多架構師一說架構,就開始談論什麼應用架構 硬體架構 資料架構等等也有人曾經也到處尋找過架構的定義,請教過很多人,結果發現,沒有大家都認可的定義。一想到建築,就能想到一塊空間,有牆,有門,有窗。用牆圍住的一塊...