论坛首页 Web前端技术论坛

show一下我自己的框架,并和dwr做一简单比较

浏览 15757 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-17  
浏览器端没有一个高性能的模板引擎,用Trimpath那一类的js引擎在某些情况不太实用...如果浏览器能原生地支持就好了.这样DWR的作用更能发挥.
PS:其实用WebWork来生成js也不差,把转换js的方法拷过来就行.而且可以根据项目在ActionMapper上做一些手脚以减少配置.
0 请登录后投票
   发表时间:2006-09-17  
yfmine 写道
浏览器端没有一个高性能的模板引擎,用Trimpath那一类的js引擎在某些情况不太实用...如果浏览器能原生地支持就好了.这样DWR的作用更能发挥.
PS:其实用WebWork来生成js也不差,把转换js的方法拷过来就行.而且可以根据项目在ActionMapper上做一些手脚以减少配置.


在webwork上增加一个JsMarshallerResult,并增加一个拦截器用来从提交的json数据里面得到java对象,在ActionMapper上做一些手脚来实现映射策略的可配置,的确可以实现差不多的功能。不过相比我自己的只有20几个java文件按得框架,webwork复杂了些,学习成本高了不少。
0 请登录后投票
   发表时间:2006-09-18  
说几点:

1 类的数量不是系统简单与否的依据。看看xstream, 几百个类,但理解和使用起来都很简单,因为结构清晰。Spring MVC也很简单。系统的复杂性取决于其特性的规模和算法复杂性。

2 几乎所有的AJAX框架所做的核心的事情,无非是传输层的抽象和对象在系统间的序列化/反序列化。这一点,无论是dojo.io.bind,DWR,buffalo或者你的框架,都无法逃过。在此之上,可以提供更友好的API、更丰富的特性。例如许多商业ajax产品基于这些核心功能提供了丰富的基于ajax传输的界面组件。


3 AJAX框架这部分,我觉得做出彩的开源框架可能性已经不大了,特别是在java领域。现在不是说你有我没有的阶段,而是哪个更支持更好就用哪个。你的框架,说实话,除了有点站不住脚的那个对象图裁减功能之外,没有什么精彩的功能。许多都是要么直接能做要么经过少量配置就可以做的。如果打算做开源的话,需要更大的精力和热情去培育和支持你的社区。
0 请登录后投票
   发表时间:2006-09-18  
WebWork很复杂么?就一个接口需要实现,这样都复杂...倒是很想看看"浏览器提交数据的时候,可以通过js脚本sigmaform.getValue()获得在浏览器上编辑后的对象图"的js是怎么实现的,提交时根据控件name拼装出来的么?貌似只是个feature介绍,没有地址...
0 请登录后投票
   发表时间:2006-09-19  
mechiland 写道

1 类的数量不是系统简单与否的依据。看看xstream, 几百个类,但理解和使用起来都很简单,因为结构清晰。Spring MVC也很简单。系统的复杂性取决于其特性的规模和算法复杂性。

更多的类意味着更多的概念,理解起来当然更复杂。也许你不必理解所有的概念,只需理解用到的就行了。但这样的话,你就很难对框架的功能做进一步改进了。当然很少遇到这种情况,而且多数需要改进框架的需求都可以用一种别扭的方式绕过去。

mechiland 写道

2 几乎所有的AJAX框架所做的核心的事情,无非是传输层的抽象和对象在系统间的序列化/反序列化。这一点,无论是dojo.io.bind,DWR,buffalo或者你的框架,都无法逃过。在此之上,可以提供更友好的API、更丰富的特性。例如许多商业ajax产品基于这些核心功能提供了丰富的基于ajax传输的界面组件。

恩,的确如此。ajax框架的java端工作量不大,想要提高开发效率的关键还在于丰富的ajax组件。不过我认为无论组件怎么丰富,都不可能满足一个复杂系统的所有交互要求。所以我的建议是正在做并且要继续做web应用的同行们都好好学学js、css、html之类的。我们在使用这个框架开发应用程序的过程中,js控件都是我们自己开发的。


mechiland 写道

3 AJAX框架这部分,我觉得做出彩的开源框架可能性已经不大了,特别是在java领域。现在不是说你有我没有的阶段,而是哪个更支持更好就用哪个。你的框架,说实话,除了有点站不住脚的那个对象图裁减功能之外,没有什么精彩的功能。许多都是要么直接能做要么经过少量配置就可以做的。如果打算做开源的话,需要更大的精力和热情去培育和支持你的社区。


像webwork这样的框架的确没有什么做不了的,大不了你再配一个拦截器或者再配一个result。我可不认为对象图裁减功能是什么站不住脚的功能!当你的浏览器代码直接从服务器端获取rich domain object的时候,一个对象关联到10几个lazyload的其他对象是很常见的情况。在编辑的时候都需要加载,而在列表的时候只需部分加载。没有裁剪功能的话,有些情况下性能差别会达到1个数量级。


的确没有时间和精力去维护一个开源项目社区。show出来的意思是给大家一个思路:框架并不一定要等大牌开源产品,花两三个星期,很多人也能做的出来,而且针对性更强,更容易理解、更适合你的团队(即使从我们这里离职的员工,大多数不会回去用struts或者webwork)。所花的时间也未必比精通一个开源的框架来多多少。
也许很多人会批评我重复发明轮子:),但我觉得某些情况下自力更生不是坏事。
0 请登录后投票
   发表时间:2006-09-19  
yfmine 写道
WebWork很复杂么?就一个接口需要实现,这样都复杂...倒是很想看看"浏览器提交数据的时候,可以通过js脚本sigmaform.getValue()获得在浏览器上编辑后的对象图"的js是怎么实现的,提交时根据控件name拼装出来的么?貌似只是个feature介绍,没有地址...


action是很简单,但webwork不是。不复杂的话,为什么抢不下死板的structs的用户!js代码在附件。的确是根据控件name来拼装的。SigmaForm对象最难处理的是关联对象,RefEditor和SelectEditor都可以用来处理关联对象。其中RedEditor是调用一个函数来获得关联对象的,比如你编辑订单的客户时,需要弹出一个客户查询界面,然后选定一个客户,RedEditor将显示这个客户的名称,form.getValue()得到的对象中的某个属性含有完整的customer对象。

  • js.rar (7.2 KB)
  • 下载次数: 95
0 请登录后投票
   发表时间:2006-09-19  
mechiland 写道
说几点:
3 AJAX框架这部分,我觉得做出彩的开源框架可能性已经不大了,特别是在java领域。现在不是说你有我没有的阶段,而是哪个更支持更好就用哪个。你的框架,说实话,除了有点站不住脚的那个对象图裁减功能之外,没有什么精彩的功能。许多都是要么直接能做要么经过少量配置就可以做的。如果打算做开源的话,需要更大的精力和热情去培育和支持你的社区。


说话蛮犀利的,让我这个新人觉得搞技术的人咋很多类似古代“文人相轻”呢,说人家站不住脚,总得好好说点理由呀,再说你说没什么精彩的功能,你指的精彩又是什么样的呢,可否列举一些呢,人家单自立更生这点我就由衷的敬佩,更不提技术水平摆在那里了,只会用用开源的框架或者说我也写得出来和实际上真的有没有东西拿出来,我感觉还是很不一样的哦。

说到“重复发明轮子”,我想国内的大部分程序员,除了业务逻辑框架没帮你做掉,让你觉得没“重复发明”了,真要说到自己“发明新轮子”,好象很少嘛,好好想想的话,不觉得还真没多少可以自己动手动手发明发明的地方了吗,呵呵,感觉还是自立更生更重要,新人哈,说话如有得罪请别放在心上。
0 请登录后投票
   发表时间:2006-09-19  
mechiland是国内著名的开源AJAX框架Buffalo的作者,可是一个真正对开源社区做了贡献,而且持续付出的热情的人。
0 请登录后投票
   发表时间:2006-09-19  
robbin 写道
mechiland是国内著名的开源AJAX框架Buffalo的作者,可是一个真正对开源社区做了贡献,而且持续付出的热情的人。

不好意思 ,我也只是就事论事哦,不过俺是小孩子,很多不懂的 ,牛人我都很佩服的
0 请登录后投票
   发表时间:2006-09-22  
我也尝试着开发一个 Java 的 AJAX 框架,用 Spring MVC。随后放弃了,我觉得服务器端能够关注的也就是数据的序列化和转换,AJAX 的重头戏还是在客户端。实现一个良好的客户端的 MVC 是非常重要的,Buffalo 的 OAOP 是非常值得学习的概念。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics