`
ezzze
  • 浏览: 41475 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【总结】groovy写着玩的代码生成

阅读更多
软件外包都是体力活啊,这是入行后老人的第一句话。

幸好老人还有第二句话,自己写代码生成工具吧。

果然发现自己做的工作,完全可以靠工具来生成。

背景
一堆重复性工作:注释,javabean,domain object与 TO 以及TO与BO的互相设值,bean的基本校验,如长度,非空,是否必选......

基本思路是读取开发文档生成必要的xml,解析XML然后通过模板文件替换或添加.....


1.为啥要XML,因为它这种数据结构比较强大,而且我也不一定能自己构建出比较好的数据结构,比较菜.....

2.为啥用groovy,因为开发环境里面只有这个脚本语言,又不想用java这种八股文去长篇大论。而且groovy解析xml还算简单。


目前遇到的困难:

因为domainObject关系挺多的,子类,父类,还有inner lass,如何高效生成完整的domain的field结构图,比较头疼。注意是domain的字段结构图

具体问题描述:

举例来说:
 public class Guest extends Person{
     private Address address;

}
public class Address {
     private String addressName;
}

那这个guest的domain field结构图就是
     Guest.Address.addressName

如果person里面还有料的话,比如

public class Person{
    private String name;
}


那 domain的field结构图 又变成了

     Guest.Address.addressName
     Guest.name



现在的做法:
两个list,从一个起点开始,读取文件,遇见自定义类型,保存类型,继续读文件,直到读到基本类型再push进list,然后退回到上一层,pop掉刚才的那层,读上一层其他字段......

遇到有重复N的自定义类型,就得读N遍文件,还得用set来保证字段的唯一性,我艹.....

缺点
假设有N个bean 每个bean的有M个自定义字段,每个自定义字段有L层,假设M个字段不重复,L层不重复,则我要进行 N*M*L次文件操作,我果然很浪费时间啊,看来还要换个思路


有空去研究下javaDoc的生成class结构把


————————————————————————————————————————

现在完全没有动力,工作的最大动力就是完善自己的工作代码生成工具.然后看自己的东西。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics