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的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
 
耗子如果对版权有异议,可以到我这里来申诉,但本人保留驳回的权利