為什麼要使用框架

孤舟蓑翁發表於2016-04-16

使用框架的初衷

  程式設計有一個準則Don't Repeat Yourself(不要重複你的程式碼)。如果有一些程式碼出現重複,我們就應該把這些程式碼提取出來封裝成一個方法。隨著時間的積累有了一批方法,我們把它整合成工具類。工具類如果形成規模,可以把工具類整合成類庫。類庫更系統功能更全。不僅不要自己重複造專案中已有的輪子,也不要造別人已經造好的輪子。我們只需要直接使用已有的輪子就行。

 框架也是一樣,框架,是為了我們不必總是寫相同程式碼而誕生的。框架,是為了讓我們專注於業務邏輯而誕生的。框架,把我們程式設計中不變的部分抽取出來,讓我們專注於與業務有關的程式碼。

MVC框架的誕生

同樣的程式碼寫兩次就是罪過,所以我們需要什麼東西來讓我們解放出來。很快人們就發展出了一套MVC框架.

 

模型-檢視-控制器架構模式背後的思想非常簡單:我們的應用程式中必須區分下面這些職責:

應用程式被分成了三個主要的部分,每個部分負責掌管不同的任務。下面讓我們看看詳細的解釋以及一個例子。

控制器

控制器掌管著使用者的請求(當使用者點選圖形使用者介面(GUI)上的元素執行操作時,控制器會收到HTTP GET或者POST請求)。它的主要功能就是呼叫並協調需要的資源/物件來執行使用者請求。通常控制器會為任務呼叫合適的模型,以及選擇合適的檢視。

模型

模型是指運用於資料之上的資料規則和資料內容,它一般對應於應用程式所要管理的物件。在軟體系統中,任何事物都可以被抽象成可以對其以某種方式進行處理的資料模型。

MVC框架能幫我們做什麼?

框架規定了開發者寫哪些程式碼/不寫哪些程式碼,怎麼寫程式碼——這就是框架主要解決的問題。MVC框架實現了MVC模式。什麼意思?意思是隻要你根據框架的要求填充程式碼,你就能夠很簡單的實現MVC模式。

誰來響應使用者請求?框架會告訴你
誰負責生成響應介面?框架會告訴你

如何匹配網址?框架會告訴你

如何接受引數?框架會告訴你,
如何與檢視互動?框架會告訴你

 

MVC的好處是什麼

我們使用MVC的一個最明顯好處就是它將檢視展示和應用邏輯清晰的分離開來。對不同使用者以及不同裝置型別的支援一直是當下的一個常見問題。來自臺式電腦和手機的請求所得到的檢視應該是不相同的。模型會返回完全相同的資料,但是不同的地方是控制器會選擇使用的檢視檔案來展示資料(我們可以把它看作是不同的模板)。除了將檢視從業務邏輯中分離開外,MVC的分離也降低了大型應用設計的難度。程式碼也更具結構性,因此也更容易維護,測試和重用。這種模式會幫助我們清晰的區分程式各部分的職責,便於程式維護,程式碼重用以及測試。MVC框架給我們提供了一個基本的MVC骨架,以及許多有用的功能,提高了我們的效率,讓開發過程更加輕鬆。

 

使用框架的必要性

需要指出的是,只有在相當規模的程式中應用這些框架才能體會到好處。
如果你的網站、程式很小,那麼沒有必要殺雞用牛刀。

不建議新手一開始就使用框架,因為你不知道框架幫你做了什麼,而這不利於個人的成長。在學習階段,先試試不用框架我該如何做,然後就會更明白框架的價值。

框架和類庫的區別

框架和類庫的主要區別是一是控制反轉,一般程式,程式的運作是由程式設計師全盤掌握的。程式資源的初始化、銷燬、定位查詢,執行邏輯都是我們寫程式碼實現的。這些順著程式主入口開始查詢都可以找得到。但是應用框架後的控制權已經交給了框架。比如配置框架引數時已經控制權移交給框架的控制器。

二是框架會告訴你還缺什麼,你只需要把這些程式碼寫完,程式就可以正常執行了。類庫實現的程式碼你無需再寫,但是類庫沒告訴你,程式設計師需要寫哪些程式碼,需要程式設計師自己心理有數。

 

 

MVC的缺點

由於它沒有明確的定義,所以完全理解MVC並不是很容易。使用MVC需要精心的計劃,由於它的內部原理比較複雜,所以需要花費一些時間去思考。您將不得不花費相當可觀的時間去考慮如何將MVC運用到您的應用程式,同時由於模型和檢視要嚴格地分離,這樣也給除錯應用程式帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。MVC並不適合小型甚至中等規模的應用程式,花費大量時間將MVC應用到規模並不是很大的應用程式通常會得不償失。MVC設計模式是一個很好建立軟體的途徑,它所提倡的一些原則,像內容和顯示互相分離可能比較好理解。但是如果您要隔離模型、檢視和控制器的構件,您可能需要重新思考您的應用程式,尤其是應用程式的構架方面。如果您肯接受MVC,並且有能力應付它所帶來的額外的工作和複雜性,MVC將會使您的軟體在健壯性、程式碼重用和結構方面上一個新的臺階。

 

相關文章