何謂開發框架?

51新出的家園不錯,發文章有快捷鍵,方便不少
 
一直做運維,以前對"開發模式"的意義一直是似懂非懂,今天和耗子(http://blackanger.blog.51cto.com)一番對話讓我豁然開朗.
 
現將關鍵部分截取如下
:何爲web開發框架?
 
:假如你開發一個web應用,一些基礎的東西,都需要你自己實現,比如http request,cookie,建立與數據庫連接等等,都需要你自己做。 所謂框架,就是幫你實現了這些基礎的東西,讓你把精力都集中到業務開發上面。
 
yahoon 11:08:11
那是不是相當於一個函數庫 你只需要調用?
 
愛因思談 11:08:51
應該是函數庫的邏輯組裝,爲了web開發,已經實現了一些構建web應用需要的基礎層
 
yahoon 11:09:38
那就是說 我的項目代碼裏面 要先裝框架 ?
 
愛因思談 11:10:25
不一定啊,看你項目是什麼啊,需要你自己寫,或者用開源的框架,或者不用
 
愛因思談 11:10:47
有些應用根本沒有現成的框架可用
 
yahoon 11:11:22
恩恩  反正就是一套獨立的東西 實現了一些功能, 你的程序要用的話 就先裝
 
yahoon 11:11:28
是不是這個意思?
 
愛因思談 11:11:36
是的
 
愛因思談 11:12:06
實現了一些基礎的功能,就是大部分web應用需要重複的工作,都幫你實現了,而你就不需要重複那些工作了。
 
愛因思談 11:12:17
通用的東西
 
yahoon 11:13:03
  那相當於不同的語言 都各自一套框架了
 
愛因思談 11:14:21
算是吧 實現方式不同,但是都異曲同工
 
yahoon 11:15:03
就比如 mvc這套
php有phpmvc
jsp 也有自己的一套是吧?
 
愛因思談 11:16:32
spring webwork 是Java的,還有好多
ruby 是ruby on rails,merb,不過現在rails3把merb整合了,還有一些其他輕量級的
 
愛因思談 11:17:48
還有ruby寫的遊戲開發框架,GUI開發框架,手機開發框架,等等。都是實現了對應領域的基礎通用的工作。
 
yahoon 11:18:18
咋感覺都是MFC的後續品種
 
愛因思談 11:19:07
不要比較,就像練太極拳,忘記以前的招式
 
總結:何謂開發框架?
就是根據應用的領域,實現這個領域基礎性通用性功能的一套東西.
比如web開發框架:像http request,cookie,建立數據庫連接等等這些操作通常都需要你自己做。所謂框架,就是幫你實現了這些基礎的東西,讓你把精力都集中到業務開發上面。
例如在web開發領域流行的開發模式--MVC,各自的語言都有自己的一套實現,實際上大部分框架都是基於MVC的
:並不是每個項目都需要使用框架,有些場景或許根本沒有合適的框架可用.
 
附 百度裏面搜的MVC(部分摘錄)
何謂MVC?
MVC是三個單詞的縮寫,分別爲: 模型(Model),視圖(View)和控制Controller)。 MVC模式的目的就是實現Web系統的職能分工。 Model層實現系統中的業務邏輯,通常可以用JavaBean或EJB來實現。 View層用於與用戶的交互,通常用JSP來實現。 Controller層是Model與View之間溝通的橋樑,它可以分派用戶的請求並選擇恰當的視圖以用於顯示,同時它也可以解釋用戶的輸入並將它們映射爲模型層可執行的操作。
MVC本來是存在於Desktop程序中的,M是指數據模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。比如一批統計數據你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。
MVC如何工作
MVC是一個架構模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。
視圖
視圖是用戶看到並與之交互的界面。對老式的Web應用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演着重要的角色,但一些新的技術已層出不窮,它們包括Adobe Flash和像XHTML,XML/XSL,WML等一些標識語言和Web services.
如何處理應用程序的界面變得越來越有挑戰性。MVC一個大的好處是它能爲你的應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理髮生,不管這些數據是聯機存儲的還是一個僱員列表,作爲視圖來講,它只是作爲一種輸出數據並允許用戶操縱的方式。
模型
模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用像EJBs和ColdFusion Components這樣的構件對象來處理數據庫。被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能爲多個視圖提供數據。由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重複性。
控制器
控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器(例如:servlet)本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後確定用哪個視圖來顯示模型處理返回的數據。
現在我們總結MVC的處理過程,首先控制器接收用戶的請求,並決定應該調用哪個模型來進行處理,然後模型用業務邏輯來處理用戶的請求並返回數據,最後控制器用相應的視圖格式化模型返回的數據,並通過表示層呈現給用戶。
 
耗子如果對版權有異議,可以到我這裏來申訴,但本人保留駁回的權利
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章