论坛首页 入门技术论坛

最近开发了一套代码生成工具。

浏览 43104 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-03-01  
好久没更新日志了,我最近花了大概一个多月的时间做了个代码生成工具,生成的代码都是和公司的框架相关的,生成相应的后台代码和前台代码和配置文件,目前可以通过数据表和po来生成相应的代码,那么可以生成单表,树型单表,主从表,树型主从表这几种模式。当然它生成的只是这个项目里面最常用的操作,比如新增,修改,删除,导出等等。那么生成的逻辑都是最简单的逻辑,开发人员可以在生成后的基础上,将具体的逻辑判断加进去。生成的界面就是列表页面,新增页面,修改页面,查看页面。当然如果是主从表,那么就会生成从表的维护页面,那么前台页面的基本验证都可以生成好了,比如日期,是否为空,是否是数字等等。


我个人感觉它有以下三个作用。
1.可以提高一定的工作效率,因为可以生成60%-80%的代码,而且有IO处理,是可以直接生成到你指定好的工作目录里面去。开发人员之用将生成的配置文件拷贝到相应的目录即可,那么开发人员可以把更多的精力投入在复杂业务逻辑和技术攻关里面。
2.可以让项目做的更统一,因为生成的后台代码和前台代码是统一的,界面也是统一的,那么项目就是统一的风格,不会出现这个人的界面是一样,其他人又是另一样。
3.可以节约单元测试,系统测试的成本,不用局限于测一些共性,简单的功能。

但是这个生成工具是以一个稳定的开发框架和一套界面标准为基础的。

在下一版本,我将做以下修改。
1.增加xml数据源和json数据源(目前是数据表 或者po)
2.将框架的模板,代码和 业务数据分开。(这是个大的工作量),这样可以适应各个不同的开发框架。
3.加上预览的功能,主要是预览界面的布局。
4.加上高级布局功能,让布局更加灵活。

希望大家对我这个生成工具多多提些建议,我想3月初就在公司里投入使用。
   发表时间:2008-03-01  
应该开源,公众测试
0 请登录后投票
   发表时间:2008-03-01  
开源是一个比较好的做法,我明天想发一些图片上来,把一些人机操作界面发给大家看一看
当然希望大家能提供好的思想和建议,我下个目标,就是把这个做成一个适应于各个java应用的(当然是做bs系统)的一个产品
也许,我的想法比较幼稚,所以想听听大家的建议
0 请登录后投票
   发表时间:2008-03-01  
楼主加油,我对code generator也挺感兴趣,希望早日看到楼主的杰作。
0 请登录后投票
   发表时间:2008-03-01  
真的有着么好么?
真的能节省这么多工作么?
只怕是一个更深的坑。。。

绝大部分代码生成工作可以由,eclipse和UE搞定,一小部分因为不是那么通用需要自己写点脚本处理。

至于增删改查这些到底使用代码生成好还是元数据描述本身还是个问题。
他们都有同样面对的问题:
生成代码的工作这样的工作一定是简单的、可重复的、边边角角。
在一个系统中这样部分地工作是相对少量,
这种思路都倾向过早的抽象通用性,往往让系统变得僵化,难以理解、难以修改、难以维护。

不是有意打击lz的积极性,提供点建议。
0 请登录后投票
   发表时间:2008-03-02  
Godlikeme 写道
真的有着么好么?
真的能节省这么多工作么?
只怕是一个更深的坑。。。

绝大部分代码生成工作可以由,eclipse和UE搞定,一小部分因为不是那么通用需要自己写点脚本处理。

至于增删改查这些到底使用代码生成好还是元数据描述本身还是个问题。
他们都有同样面对的问题:
生成代码的工作这样的工作一定是简单的、可重复的、边边角角。
在一个系统中这样部分地工作是相对少量,
这种思路都倾向过早的抽象通用性,往往让系统变得僵化,难以理解、难以修改、难以维护。

不是有意打击lz的积极性,提供点建议。

to Godlikeme
这个生成工具所生成的代码是依赖于你本身所要用的框架的,所以它生成的都是适用于你框架的所有的东西,所以它与你系统的维护这些方面没有任何关系,如果你的系统难以维护,难以修改,难以理解,那么是你的框架难以维护,难以理解,难以修改,它生成的都是你框架里面所要求的共性代码。

也许上面那样说太抽象,比如你的框架里面对控制层,服务层,数据访问层都做了一些基本类。比如 BaseAction , BaseService , BaseDAO,这些类都已经包含了常用的增删改查等等,也就是包含了你具体系统中的一些常用操作。
那么生成的代码可能会是 TestAction extends BaseAction , TestService extends BaseService ,TestDAO extends BaseDAO .等等。
我想说的意思是生成工具生成的一切代码都是依赖于你自己的开发框架和页面标准,
至于这个代码的定制也是你自己可以控制的。包括后台代码,前台代码都是你自己定制的。

当然非常感谢你的建议。不知道我上面的解释是否可以让你更加理解这个生成工具。
0 请登录后投票
   发表时间:2008-03-02  
to jerry_shen:
  谢谢你的加油,也希望你能将你的一些好的思想同我多交流交流
0 请登录后投票
   发表时间:2008-03-02  
确实,让我看了更糊涂了,主要是我觉得后面的说法和刚开始不太一致,大道理说多了没用,那个例子出来瞧瞧。
0 请登录后投票
   发表时间:2008-03-02  
Godlikeme 写道
确实,让我看了更糊涂了,主要是我觉得后面的说法和刚开始不太一致,大道理说多了没用,那个例子出来瞧瞧。

呵呵,可能是我开始没说清楚!!!明天去公司后,我会给出个例子。
0 请登录后投票
   发表时间:2008-03-03  
我前一个公司也有一个 CRUD,审批 代码生成工具,是用于struts hibernate上的.
bo、po、dao、action、bizbean、jsp、所有的xml配置文件全部生成。
后来又有了一个 根据所见即所得的工作流设计器 也是全部到位。
针对行业的某一阶段产品还可以应付,但是完全没有推广的价值。

我看到过的代码生成工具给我的感觉 就是越抽象越没有用,越细致越局限。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics