軟件架構與軟件框架的區別


引言

很多剛學習軟件開發的童鞋,對於一些軟件術語或概念總搞不太清楚,比如軟件框架和軟件架構聽名字感覺似乎差不多,其他它們之間還是有很大差別的,一個是一種設計思想,一個是軟件半成品。

所以,還是有必要搞清楚二者之間的區別的差異哈。

軟件框架

軟件框架是面向某個領域的、可復用的半成品軟件,為軟件提供基礎結構和一些規范約束。在軟件框架的基礎上進行開發,就可以避免從頭開發,可以大大提高開發效率。軟件框架其實很像開發商的清水房,清水房也是一個半成品房子,在清水房基礎上進行裝修,就比農村從挖地基開始自己一磚一瓦修建房子快很多。那精裝房呢,那就相當於是成品軟件,就沒有程序員什么事了。

不過,框架也有不足的地方,就是開發的靈活性和擴展性要差一些。這個很好理解,清水房要裝修開發商一般有一些規范約束,比如房屋結構是不能隨便改的,特別是有些承重牆是不能打掉的。而農村修房子就沒有那么多規范約束,想怎么修就怎么修,誰也管不着。那精裝房呢?啥也不用改了,直接拎包入住。除非你是人傻錢多,拆了重新裝修,和小品里的許君聰一樣,任性、調皮。

軟件架構

軟件架構是面向復雜軟件系統開發的最高級別的設計,架構設計就是把復雜軟件系統分解為一些部件,並描述這些部件的職責及它們之間的協作行為,比如三層架構。軟件架構師的工作就是進行復雜軟件系統的架構設計,相當於建築行業的建築師;架構師輸出的軟件系統設計草圖,而建築師輸出的是建築系統設計草圖,反正這兩類人都是很牛逼的,位於金字塔頂端。那么程序員呢?這么給你說吧,程序員常被稱為碼農,工作被稱為搬磚,這就相當於建築行業搬磚的泥瓦匠,都是架構設計的具體實施者,位於金字塔的底端。聽上去程序員好沒有地位,但你想一想如果沒有程序員的搬磚,再好的軟件架構設計也只是一紙空談,只有經過程序員的開發后,軟件架構才可以體現在軟件當中。

如果軟件系統很簡單,比如開發一個21點小游戲,那就沒有必要殺雞用牛刀,動用軟件架構師啦,程序員就可以搞定啦。很多中小型軟件公司里,就沒有軟件架構師,不是因為請不起,而是沒有必要。因為本身開發的軟件系統並不太復雜,使用行業已經比較成熟的軟件架構設計方案即可,比如三層架構,就不需要軟件架構師專門去設計架構。所以,架構師這種生物,主要在大廠里出沒。而程序員就不一樣了,如同打不死的小強,無處不在哈。

總結

軟件架構和軟件框架其實都是人類為了解決日益復雜的軟件系統所帶來的開發困難而采取“分而治之”思想的結果。

  • 軟件架構作用:降低開發復雜度(設計思想)

  • 軟件框架作用:提高開發效率(軟件半成品)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM