架构漫谈读后感之软件架构师如何工作
這學期開始學習軟件架構,通過閱讀王概凱架構漫談九篇博客,對軟件架構有了進一步的了解。感覺學習了架構之后,能對自己的學習和實踐有更大的幫助。架構漫談主要從什么是架構、認識概念是理解架構的基礎、如何做好架構之識別問題、如何做好架構之架構切分、什么是軟件、軟件架構到底是要解決什么問題、不要空設架構師這個職位,給他實權、從架構的角度看如何寫好代碼、理清技術、業(yè)務和架構的關系這九個方面來介紹軟件架構。
首先要了解到底什么是架構。在剛開始是沒有架構的,在社會發(fā)展的過程中就逐漸形成了社會的架構。把一個整體切分成不同的部分,由不同角色來完成這些分工,并通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為一個整體,并完成這個整體所需要的所有活動,這就是架構。總的來說架構就是:根據(jù)要解決的問題,對目標系統(tǒng)的邊界進行界定。并對目標系統(tǒng)按某個原則的進行切分。切分的原則,要便于不同的角色,對切分出來的部分,并行或串行開展工作,一般并行才能減少時間。并對這些切分出來的部分,設立溝通機制。根據(jù),使得這些部分之間能夠進行有機的聯(lián)系,合并組裝成為一個整體,完成目標系統(tǒng)的所有工作。
只有熟悉了架構的概念才能更好的理解架構。每個概念實際上所解決的,還是人遇到的某個特定的問題,我們把解決問題的解決方案,給定了一個名字,這個名字就是對應的某個特定的概念。抽象這個概念是很重要的,在做架構師的群體中,不談抽象好像就不是一個合格的架構師。根據(jù)架構的定義,要做好架構所首先必須具備的能力,就是能夠正確的認識概念,能夠發(fā)現(xiàn)概念背后所代表的問題,進而才能夠認識目標領域所需要解決的問題,這樣才能夠為做好架構打好基礎。在做架構的時候,很多時候都是在一個新的領域解決問題,必須要快速進入并掌握這個領域,然后才能夠正確的解決問題。
作為軟件工程師或者架構師,我們大部分時候是要去解決別人的問題。架構師在解決問題時候,找出問題的主體,是做架構的首要問題。更進一步,架構師要解決的,基本都是別人的問題,不是自己的問題。架構師都要有這個自覺:發(fā)現(xiàn)問題永遠都比解決問題來的更加重要。一旦確定了主體,剩下的就是去搞明白主體有哪些問題。這個就比較直接了,常用的方式就是直接面對主體進行訪談,深入到主體的工作生活當中,體驗并感受這些問題,甚至通過數(shù)據(jù)的反饋來定位問題。從問題暴露的點,一點點去溯源查找,一定會找出來誰的問題,以及是什么問題。總的來說要正確的認識問題,需要問兩個問題:這是誰的問題?有什么問題?
在識別出是誰的問題之后,需要做調整,那么就必須要有所動作,做相應的調整。這個調整就是架構的切分。切分就是利益的調整。所有的切分決策都不能夠違背這一點,這是大方向。切分要掌握必要的一些原則:確保我們不能違反人性,因為維護自己的利益,是每個人的本性。只有權利和義務對等才能做到這一點。所有的架構分拆,都應該是形成樹狀的結果,不應該變成有向圖,更不應該是無向圖實際上切分的過程就是建模的過程,每次對大問題的切分都會生成很多小問題,每個小問題就形成了不同的概念。軟件架構師了解清楚架構之后也要認識什么是軟件。軟件其實就是在計算機上以模擬人為目標,在計算機硬件上編寫出的,用來控制硬件行為的程序。有了軟件之后,實際上,我們是把我們日常生活中所做的事情,包括我們自己本人都一起虛擬化到了計算機中。而人則演化成了,通過計算機的輸入輸出設備,控制計算機中的自己,來完成日常的工作,以及與其他人的溝通。成本是我們使用軟件的主要動力,可以減少大量的人員培訓,減少雇員的數(shù)目。不管如何發(fā)展,模擬人的所有行為都是一個大的趨勢。軟件實際上是對現(xiàn)實生活的模擬,虛擬化。也就是說,軟件的主要目的,還是把人類的生活模擬化,提供更低成本,高效率的新的生活。從這個角度來看,軟件主要依賴的還是人類的生活知識。軟件工程師的職責在這個浪潮中,不堪重負,自然而然就分拆為不同的角色,形成了一個獨特的架構體系。
軟件架構實際上包括了:代碼架構,以及承載代碼運行的硬件部署架構。從架構的角度寫好代碼,邏輯的出現(xiàn)要分對地方。技術總是在人類解決對業(yè)務的要求不斷提高的情況下產生,目的也是為了獲取更大更好的利益。技術是為了解決業(yè)務的問題而產生的,沒有了業(yè)務,技術就沒有了存在的前提。也就是說,一般是先有技術,才會有架構。
軟件架構師在工作中是要去平衡別人的利益,甚至會調整別人的利益的。一旦架構師是全心全意的為別人的利益服務,自然而然的架構師就擁有了強有力的影響力,肯定會是一個leader。架構師必須是一個組織的領導人,有權利調動這個組織的架構,才能夠更好的發(fā)揮架構師的作用,更好的把利益的調整落到實處。架構師的義務就是發(fā)現(xiàn)問題并且解決問題。架構師還必須要明白,所給出的解決方案架構的分拆、合并方案,只有讓問題的主體的權責對等,才能夠真正的解決別人的問題。一般明白了問題的主體,以及主體的利益所在,做到這一點也沒有問題。架構師對于技術和語言也要熟悉。因為技術和語言,都是用來識別和解決所服務的主體的權責,保護并提升所服務的主體的權利的。最后準確識別采用什么技術的能力,也是架構師所要具備的能力之一。考慮的主要因素也是長期的成本和收益。通過這九篇博客,對于架構師有了進一步的了解。我總結了架構師在工作中應該注意的問題。和架構師在工作中應該如何解決問題。
?
轉載于:https://www.cnblogs.com/kangy123/p/8524985.html
總結
以上是生活随笔為你收集整理的架构漫谈读后感之软件架构师如何工作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js数组中foEach和map的用法详解
- 下一篇: VMware vSphere学习整理