软件外包都是体力活啊,这是入行后老人的第一句话。
幸好老人还有第二句话,自己写代码生成工具吧。
果然发现自己做的工作,完全可以靠工具来生成。
[size=large]背景[/size]
一堆重复性工作:[color=blue]注释,javabean,domain object与 TO 以及TO与BO的互相设值,bean的基本校验,如长度,非空,是否必选......[/color]
基本思路是[color=blue]读取开发文档生成必要的xml,解析XML然后通过模板文件替换或添加.....[/color]
1.为啥要XML,因为它这种数据结构比较强大,而且我也不一定能自己构建出比较好的数据结构,比较菜.....
2.为啥用groovy,因为开发环境里面只有这个脚本语言,又不想用java这种八股文去长篇大论。而且groovy解析xml还算简单。
[size=large]目前遇到的困难:[/size]
因为domainObject关系挺多的,子类,父类,还有inner lass,如何高效生成完整的domain的field结构图,比较头疼。[color=red]注意是domain的字段结构图[/color]
[size=large]具体问题描述:[/size]
举例来说:
那这个guest的domain field结构图就是
如果person里面还有料的话,比如
那 domain的field结构图 又变成了
[size=large]现在的做法[/size]:
两个list,从一个起点开始,读取文件,遇见自定义类型,保存类型,继续读文件,直到读到基本类型再push进list,然后退回到上一层,pop掉刚才的那层,读上一层其他字段......
遇到有重复N的自定义类型,就得读N遍文件,还得用set来保证字段的唯一性,我艹.....
[size=large]缺点[/size]
[color=red]假设有N个bean 每个bean的有M个自定义字段,每个自定义字段有L层,假设M个字段不重复,L层不重复,则我要进行 N*M*L次文件操作,我果然很浪费时间啊,看来还要换个思路[/color]
有空去研究下javaDoc的生成class结构把
————————————————————————————————————————
现在完全没有动力,工作的最大动力就是完善自己的工作代码生成工具.然后看自己的东西。
幸好老人还有第二句话,自己写代码生成工具吧。
果然发现自己做的工作,完全可以靠工具来生成。
[size=large]背景[/size]
一堆重复性工作:[color=blue]注释,javabean,domain object与 TO 以及TO与BO的互相设值,bean的基本校验,如长度,非空,是否必选......[/color]
基本思路是[color=blue]读取开发文档生成必要的xml,解析XML然后通过模板文件替换或添加.....[/color]
1.为啥要XML,因为它这种数据结构比较强大,而且我也不一定能自己构建出比较好的数据结构,比较菜.....
2.为啥用groovy,因为开发环境里面只有这个脚本语言,又不想用java这种八股文去长篇大论。而且groovy解析xml还算简单。
[size=large]目前遇到的困难:[/size]
因为domainObject关系挺多的,子类,父类,还有inner lass,如何高效生成完整的domain的field结构图,比较头疼。[color=red]注意是domain的字段结构图[/color]
[size=large]具体问题描述:[/size]
举例来说:
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
[size=large]现在的做法[/size]:
两个list,从一个起点开始,读取文件,遇见自定义类型,保存类型,继续读文件,直到读到基本类型再push进list,然后退回到上一层,pop掉刚才的那层,读上一层其他字段......
遇到有重复N的自定义类型,就得读N遍文件,还得用set来保证字段的唯一性,我艹.....
[size=large]缺点[/size]
[color=red]假设有N个bean 每个bean的有M个自定义字段,每个自定义字段有L层,假设M个字段不重复,L层不重复,则我要进行 N*M*L次文件操作,我果然很浪费时间啊,看来还要换个思路[/color]
有空去研究下javaDoc的生成class结构把
————————————————————————————————————————
现在完全没有动力,工作的最大动力就是完善自己的工作代码生成工具.然后看自己的东西。