Web开发敏捷之道(第二版)

发表于:2010-07-01来源:作者:点击数: 标签:webWebWEB开发
Web 开发 敏捷 之道(第二版) 软件测试 《Web开发敏捷之道(第二版)-应用Rails进行敏捷Web开发》这本书的中文版已经上市,关于这本书在RoR书籍市场的地位就不用赘述了。有意思的是,这本经典的 Ruby on rails教科书和我们 Java Eye网站非常有缘分: 去年8月份

  Web开发敏捷之道(第二版)  软件测试

  《Web开发敏捷之道(第二版)-应用Rails进行敏捷Web开发》这本书的中文版已经上市,关于这本书在RoR书籍市场的地位就不用赘述了。有意思的是,这本经典的Ruby on rails教科书和我们JavaEye网站非常有缘分:

  去年8月份,这本书第一版中文版上市的时候,正值我们使用Ruby on rails开发JavaEye2.0的关键时期,所以我毫不犹豫购买了三本,开发团队人手一册,那个时候,我们开发团队也是刚刚开始学习Ruby on rails,所以的确帮了不少忙。今年8月份,这本书第二版中文版也上市了,刚巧我们开发团队正在开发JavaEye3.0,这次是完全抛弃掉了JavaEye2.0的代码,彻底重写整个网站的代码,对代码质量提出了很高的要求,所以也要求我们对Ruby on rails有很好的掌握,不出意外,这次还是人手一册。

  这本书的第一版主要是针对rails1.0版本的,第二版是针对rails1.2版本而写,所以新的内容很多,有意思的是,我们JavaEye2.0和JavaEye3.0的代码变迁也挺符合这本书两个版本之间的内容变动,第二版主要添加的内容有:

  一、数据迁移

  数据迁移功能是rails1.1版本引入的,非常受程序员的欢迎,去年我们开发JavaEye2.0的时候,rails1.1其实早就发布了,但当时第一版没有这部分内容,我们也不清楚这个功能。所以数据库的维护都是直接通过数据库工具来修改表结构,但这也造成了一些问题:例如开发环境添加了字段,但是生产环境忘记修改数据库,造成代码发布以后,网站频频报错的问题出现了好多次。

  这次我们开发JavaEye3.0,就是完全使用数据迁移功能来维护数据库,可以杜绝问题的再次发生了,当然数据库的版本跟踪也方便了很多。

  二、REST支持

  REST是rails1.2引入的功能,也是rails框架未来的核心功能,这次我们开发JavaEye3.0,就是按照REST的架构风格来设计和开发的。但是第二版的REST功能介绍显得比较简略,不够详细,如果你的rails项目打算完全基于REST,那么可以参考一下beast开源项目,实际上我们就是大量参考了beast的代码写法。

  三、模型对象的多态关联

  多态关联是ORM很有用处而且很有趣的一项功能,第二版详细介绍了rails的多态关联功能,例如JavaEye3.0当中,我们就使用多态关联特性来实现帖子、博客、站内短信都可以带有附件这样的功能,也使用多态关联特性实现帖子、博客、评论都可以打tag这样的功能。

  四、assert_select和集成测试

  我个人觉得assert_select是一项很伟大的功能。我们整天都说TDD、TDD……,但是web应用,你怎么TDD?测试能够覆盖到页面上去吗?这在其他web开发当中是一个难题,但是assert_select就可以,而且完成的很漂亮,很简单。事实上,有了assert_select和集成测试,类似selenium之类的外部测试框架完全可以退休了。

  五、其他的一些新内容

  例如第二版里面增加了RJS和render :update功能,在JavaEye2.0里面,很多AJAX功能我们也是直接写prototype JS库的调用,现在基本上都改成了render :update了;

  第二版里面增加了发送HTML格式和带附件的email功能,这个也是我们目前很迫切需要的功能;

  第二版里面增加了使用mongrel群集部署rails应用的内容,这部分内容恐怕是我们JavaEye3.0唯一不会采用的新内容。

原文转自:http://www.ltesting.net