框架之浅入浅出

来源:互联网 发布:做假图软件 编辑:程序博客网 时间:2024/06/17 13:10

1、什么是框架?

IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。 ————补充解释———— 也就是说:1)框架本身一般不完整到可以解决特定问题;2)框架天生就是为扩展而设计的;3)框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries)或工具(tools)。 约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。

举例:比如,开始你使用php“走路”,这样会走的很慢,然后你用php做了自行车,发现起着自行车可以很快,这个自行车就是框架。框架也是用php基础语言写的,里面会定义好多常用的方法,做东西的时候可以直接拿来用,而不需要每次都从头开始写。框架是应用程序“模板”就好比“八股”文章,不论好坏,按照规则填写。

2、为什么要使用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基 础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问 题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

3、前端框架
①、Bootstrap:Boostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。
②、Fbootstrapp:基于Bootstrap并且提供了跟Facebook iframe apps和设计相同的功能。包含用于所有标准组件的基本的CSS和HTML,包括排版、表单、按钮、表格、栅格、导航等等,风格与Facebook类似。
③、BootMetro:框架的灵感来自于Metro UI CSS,基于Bootstrap 框架构建,用于创建Windows 8 的Metro风格的网站。它包括所有Bootstrap的功能,并添加了几个额外的功能,比如页面平铺,应用程序栏等等。
④、Kickstrap:是Bootstrap的一个变体。它基于Bootstrap,并在它的基础上添加了许多app,主题以及附加功能。这使得这个框架可以单独地用于构建网站,而不需要额外安装什么。你需要做的仅仅是把它放到你的网站上,然后用就可以了。
⑤、Foundation :是一款强大的,功能丰富的并且支持响应式布局的前端开发框架,你可以通过Foundation快速创建原型,利用它所包含的大量布局框架,元素以及最优范例快速创建在各种设备上可以正常运行的网站以及app。Foundation在构建的时候秉承移动优先的策略,它拥有大量实用的语义化功能,并且使用Zepto类库来取代jQuery,这样可以带来更好的用户体验,并且提高运行的速度。
⑥、GroundworkCSS :是前端框架家族里面新添的一款小清新框架。它是基于Sass和Compass的一个高级响应式的HTML5,CSS以及JavaScript工具包,可以用于快速创建原型并且建立在各种浏览设备上可以正常工作的网站和app。

4、如何选择一款优秀的前端开发框架?
学习曲线;针对简单任务的开发效率;针对复杂、特殊任务的开发效率;依赖管理;代码性能/安全优化调整的能力
平台升级/冗余能力;在企业市场中的认同度;开发、使用SOAP和REST服务的复杂性

5、 Web 和 APP 开发的 NodeJS 框架
** Express 框架提供了用来开发强壮的 web/移动应用,以及 API 的所有功能。并且开发人员还能够方便地为它开发插件和扩展,从而增加 Express 的能力
**Sail: 作为一个非常稳固的 nodejs 框架,提供了建立任何规模的 web 应用所需要的所有功能功能。Sail.js 在底层使用了 express框架来提供对 http 请求的处理,同时使用 Socket.IO 框架来处理WebSocket 请求。同时作为一个前端应用开发框架,它允许开发人员选择他/她熟悉的技术来开发应用。
**KOA :是 node.js mvc 框架的后起之秀,在2013第四个季度才发布了第一个版本。开发 KOA 的人员基本来自 Express 开发团队,TJ Holowaychuk 是 KOA 开发团队的领导者。虽然 KOA 大部分开发人员来自 Express,但是他们使用了完全不同的技术来开发 KOA,并且 KOA 正成为 Express 一个强有力的竞争对手。
**Meteor: 框架是 Node.js 上最出色的全栈框架。项目在 GitHub 上有 28K+ 的赞,拥有大量的自定义包,庞大的社区支持,非常好的教程和文档。在这个领域 Meteor 毫无疑问是王者,你可以用它构建纯 Javascript 的实时 Web 和 手机应用
**Derby.JS 跟它的直接竞争对手 Meteor、Mean.io、以及 Mojito 一样,也是一个全栈框架。它运行在 Nodejs + mongo + Redis 的上层。Derby 主要部分是一个叫做 Racer 的数据同步引擎,它能够让数据在数据库、服务器和浏览器之间的同步变得轻而易举。
**Flatiron 框架背后的核心思想是让你能使用它所提供的组件以及一些第三方库构建你自己的全栈框架。很酷不是吗?我个人十分的喜欢这种方式。然而,这带来的是更高的复杂度,并有可能会被使用错误组件的开发者搞得一团糟。
**Hapi 是为数不多的不依赖于 Express 的 node.js 框架,现在甚至已经完全独立于 Express 了。在最近一段时间中,很多开发者选择了 Hapi 而非 Express,这使得它或多或少变为了 Express 的竞争对手。

6、常见的JAVA框架有什么?
  WAF:
  全称:WEB APPLICATION FRAMEWORK
  主要应用方面:EJB层,(WEB层也有,但是比较弱)。
  主要应用技术:EJB等
  出处:java.sun.com/blueprints/code/index.html”>http://java.sun.com/blueprints/code/index.html
  简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea/weblogic700/samples/server/src/petstore。这是学习了解J2EE的首选框架。
  免费。
  Struts:
  主要应用方面:WEB层。
  主要应用技术:JSP,TagLib,JavaBean,XML等
  出处:http://jakarta.apache.org/struts/index.html
  简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。
  免费。
  简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:
  JSP(TagLib)——>ActionForm——>Action ——>
  Event——>EJBAction——>EJB ——>DAO——>Database
  JSP(TagLib) (forward) <——Action <——EventResponse<——
  Turbine:
  主要应用方面:WEB层。
  主要应用技术:servlet等
  出处:http://jakarta.apache.org/turbine/index.html
  简述:这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。
  免费。
  COCOON:
  主要应用方面:WEB层。
  主要应用技术:XML,XSP,servlet等
  出处:http://cocoon.apache.org/2.0/
  简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。
  免费。
  ECHO:
  主要应用方面:WEB层。
  主要应用技术:servlet等
  出处:http://www.nextapp.com/products/echo/
  简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。
  免费。
  JATO:
  全称:SUN ONE Application Framework
  主要应用方面:WEB层。
  主要应用技术:JSP,TagLib,JavaBean等
  出处:http://www.sun.com/
  简述:这是SUN推出的一个商业性框架,一看名字就知道是结合SUN ONE的平台推出的。我下载了JATO2.0看了一下,感觉有些简单,使用了JSP+TagLib+JavaBean。如他的DOC所说JATO是适合用在小的WEB应用里。
  免费。
总结:

我个人觉得开发框架的约定的作用远远大于他的库类的作用;开发的过程有许多的细节和功能取决于开发过程中的约定,比如如何用单独的文件放网站的配置信息,页面模块如何组织,数据库如何组织等等,这些都需要开发者在编写代码的时候考虑和规划的,而且这些约定如果开始考虑不周的,往往会对后期开发造成很大影响。新手开发往往比较随意,开发约定的设计也比较随,但是实际上大部分框架的约定规则都是经过深思熟虑和久经考验的(比如MVC),一旦理解了这点,并且在开发中顺着这些约定去规划和考虑问题,就会觉得框架好用的不得了,并且上手和实施都相当容易!

0 0