当前位置:首页 > 教学设计 > 什么是Web应用程序_基于Rails和jQuery的Web应用程序敏捷开发
 

什么是Web应用程序_基于Rails和jQuery的Web应用程序敏捷开发

发布时间:2019-02-21 04:13:18 影响了:

  [摘 要]随着网络的日益普及,对电子商务和电子政务的需求日趋丰富,越来越多的企业和政府部门都希望将日常管理逐步信息化和网络化。在这种背景下,如何快速构建网页应用程序,以最短的时间,最少的投资,取得最好的效果,成为Web应用开发人员迫切希望解决的问题。本文提出了一种开发方法,用Rails框架快速开发web应用的功能,用jQuery完善Web应用界面,实现web应用程序的快速开发。
  [关键词]Web应用 Rails 框架 Javascript jQuery
  [中图分类号]TP[文献标识码]A[文章编号]1007-9416(2010)02-0039-02
  
  1 前言
  随着网络的日益普及,对电子商务和电子政务的需求日趋丰富,越来越多的企业和政府部门都希望将日常管理逐步信息化和网络化。在这种背景下,开发者迫切需要一种能够简化开发过程,降低开发难度,提高开发效率的框架。目前在Web开发平台中人们使用最多的是Sun公司推出的J2EE。J2EE的问题是随着需求的多样化,不断加入的各种组件和各种各样数量不断增加、体积不断膨胀的XML配置管理文件使得J2EE应用体系变得臃肿不堪,在开发和运行速度上越来越不能满足开发者的需求。
  而Rails的出现解决了J2EE中各种各样的XML配置管理文件对开发人员的困扰。Rails是基于Ruby语言的Web应用开发框架,该框架的最大特点是“约定优先配置”,和目前其它的一些MVC框架比较,它不需要繁琐复杂以及数量众多的配置文件,它已经订立了一系列使用该框架时要遵守的约定,只要开发人员遵守这些约定,那么可以实现零配置的MVC框架的web应用,极大的降低了使用该框架的难度。
  Web应用的开发离不开用户界面的设计和开发。在以往的用户界面开发中,主要使用Javascript脚本语言作为界面互动的开发工具,但Javascript脚本语言存在编写困难、难于理解以及调试困难的缺点,所以众多Javascript框架被开发出来以提供对Javascript的包装,使之功能增强、代码易于理解,这些Javascript框架包括prototype、Moo Tools、dojo、jQuery等。其中jQuery是较晚出现的Javascript框架,但是jQuery以其先进的技术、优秀的代码组织、强大的扩展能力,迅速得到了广大web应用开发人员的青睐。
  2 开发工具简介
  2.1 Rails介绍
  Rails框架是一个MVC结构的框架,它将应用程序分成如下3个组件:
  *模型(Model) 处理数据和业务逻辑;
  *控制器(Controller) 处理用户接口和应用逻辑;
  *视图(View) 处理图形用户接口对象和表示逻辑。
  Web应用程序的MVC模型组件关系如图1所示,具体的处理过程如下:
  (1)客户端的浏览器向服务器上的控制器发送页面请求;
  (2)控制器处理相应的请求,以对象的方式从模型中获得所需要的数据对象;
  (3)控制器将获得的数据对象发送给特定的视图;
  (4)视图向客户端发送页面以便浏览器显示。
  Rails实现了模型、视图和控制器概念的完全分离,它将各部分的代码分别存储在不同目录下的不同文件中。
  Rails会自动创建项目的目录结构,其中存放系统代码的app目录的目录结构如图2所示,从目录名称就可以看到不同模块的文件被放到了不同的目录中,这里Rails的“约定优先配置”的思想得到了体现。
  2.2 jQuery介绍
  jQuery是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 Javascript 以及Ajax 编程,方便用户在网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。
  它具有如下一些特点:
  (2)代码简练、语义易懂、学习快速、文档丰富。
  (2)jQuery是一个轻量级的脚本,其代码非常小巧。
  (3)jQuery支持CSS1-CSS3,以及基本的xPath。
  (4)jQuery是跨浏览器的,它支持的浏览器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。
  (5)可以很容易的为jQuery扩展其他功能。
  (6)能将JS代码和HTML代码完全分离,便于代码和维护和修改。
  (7)插件丰富,除了jQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、DataGrid,树形菜单、图像特效以及ajax上传等。
  3 开发实例
  项目具体需求如下:为满足消防工作信息化管理的要求,当地消防主管部门需对辖区消防责任单位生成带有文号的消防检查表,然后将检查结果输入系统,系统将根据检查结果决定是否生成整改通知书,整改通知书的内容与检查结果有关。
  首先,经过分析,系统内的各个成员的关系如图3所示。
  第二步,根据模型的属性,创建数据库以及相关联的model。Rails中,数据库的创建不再是直接访问数据库,而是使用一直叫做Migration的技术,由rails系统根据Migrate文件内容自动维护数据表结构。例如对于Police类,和CheckPaper类可以使用如下命令生成数据库Migration:
  ruby script/generate model police name:string password:string
  ruby script/generate model check_paper year:integer number:integer police_id:integer
  然后再使用命令:
  rake db:migrate
  即可自动根据Migration文件的内容创建数据表。
  在models目录中会自动创建police.rb文件,该文件是Police类的定义文件,Rails会自动将数据表中的字段映射称类中的属性,在程序中直接使用Police类对象就可以访问数据库中的内容,用户无需直接同数据表打交道。
  从模型图中可以看出Police类和CheckPaper类是一对多的关系,为表达这种关系,并在程序代码中直接使用police.check_papers语句来访问某位民警所管理的所以消防检查表,需要在创建CheckPaper类的Migration的命令中加入“police_id:integer”,然后在police.rb类文件中加入代码:
  has_many :check_papers
  同时在check_paper.rb类文件中加入代码:
  belongs_to :police
  第三步,创建控制器。创建一个Police控制器,用于对浏览器发送的请求进行响应。
  ruby script/generate controller police index
  此时会在controllers目录下创建police_controller.rb文件,该文件中有一个PoliceController类,类中有一个index方法,对应浏览器发送过来的index请求。当浏览器的地址栏中输入“https://localhost:3000/police/index”时,Rails会将该请求解析为访问police控制器中的index方法。系统执行完index方法之后会将数据传递给views目录下的police目录下的index.html.erb文件去进行渲染,客户端浏览器上呈现的内容就和此文件有关,此文件就是View。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   以后要添加新的响应,就只需要在对应的控制器文件中加入相应的方法,并在对应目录下创建视图文件就行了。
  Rails框架不需要任何额外的配置,只要开发人员遵守相应的文件名约定,文件所在目录的约定,就可以迅速根据需求写出完美的MVC代码,极大地简化和加快了开发的过程。
  Web应用的用户界面的交互功能采用jQuery来完成,例如在输入检查表结果的页眉中,有20多个单选组要求选择,所有的单选组都必须要输入数据,不能留空。在使用普通Javascript来进行网页校验的情况下要针对每个单选组绑定事件,代码编写复杂,容易出错。而使用jquery来进行网页校验时,只需要引入相应的jQuery的validate插件,然后在页面中插入下列Javascript代码:
  $(document).ready(function(){
  $("#edit_check_paper_").validate();
  });
  针对每个单选组(如name为check_options_9的单选组),编写代码:
  畅通
  无
  被堵塞,占用
  
  则可以完成网页的校验功能。图4中演示了没有选择时出现的错误提示信息,选择了之后,出错信息自动消失的情况。
  4 结语
  项目组充分利用了Rails框架和jQuery框架在Web应用上快速开发能力,仅用了短短5天时间,完成了从需求分析到系统上线的敏捷式开发过程。目前该系统已在武汉某区公安分局上线使用,在已上线的6个多月期间内系统运行平稳可靠,月平均处理业务单270多份。该系统的上线将原来繁复的消防整改处理变得清晰有序,大大提高了消防管理部门的信息化水平和工作效率。
  下一步项目组将根据需求方的要求,结合多种Ajax快速开发工具实现面向Web应用敏捷式开发,将主要从完善页面交互效率、友好性、以及后台数据处理效率等方面持续改进系统功能和性能。
  
  [参考文献]
  [1] Advanced Rails Recipes,Mike Clark,Pragmatic Bookshelf,2008.
  [2] Agile Web Development with Rails Third Edition,Sam Ruby/Dave Thomas /David Hansson/David Heinemeier Hansson,Pragmatic Bookshelf,2009.
  [3] Learning jQuery,Jonathan Chaffer/Karl Swedberg,Packt Publishing,2007.
  [4] jQuery in Action,Bear Bibeault / Yehuda Kat,Manning Publications,2008.
  [5] 锋利的jQuery,单东林/张晓菲/魏然,人民邮电出版社,2009.
2 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3