锁定老帖子 主题:代码擂台,特别有请buaawhl
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间: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, 以及他人的轻巧开源项目。 |
|
返回顶楼 | |
发表时间:2004-07-18
buaawhl兄弟,mvc不是为了支持jsp出现的,在java之前就已经有好些年了。
jsp现在也有越来越简单的趋向,考虑总代码量的话,请把增加出来的那一块构建ValueSet的java代码也算进去。还有一个需要考虑的是jsp下面很多taglib都是唾手可得的(几乎不需要代价),而你要组织fastm的显示dom,必须挨个定制。除非你有一个相对通用的根据ValueSet脚本构造Dom的方式(faint,又想到脚本了),用编写脚本来绕过java代码,否则在总代码量上是很难搞得过jsp的. |
|
返回顶楼 | |
发表时间: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的代码量,和其他模板的代码量。 |
|
返回顶楼 | |
发表时间: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。 |
|
返回顶楼 | |
发表时间:2004-07-18
buaawhl 写道 TagLib的代码算不算?:-) TagLib的代码是不是Java Code? TagLib里面输出的HTML标签是不是和显示相关的逻辑? :-) 我不会用通用脚本。但我会大量地使用DOM操作通用方法(Java Code)。 因为再强的脚本语言,在功能,效率,结构上,也不可能强过Java。 脚本语言强过java的唯一的地方就是代码长度和可读性。否则要脚本语言干嘛。 至于代码量比较,自己写的taglib当然算长度,但是买来的或者opensource的那些,肯定不能算。不然的话,那就得从容器本身的代码量开始算了。 |
|
返回顶楼 | |
发表时间:2004-07-18
buaawhl 写道 这是一个误解。 在Velocity中,同样的数据,多种显示方式,需要多种Velocity文件,里面的很多逻辑都是重复的。 不知道你有没有写过复杂的jsp或者velocity页面。这里面有很多种重用的机制来处理逻辑重复的情形(如果这种重复存在的话)。 至于那种三重判断代码,一个是你的自引用也需要代码,另一个是越是灵活的东西,可读性就越差。而且,我很少看到很多重判断的情形。偶尔看到的那些,都不是只涉及到一两个节点。 还有一点就是,fastm要比得不是那些写得很烂的jsp/velocity代码,而是同等质量上的比较。 |
|
返回顶楼 | |
发表时间:2004-07-18
此贴太长。全是代码。并且是不被接受的代码。所以删除。
|
|
返回顶楼 | |
发表时间:2004-07-18
charon 写道 不知道你有没有写过复杂的jsp或者velocity页面。这里面有很多种重用的机制来处理逻辑重复的情形(如果这种重复存在的话)。 还有一点就是,fastm要比得不是那些写得很烂的jsp/velocity代码,而是同等质量上的比较。 比如?有没有例子? 请给出一个同样长度的复杂的高质量的JSP或Velocity的代码的例子。 请先把敏感信息替换为XXX。 另外,请给出JSP,Velocity“很多种重用的机制来处理逻辑重复的情形”的例子。这些机制是什么? 如果没有现成的例子,我可以提供很多这种逻辑重复的例子。 |
|
返回顶楼 | |
发表时间:2004-07-18
此贴太长。全是代码。并且是不被接受的代码。所以删除。
|
|
返回顶楼 | |
发表时间:2004-07-18
buaawhl 写道 比如?有没有例子? 请给出一个同样长度的复杂的高质量的JSP或Velocity的代码的例子。 请先把敏感信息替换为XXX。 另外,请给出JSP,Velocity“很多种重用的机制来处理逻辑重复的情形”的例子。这些机制是什么? 如果没有现成的例子,我可以提供很多这种逻辑重复的例子。 比如,你刚才给的那个jsp的例子就是一个写的极其烂的例子。java程序都写在脚本里面了。本身就不符合mvc的架构。 fastm的取代目标不会是这种脚本吧。 至于重用机制,找spring的samples里面的东西看一看。虽然那里只有jsp的,但velocity的也差不多 另外,你的那个与jsp对应的fastm,请把java端代码也写上。否则的话,相当于没意义 |
|
返回顶楼 | |