本文比较了JFina3.0和Beetl的新模板引擎功能
Jfinal3.0自带模板引擎功能。看了介绍和下载演示,发现尺寸增加了不少。似乎对于一个模板引擎来说,JFinal的大小已经增加到了800K,和Jfinal早先宣称的200k大小有很大的区别。为一个模板引擎投入这么大的尺寸值得吗?作为Beetl和BeetlSql的作者,这是必然的。模板引擎其实是一种语言,一种基础技术,可以作为视图渲染,规则解释,Sql模板片段等很多地方使用。以betel为例,在百度金融网站页面渲染、某系统的58个邮件模板、JD.COM某系统的功能规则解释中得到了应用,这些也是BeetlSql的基础。如果Jfina想像BeetlSql一样把Sql放在文件管理中,就必须使用模板技术。回头看看Mybatis,因为使用了xml解析和OGNL表达式,没有使用模板引擎,导致了XML管理中的各种问题。我在文章中已经解释过了
离家近一点,对于JFinal来说,我不认同他文章里解释的观点,感觉有很多地方不正确
Antlr为负
Antlr是一个语法解析工具,已经在很多开源产品中使用过,比如hiberante、Google系列开源、betel实现。《安特尔》的作者是美国大学教授特伦斯·帕尔(Terence Parr)。实现Antlr用了30年。可能Antlr新手觉得它体积大了一点,但毫无疑问它功能可靠稳定,性能很好。同时,Antlr还可以生成各种目标语言,比如Java、Python、GO、JS等。毫不夸张地说,如果我愿意,betel & amp;beetSqL不能只依赖Java原生
JFinal3.0声称Antlr不可靠,无法调试。我不懂。不知道他们在使用过程中有什么问题。中国有个Antlr集团。我曾经是一个小组主持人,经常回答一些antlr的入门知识。没见过有人给出这样的反馈。
所谓的原始词法分析算法
语言解析技术至少已经有50年的历史了,这方面已经非常成熟。没想到还有原创空。我觉得这个成绩能不能衡量,要看能不能应用到多个场景。如果只是极简的词法分析,那就没有意义了。另外,可以请大神尹来评价一下。王银无疑是这方面的权威,他见多识广,善于批评。
看了一下提到的一些特性,我不这么认为,比如
原空和安全值调用运算符?
该功能在许多模板引擎中可用,以及从2011年开始可用的Betel,例如
用户可以为空或不存在,安全调用也可以在循环中使用
消除宏指令?
任何语言都要考虑如何复用。对于模板语言来说,重用模板非常重要。宏只是重用的一种方式。不管用什么技术,都只是重用的马甲。看看Beetl是怎么复用的。
像宏一样,比如标签,beetl支持两种标签,标签函数和html标签,比如下面这样的模板片段
这是一个类似html的重用,非常适合CMS中的模板渲染和自定义标签。而且它的实现非常简单,只需要创建一个位于htmltag/my/output.tag中的实现,其实就是一个模板片段。
另一个例子是模板变量
上面的代码定义了一个变量,它的值是模板的输出,所以您可以随时调用这个变量来计算和呈现它以供重用。此功能用于复杂的布局方法,如继承布局
JFinal的原创特色
Jfinal手册也提供了一些原创功能。在我看来,Beetl至少存在了很长时间。比如JFinal提到可以修改语法树节点的实现(其目的是在sql片段中输出sql占位符?),这个betel从2011年就有了,就这样。它的在线体验网站已经运行了90万次。例如,当您输入以下代码时
事实上,只运行了5次循环后,它就退出并给出警告。这是因为Beetl引擎修改了While的语法执行实现,发现循环超过5次就退出了。BeetlSql还利用了Beetl引擎的特性。当sql输出时,不是输出内容,而是输出?,以下是beetlsql片段
事实上,在渲染beetl模板之后,输出是
这也是因为beetl引擎可以修改语法节点的实现。这项技术从2012年就有了。我一直认为Beetl是真正原创的,在Jfinal3问世之前就引领了这一潮流
总结
总的来说,我觉得JFinal Template并没有给模板引擎带来多少新东西,不如Beetl。比如Beetl有很多功能。我觉得JFinal Template目前没有。
Html标记重用,类似于
带有绑定变量的标签,这个freemaker有,beetl有,在cms中用的很多
自定义占位符和分隔符,很多人喜欢beetl
在本地调用安全管理,这在beetl在线体验中也有。不知道jfinal是否也有这个功能。如果没有,如果用户输入@System.exit(),系统将关闭
语法节点实现修改,如上所述,这也是beetlsql实现的基础
虚拟属性实现
自定义函数和格式化函数
MVC分层开发和实现,前端开发者可以专注于前端开发
流行框架的集成
更多的语法特征,如for in,for(exp;expExp),同时,适应各种应用场景
国内外的许多绩效评估都是名列前茅的
还有更多特性没有一一列出。甜菜在中国已经很受欢迎了。甜菜和甜菜.本文无意推广Beetl,只是认为作为开源用户,在决定使用开源产品之前,我们需要对其进行分析,而不仅仅是看标语。俗话说,不看广告看疗效,希望能为犹豫不决的模板用户提供一个客观的参考。
推荐阅读
点击“阅读原文”查看更多精彩内容
1.《Beetl JFina 3.0 “重新定义的模板引擎”与 Beetl 的功能对比》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《Beetl JFina 3.0 “重新定义的模板引擎”与 Beetl 的功能对比》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1636623.html