認識軟件體系架構


  什么是架構?在沒有上軟件體系結構之前,我一直不清楚架構的概念。通過學習軟件體系結構和閱讀架構漫談,我對架構有了初步的了解和認識。架構就是將一個整體的工作分成不同的部分,然后分配各給各個不同的角色去完成,並通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為一個整體,並完成這個整體所需要的所有活動,這就是架構。架構本身就是為了解決現實生活中的實際問題而存在的,脫離了實際,架構也就沒有了存在的意義。就好比說蓋房子一樣,建什么樣的房子,就需要搭建什么樣的房屋結構,總不能把建平房的那一套運用到高樓大廈吧?不同的房子有不同的架構,軟件設計也是一樣的道理。房子有房子的架構,音樂有音樂的架構,企業有企業的架構,同理,軟件也有它自己的架構。既然如此,我們應當如何理解架構呢?架構實際上就是指人們根據自己對世界的認識,為解決某個問題,主動地、有目的地去識別問題,並進行分解、合並,解決這個問題的實踐活動。

  要認識軟件架構,就必須要知道它能為我們做什么和它能帶給我們什么樣的好處。通過發現問題以及認識目標領域所需要解決的問題,這樣才能夠為做好架構打好基礎。發現問題的本質,並應用什么樣的架構,那么問題也就差不多迎刃而解了。要正確認識問題,就必須要清楚這個問題是從何而來,是由什么樣的原因造成的。很多時候問題的產生都是因為溝通的誤解,或者主觀上有很多不必要的利益訴求導致的。但是總還有一部分確實是有問題的,需要做調整,那么就必須要有所動作,做相應的調整。這個調整就是架構的切分。切分是利益的調整。架構切分的結果一定是一個樹狀,這也是為什么會產生分層。層數越多溝通越多,效率越低,分層要越少越好。盡可能變成一顆平衡樹,才能讓整個系統的效率最大化。

  既然軟件架構是為了解決問題而存在的,但是它到底要解決什么樣的問題呢?首先分析是誰的問題。客戶需要提升業務的效率,降低業務的成本,這也是軟件開發的出發點。業務相對簡單,用戶流量小,時間要求也不緊迫,這時不用討論架構的問題。當訪問的流量越來越大,涉及到軟件本身的業務體系,工作量不斷增多,工作內容不斷拆分,這時,軟件架構的意義就體現出來了。

  在實際的軟件開發過程中,大多數人認為所謂的架構是一種技術,在很多人的概念里面,架構和技術實際上是等同的。學會了幾種技術,就認為學會了某種架構了。然而,任何技術都是為了解決某種問題而存在的,學會了技術,並不代表自己能夠解決問題,這一點非常的重要。技術不等同於架構,學會了某種技術並不能解決實際問題。而懂得架構的人,會分析實際問題,通過采用某種架構,並運用響應的技術來解決問題。所以,架構師真正的能力是分析問題並采用某種架構和技術來解決實際問題。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



軟件體系架構的認識 關於軟件體系架構的認識 對軟件體系架構的認識 初識軟件體系架構 軟件體系架構 淺談軟件體系架構 軟件體系架構 軟件體系架構總結 軟件體系架構 軟件架構的認識
 
粤ICP备14056181号  © 2014-2020 ITdaan.com