要學好軟體架構,首先要解決的問題就是什麼是架構。一直以來,在軟體行業,對於架構的定義都有爭議,很多人都在討論架構,但是很多人都不知道到底什麼是架構。很多大佬都對這個架構有爭議了,像我這種還沒出師的菜菜鳥就更不用說了,更是對軟體架構沒有什麼理解。
在讀過王概凱老師的《架構漫談》之後才有所了解,文章中寫到:把乙個整體切分成不同的部分,由不同角色來完成這些分工,並通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為乙個整體,並完成這個整體所需要的所有活動,這就是架構。
根據我的理解,架構就是把乙個大的複雜的問題,根據乙個原則把它切分開,便於不同的角色來完成它,不同的角色不同的分工,同時進行工作,就能大大減少工作時間,提高工作效率,每個角色各司其職完成自己的任務,最後再將這些部分整合起來,完成全部工作。簡單來說,就是分解和合併。架構使得每個角色能發揮出各自的長處,節省了時間的投入,提高了工作效率和質量。
第二部分主要談到了關於概念和抽象的問題。正確的認識概念是做好架構首先必須具備的能力,而抽象就是把不同的概念的相似的部分合併在一起,形成乙個新的概念。有效的認識概念,明白概念背後的含義,以及利用對概念的理解,快速的進行學習,有利於幫助我們在架構階段,快速的識別和定位問題,找到問題的所在,這是架構的起始。
在看到第三部分之前,我以為做架構最重要的工作是切分的部分,讀完之後才發現自己的理解還是有錯。乙個架構師的水平高低,其實是看他識別問題的能力。找到事情的真正問題所在才能真正的解決問題,找到問題才能確定解決方案,問題一旦不明確,解決方案必然不能達到使用者滿意,很多軟體開發過程中與使用者之間的問題可能就出在這個方面吧。
雖然找問題這個事情聽起來很簡單,好像人人都能行,其實不然,要找到事情真正的問題是不容易的,我們經常在這個過程中犯錯,導致每個人都做了很多任務作卻無法解決問題。所以要正確的認識問題是有方法的,要找到是誰的問題,到底是什麼問題。找到問題的主體對於確定系統的邊界很重要,主體一旦找錯,系統邊界也會跟著出錯,後續的工作便一錯再錯。找到問題的主體是重點,接下來就是找到具體的問題是什麼,然後解決問題。至此,才能開始切分工作。
架構漫談讀後感
應老師的推薦閱讀了由資深架構師王概凱 kevin 執筆的系列專欄 架構漫談 9篇文章遞進地講述了 討論什麼是架構 怎樣做好架構 軟體架構如何落地 如何寫好程式等問題,文章生動形象多次舉通俗的例子讓本來生澀的知識變得更加容易理解,感觸頗多。對這系列文章印象的較深的一點是 一直在挖掘一些本質的東西,對一...
架構漫談讀後感
花了一周的時間利用課餘的閒散時間,總算看完了王概凱的架構漫談,這九篇部落格從相對全面的角度對架構進行了概述。自己也對架構有了更深一層的認識。感覺作者在部落格裡提到的對架構的理解對我們初學者來講幫助其實很大。架構其實就是根據要解決的問題,對目標系統的邊界進行界定,然後對目標系統按某個原則進行切分,接著...
架構漫談讀後感
這學期新開設了軟體體系架構這門課,學這門課之前架構漫談的九篇部落格進行了閱讀,對這門課以及架構設計進行了初步的認識與了解。通過對這幾篇部落格的閱讀,首先需要明白什麼是架構,在最早期,每個人有自己的生活方式,人與人之間相互獨立,不相往來,隨著慢慢的發展,男女共同生活,也就出現了各自的分工,有的人做這個...