REST+RIA方案
作者: , 出处:JavaEye, 责任编辑: 叶江,
2007-07-30 13:19
一直很想体会一下使用REST+RIA这种组合开发Web应用效果究竟如何,乘着这几天有空简单试验了一把
我选择的案例很简单,就是《应用Rails进行敏捷开发》一书中的depot应用。为了简化问题,我只使用了其中的store控制器部分,并将这一部分改写成REST+RIA的方式。具体地说,就是:
- 1、重写一个控制器(我把它称为RestStore),它的功能和Store控制器类似,但只提供RESTful风格的接口;
- 2、表示层部分用Flex重写。该层与RestStore控制器通信以获取必要的后台数据;
为了比较的目的,以下将《应用Rails进行敏捷开发》所使用的“经典”方法(Rails作为后台,rhtml作为表现层)称为方案一,将我所试验的方法(RESTful Rails作为后台,Flex作表现层)称为方案二。除了结构上的差异,这两个方案所实现的功能和界面基本上是完全相同的。
代码量比较
方案一:
| Controllers(1个文件,57行) Helpers(1个文件,9行) Models(5个文件,85行) Views(6个文件,93行) CSS(1个文件,227行) ------------------------------------------ 共计14个文件,471行 |
方案二:
| Controllers(1个文件,37行) Models(3个文件,39行) Views(3个文件,15行) MXMLs(3个文件,278行) ActionScripts(4个文件,142行) CSS(1个文件,76行) -------------------------------------------- 共计15个文件,587行 |
方案二比方案一要大概多出25%的代码,这主要是因为前后台采用了不同的技术,所以必须写一些用于转换数据格式的方法。
需要说明的是,由于没有详细统计注释和空行,因此这个数字并不十分精确,只能作为一个数量级上的参考。但是代码量的分布上还是能看出一些问题来的。方案二比起方案一而言,服务器部分得到了很大的简化,原因在于(1)视图部分只提供XML数据,不再负责处理界面;(2)购物车移到客户端来实现,后台不再需要Cart和相关的类。
此外,方案一的CSS文件相当长,而方案二的CSS就要小得多。这是因为方案一的CSS也包括许多用于页面布局的部分,而在Flex中,布局是用布局容器来实现的,CSS只负责组件样式。这就使得Flex中MXML比较大而CSS可以稍小一些。(我个人的看法是使用布局容器进行整体布局比用CSS更加合理)
- 本文关键词:

