您的位置:首页 > 其它

Play 框架学习 (一) 什么是框架 为什么使用框架

2012-12-26 01:31 295 查看

前言

最近在学习play 框架,因为学校有一门课需要将所学的东西传授给别的同学,因此在学习的过程中需要更系统全面一些。于是想到可以写一写博客,这样有助于自己的反刍吸收,并且如果我在所学的过程中有所误解 有错误,也可能有看到的高手给予指点,这样也不容易给别的同学传授错误的知识。这是一个简短的前言,因为自己并不是一个特别勤与经营博客的人,所以也希望自己可以坚持把这个完成。并且,因为这片文章有很大一部分是给自己总结归纳学习使用的,不免会用到很多别的朋友写过的东西,如果有朋友看到并且有意见的话可以留言反馈,我也会尽量的将原文的链接附加到文末。文章中也可能又会有一些颇为口语的成分,或是语句不通顺之类的。

什么是框架 为什么使用框架

想要学习一件事情,总要先明确一下学习的动力。跟大多数初学者一样,对于框架(FrameWork)这个词我已经听说了很久,也稍微学习过一些框架的基础,但却没有更细致得思考过框架是什么,为什么我们要使用框架。我一开始还是想要解决自己这个疑惑的。

什么是框架

说说为什么使用Java框架的道理---H.E.'s Blog 这片文章里他用了木工家具以及木材零件这一比喻,我觉得是很有助于理解的。 需要补充的是,个人理解的框架比“零件”所做的事情要更加丰富些,比如说它可能是已经组装好的一整块部件,只需稍加打磨便可以直接装上实用。更加从专业的角度来讲,框架是一种半成的软件,他为你的系统或者子系统提供一个半成的解决方案或者说是解决方案的基础,你可以实用框架中提供的各种服务以简化工作。 p.s. 架构(Architecture)和框架(Framework)杂谈---潜鱼在渊 这片文章中关于架构与框架的对比也有助于我们对于框架的理解。 p.s.2 我很喜欢那个金字塔的图。(≧∇≦)

为什么使用框架

再谈使用框架之前,我很喜欢 深入浅出的理解框架(Struts2、Hibernate、Spring)与 MVC 设计模式---itao_o 这片文章里的关于MVC的引入(从JSP 到 JSP/Servlet 到之后的框架那部分)。作者就举了了一个简单的登录页面的例子,向我们展示了开发过程的逻辑变化。对于对web开发不是很了解的人,也许一个简单的桌面应用的例子会更加易懂一些。

相信很多写过小程序的人都写过类似计算器的例子, 不论这个小程序是运行在命令行下还是运行在图形界面上都不免有着 接收用户命令-处理用户命令-反馈回答给用户 这样的步骤。 而就算是更加复杂一些的程序也是少不了这样的基本步骤的。 对于一个简单的加减计算器,我们一开始或许会把用户输入数字 计算加减 显示答案给用户 的代码全部写在一起,这样的程序写起来快而且又能100%完成用户的需求。这时候悲剧的事情发生了,用户更新了他的需求,他现在需要一套完整的科学计算器了。 这时候我们就会发现如果将 计算的部分 显示的部分 全部混在一起的话, 我们自己也不能很好的找到每一段代码做的是什么工作。 这时候我们便会想到一件事情,就是分模块。

说了这个比较长的例子, 就是威力如同那篇文章一样引入MVC模型。需要理解的是,大部分时候分模块并不能够减少需要写的代码量(大部分时候我们需要写的更多),但是可以降低维护的难度(一块代码写的太糟糕,最坏不过重写这个模块,至少不用全部重头再写)。 但是分了模块之后我们还会遇到许多别的问题, 打一个MVC模型的例子: 我们怎么吧view层的用户的键盘输入或者是鼠标输入传递给control层进行处理,control层处理之后怎样存储到model层, model层的数据怎样再反馈回到view层 等等。 对于一个企业级别的程序,还会再牵扯到数据库 服务器 安全性 等更多元素,问题也要再复杂许多。 我们当然不想每次都重新解决一遍问题,这时候我们就想着用一些已经写得差不多的程序(框架)去解决一些问题。 我还是很喜欢前面那篇文章的总结部分的 “框架是为了解决一个又一个在Web开发中所遇到的问题而诞生的。不同的框架,都是为了解决不同的问题。” 综上所述,框架是帮助我们解决问题的。(这样一综上,突然觉得写了很废话。。。但是为什么一定要说一说MVC,这是因为PLAY 以及 类似的 Spring,Struts 都是基于MVC的框架,而且这也是整个架构的核心思想,理解这个也有助于理解之后的内容。)需要注意框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。

总结一下使用框架的优点与缺点:

优点:

效率:说到底框架也是为了提高开发效率的,一个好到框架可以使我们更加迅速的进入核心业务的开发中。它可以减轻开发人员重新建立解决复杂问题方案的负担和精力。

安全:一种广泛使用的框架结构通常有很大的安全实现。这样做的好处是它背后的社会,在那里用户成为长期的测试人员。如果您发现漏洞或安全漏洞,你可以去框架的网站,并让其团队知道,这样他们可以修复它​​。

成本:最流行的框架是免费的,最终客户的成本会小一些。

定制化:一个好的框架可以被扩展以进行内部的定制化。

缺点:

限制:该框架的核心行为不能被修改,这意味着,当您使用一个框架,你不得不尊重其局限性和工作需要的方式。确保你选择了一个框架,以适合您的需要。

代码公开:由于框架是提供给大家,它也是心怀不轨的人。它可以研究,以了解是如何工作的,找到可以用来对付你的缺陷。

附加链接

本文的主要目的还是关于PLAY框架的学习,但是收录一些在搜索中寻找到的我觉得不错的别的框架的介绍以便之后的学习

Spring 框架的架包分析、功能作用、优点

详解SSH框架的原理和优点

SSH框架各自的好处

参考链接

说说为什么使用Java框架的道理---H.E.'s Blog

深入浅出的理解框架(Struts2、Hibernate、Spring)与 MVC 设计模式---itao_o

为什么要用框架

架构(Architecture)和框架(Framework)杂谈---潜鱼在渊

使用框架的优点和缺点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: