论坛首页 Java企业应用论坛

代码擂台,特别有请buaawhl

浏览 69600 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-07-18  
potian 写道
buaawhl:我觉得前面各位讲的问题都很有道理,你可以暂时当作不把自己当作fastm的作者重新看一下这些帖子

2。耦合的问题,实际上是界面HTML的变化必须要求你的valueset的变化,你这个地方很难说VALUESET是VIEW的view和VIEW的MODEL,因为你的view的view变化一定要求view的model变化,这违背了MVC的出发点:

一个model可以用多种不同角度的view使用,view的变化不影响model的变化


多谢提醒。我也时刻在提醒着自己,站在所有人的角度看问题。
但个人的思维角度和习惯总是难免的,我将更努力地克服自己的思维习惯和角度问题。

另外,fastm不是为了支持MVC而出现的。
当然也可以支持。如同Velocity那样。
MVC是为了支持JSP而出现的。而JSP是fastm的竞争对手。
所以,在我做的lightweb framework,里面都没有刻意支持MVC。

ValueSet DOM是作为Template DOM 和 业务数据之间的桥梁 存在的。
类似于Swing UI组件的Model。而不是MVC中的Model。
这是fastm中的最核心的最新的特征。所以也是大家争论最激烈的特征。
如果ValueSet DOM没有必要存在,那么fastm本身也没有存在的必要了。
这也是我们正在讨论的问题。:-)
我想,这个问题的证明途径只有一个,有没有成功的应用案例。
从我使用fastm的角度来说,用fastm的开发速度比jsp + taglib快的太多了。
总代码量大幅度减少(主要是jsp code和tag lib的代码)。

这个问题的证明还需要一段时间。
我有两个较长的计划。一个是用fastm做一个forum。一个是用fastm做一个Portal。
UI和操作方式将直接参照著名的开源项目。因为我的DHTML + CSS很差。
但所有的底层开发将用我名下的开源项目 fastm, lightweb, lightor, 以及他人的轻巧开源项目。
0 请登录后投票
   发表时间:2004-07-18  
buaawhl兄弟,mvc不是为了支持jsp出现的,在java之前就已经有好些年了。
jsp现在也有越来越简单的趋向,考虑总代码量的话,请把增加出来的那一块构建ValueSet的java代码也算进去。还有一个需要考虑的是jsp下面很多taglib都是唾手可得的(几乎不需要代价),而你要组织fastm的显示dom,必须挨个定制。除非你有一个相对通用的根据ValueSet脚本构造Dom的方式(faint,又想到脚本了),用编写脚本来绕过java代码,否则在总代码量上是很难搞得过jsp的.
0 请登录后投票
   发表时间:2004-07-18  
charon 写道
但对于fastm的做法,就是说如果同样的数据我要有多种显示方式,必须在java端搞定多个显示用的dom,这个也太!!!!!了巴。
要知道,脚本的目的就是方便大家的生活。


这是一个误解。

在Velocity中,同样的数据,多种显示方式,需要多种Velocity文件,里面的很多逻辑都是重复的。

在fastm中,同样的数据,多种显示方式,当然只需要一个ValueSet DOM,多个Template DOM。逻辑都是重用的。
至于说,某些节点的风格和位置变化,一个处理DOM的公用函数就可以了。真正用起来,你会发现,代价根本没有想象的那么大。
并且不要以为ValueSet DOM多么复杂。ValueSet DOM是一个非常灵活的映射结构,完全可以映射自身。比如,一个节点引用自己3次,就实现一个复杂的3重判断的脚本逻辑。

if ...
   if ...
      if ....
      else ...
   else
      ....
else
   ...


我用fastm替换的jsp复杂程度都很高。
我完成项目(著名的开源项目移植)之后,我们可以具体比较fastm的代码量,和其他模板的代码量。
0 请登录后投票
   发表时间:2004-07-18  
charon 写道
buaawhl兄弟,mvc不是为了支持jsp出现的,在java之前就已经有好些年了。
jsp现在也有越来越简单的趋向,考虑总代码量的话,请把增加出来的那一块构建ValueSet的java代码也算进去。还有一个需要考虑的是jsp下面很多taglib都是唾手可得的(几乎不需要代价),而你要组织fastm的显示dom,必须挨个定制。除非你有一个相对通用的根据ValueSet脚本构造Dom的方式(faint,又想到脚本了),用编写脚本来绕过java代码,否则在总代码量上是很难搞得过jsp的.


TagLib的代码算不算?:-)
TagLib的代码是不是Java Code?
TagLib里面输出的HTML标签是不是和显示相关的逻辑? :-)

我不会用通用脚本。但我会大量地使用DOM操作通用方法(Java Code)。
因为再强的脚本语言,在功能,效率,结构上,也不可能强过Java。
0 请登录后投票
   发表时间:2004-07-18  
buaawhl 写道

TagLib的代码算不算?:-)
TagLib的代码是不是Java Code?
TagLib里面输出的HTML标签是不是和显示相关的逻辑? :-)

我不会用通用脚本。但我会大量地使用DOM操作通用方法(Java Code)。
因为再强的脚本语言,在功能,效率,结构上,也不可能强过Java。


脚本语言强过java的唯一的地方就是代码长度和可读性。否则要脚本语言干嘛。
至于代码量比较,自己写的taglib当然算长度,但是买来的或者opensource的那些,肯定不能算。不然的话,那就得从容器本身的代码量开始算了。
0 请登录后投票
   发表时间:2004-07-18  
buaawhl 写道

这是一个误解。
在Velocity中,同样的数据,多种显示方式,需要多种Velocity文件,里面的很多逻辑都是重复的。


不知道你有没有写过复杂的jsp或者velocity页面。这里面有很多种重用的机制来处理逻辑重复的情形(如果这种重复存在的话)。

至于那种三重判断代码,一个是你的自引用也需要代码,另一个是越是灵活的东西,可读性就越差。而且,我很少看到很多重判断的情形。偶尔看到的那些,都不是只涉及到一两个节点。

还有一点就是,fastm要比得不是那些写得很烂的jsp/velocity代码,而是同等质量上的比较。
0 请登录后投票
   发表时间:2004-07-18  
此贴太长。全是代码。并且是不被接受的代码。所以删除。
0 请登录后投票
   发表时间:2004-07-18  
charon 写道


不知道你有没有写过复杂的jsp或者velocity页面。这里面有很多种重用的机制来处理逻辑重复的情形(如果这种重复存在的话)。

还有一点就是,fastm要比得不是那些写得很烂的jsp/velocity代码,而是同等质量上的比较。


比如?有没有例子?
请给出一个同样长度的复杂的高质量的JSP或Velocity的代码的例子。
请先把敏感信息替换为XXX。

另外,请给出JSP,Velocity“很多种重用的机制来处理逻辑重复的情形”的例子。这些机制是什么?

如果没有现成的例子,我可以提供很多这种逻辑重复的例子。
0 请登录后投票
   发表时间:2004-07-18  
此贴太长。全是代码。并且是不被接受的代码。所以删除。
0 请登录后投票
   发表时间:2004-07-18  
buaawhl 写道

比如?有没有例子?
请给出一个同样长度的复杂的高质量的JSP或Velocity的代码的例子。
请先把敏感信息替换为XXX。

另外,请给出JSP,Velocity“很多种重用的机制来处理逻辑重复的情形”的例子。这些机制是什么?

如果没有现成的例子,我可以提供很多这种逻辑重复的例子。


比如,你刚才给的那个jsp的例子就是一个写的极其烂的例子。java程序都写在脚本里面了。本身就不符合mvc的架构。
fastm的取代目标不会是这种脚本吧。
至于重用机制,找spring的samples里面的东西看一看。虽然那里只有jsp的,但velocity的也差不多
另外,你的那个与jsp对应的fastm,请把java端代码也写上。否则的话,相当于没意义
0 请登录后投票
论坛首页 Java企业应用版

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