<b>轻量级的代码生成策划挑选</b>[Java编程]
本文“<b>轻量级的代码生成策划挑选</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
上次说到MyAppfuse要有一个代码生成工具, codegeneration.net上堆积了 各种平台各种语言的工具.
此中一些用到UML做元数据的,就变成了上年最风行的MDA tool.MDA其实是 超级炒冷饭了,偶N年前的毕业论文做的就是这个标题,目前再看进步也不大.
不过想下也正常.因为MDA是由模子、实现和转换程序三者构成的,假如模子 定义飞速发展了,与底层实现之间一定会形成宏大落差,需求转换程序做大量工 作来消弥.当落差充足大时,就会很少人乐意做这个转换工作.而为了削减落差 ,一是等底层实现的发展,但这是整个IT界的事情,不是MDA开辟者的个人问题 .别的就惟有减低模子定义的高度,比方AndroMDA,很多现成的模板都只依靠于 UML静态Class图,同时利用大量的Tagged Value,看上去和一个xml格局的自定 义模子没什么辨别.
所以,一来受底层实现的制约,二来OMG的构造也不像个很高产的组织,MDA 忽然爆发,大家洗脚上田不用再Coding的机会不大.但随着AOP,Meta-Data,O/R Mapping,IOC Container这些底层的发展,还有微软DSL对UML的打击,MDA还是会 持续渐渐发展,毕竟这是我们的梦.
当下还是挑些轻量级的代码生成筹划对比实际.我挑的是XML格局的自定义模 型 + jsp/Freemarker模板.当然也可以像Appfuse那样用XDoclet,但我认为 XDoclet的扩大性,管理性和实用范围都是最低的.也可以不用模板,用C#/Java 程序完好掌握代码的生成,这种方法目前又多了Python,Ruby这些动态语言可供 挑选.
但我还是习惯模板多一些.比方jsp,可以用Httpclient拜候jsp,得到返回 内容来生成文件.而xml格局的元数据, 可以通过Filter放入到Request大概 Session中.
不过,目前风行Velocity和Freemarker.二者之间可以用三局两胜制决出.
一,Freemarker网站上有一篇文章,列出了Freemarker语法上比Velocity优 胜的地方.
二,但目前的PM不可以这么狭隘的从纯技术角度看问题的了,Velocity有着 比Freemarker多得多的用户群体,比方AndroMDA, IntelliJ IDEA.
三,又但是,关于这种用XML格局定义的元数据,Freemarker有一个很少被提 到,但无匹的上风--内置了XML DOM的拜候语法.比方以下的元数据:
<table>
<column name="id"/>
<column name="name"/>
</table>
Freemarker可以这样列出table下全部column的name:
<#list table.* as column>
${column.@name}
比较Velocity要利用JDom的API,简单了不知多少倍.就这点,让Freemarker 胜出,因为Code Generate的历程中,实在要拜候太多的xml元数据.也是这点, 让我在jsp和freemarker间模棱两可.本来,因为生成的是代码,不是页面, freemarker markup-language化的上风并不存在.而jsp的好处是大家都懂,而 且有最好的IDE,扩大性还超强,可以做肆意的事情.
不过,说到底, 用什么做模板,其实不是件很重要的事情,这里只是写一下 group memoring,记录低决意的历程.
以上是“<b>轻量级的代码生成策划挑选</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |