2008-07-08
为何代码生成器都要这么智能呢?
关键字: [搞不明白]
现在的代码生成器生成的代码文件都会自动插出在我们的项目中,为何不提供一个将生成的文件生成在硬盘某个目录下,再由我们手工copy回来工作区?
这样可以避免开发人员需要考虑文件会不会被覆盖的问题.并且手工的动作很快,也不容易出错.
本人编写了的一个基于数据库的代码生成器,就是要解决上面提到的问题,可以生成Hibernate Model,Dao,Manager,Struts/Struts2 Action,JSP页面(增删改查及列表页面,表单验证),以下为代码生成器相关特性
生成器入口
这里是上一篇[搞不明白],被移至入门区了
[搞不明白]直接在Action中返回forward不好么
搞完了[搞不明白],会发布一个应用开发框架,提供类似rails的基于url确定action访问的零配置快速编程,自带一个代码生成器,已经完成的组合基于struts+spring+hibernate,struts2+spring+hibernate.
这样可以避免开发人员需要考虑文件会不会被覆盖的问题.并且手工的动作很快,也不容易出错.
本人编写了的一个基于数据库的代码生成器,就是要解决上面提到的问题,可以生成Hibernate Model,Dao,Manager,Struts/Struts2 Action,JSP页面(增删改查及列表页面,表单验证),以下为代码生成器相关特性
- 以application方式运行生成器,代码即是配置.
- 将文件系统的目录名称及文件名称作为生成器的一部分,模板文件的的名称与目录名称可以直接引用相关变量,如${basepackage}/${className}.java (${className}=Blog,则会生成Blog.java)
- 以@testExpression结尾的模板文件为有条件忽略,如果testExpression的值在数据模型为true则生成该文件,生成的文件不会包含@testExpression,反之则不生成该文件(应用场景:用于在是否要生成hibernate联合主建的文件中)
- 支持文件插入操作,如模板输出生成的地方已经有该同名的文件存在,并且文件中有包含"webapp-generator-insert-location"标记,则模板生成的内容会插入在该标记之后该特性对如生成的spring配置内容插入spring配置文件十分有用
生成器入口
public static void main(String[] args) throws Exception {
Generator g = new Generator();
g.clean();
g.generateTable("blog");
// g.generateAllTable();
}
这里是上一篇[搞不明白],被移至入门区了
[搞不明白]直接在Action中返回forward不好么
搞完了[搞不明白],会发布一个应用开发框架,提供类似rails的基于url确定action访问的零配置快速编程,自带一个代码生成器,已经完成的组合基于struts+spring+hibernate,struts2+spring+hibernate.
评论
sevenhighness
2008-09-03
貌似大部分的代码生成都局限于功能性的生成而已
超级潜水员
2008-09-02
你的rpaid-framework很好用,谢谢楼主了.
farryu
2008-09-02
bruce_luo 写道
不错,我以前也写过一个代码生成器,但是我们老大说,你这一搞,其它程序员就要失业了,我就没有继续搞下去了!
我代表我自己以及我身后千千万万个同行向你致谢了!
thc
2008-09-01
superxielei 写道
说了这么多.我还是希望能看一看这个代码生成器...
现在公司都是用自己封装的框架.这些代码生成器还有作用吗?
现在公司都是用自己封装的框架.这些代码生成器还有作用吗?
那正是代码生成器的市场所在 ,哈哈
bubble
2008-08-01
呵呵,像你说的那样,何必用java能,直接用js就搞定了
系统程序
2008-07-17
bruce_luo 写道
不错,我以前也写过一个代码生成器,但是我们老大说,你这一搞,其它程序员就要失业了,我就没有继续搞下去了!
联合国秘书长应该来感谢你啊,不是你做出的伟大的牺牲的话,全球的失业率不知又要增加多少
vangelee
2008-07-17
我晕,你放心不会失业的。可以看一下Grails。感觉会让你大吃一惊的!
zfyyfz
2008-07-16
别这么牛啥,即使你发明一种语言,大多程序员也不会失业!
liping
2008-07-16
我想看看你这个个代码生成器!即使失业也乐意啊!
runthu
2008-07-15
程序员太累,应该偷偷懒!
sunwine
2008-07-15
我到不怕代码生成器,因为我们做开发都不写代码。
dfedora
2008-07-15
都用了好久的。好的代码生成器可以生成很多语言的代码。无非就是模版的选择而已。CRUD操作可以直接用生成器搞定。
soleghost
2008-07-15
在公司实习的时候就发现,对于一个没有任何业务逻辑的model
从查插删改的页面-->对应的action-->manager及其实现-->dao及其实现-->model及其hibernate的xml配置文件,开发的大部分工作都是copy/paste,然后更改变量名,其实大部分都是没有任何技术和业务意义的,写一个针对公司技术框架的代码生成器,可以提高程序员的开发效率,对于公司挺好的
从查插删改的页面-->对应的action-->manager及其实现-->dao及其实现-->model及其hibernate的xml配置文件,开发的大部分工作都是copy/paste,然后更改变量名,其实大部分都是没有任何技术和业务意义的,写一个针对公司技术框架的代码生成器,可以提高程序员的开发效率,对于公司挺好的
runthu
2008-07-15
搞过SSH的CRUD代码生成,静态编码表的操作效率是高多了,但复杂的业务逻辑还得慢慢去实现。
cuckoo framework也支持CRUD代码的自动生成。
cuckoo framework也支持CRUD代码的自动生成。
simplechinese
2008-07-15
能不能把这个帖也移到入门区...
gladstone
2008-07-15
bruce_luo 写道
不错,我以前也写过一个代码生成器,但是我们老大说,你这一搞,其它程序员就要失业了,我就没有继续搞下去了!
失什么失,地球不留人,火星还去不得咩
pony0728
2008-07-15
可以把客户化的代码放到扩展目录。最后发布的时候去覆盖下。。
suntiance
2008-07-14
我也有过开发代码生成器的经验,暂时能想到下面这些。
问题
1、对于业务复杂的模块,代码生成器并不能显著提高效率。
2、对于熟练的程序员,代码生成器有点累赘。
3、开发一个优秀的代码生成器也是需要成本的。
优点
1、简单模块快速开发。
2、来自同一个生成器的代码比较规范,易读性强。
问题
1、对于业务复杂的模块,代码生成器并不能显著提高效率。
2、对于熟练的程序员,代码生成器有点累赘。
3、开发一个优秀的代码生成器也是需要成本的。
优点
1、简单模块快速开发。
2、来自同一个生成器的代码比较规范,易读性强。
xfan1982
2008-07-14
fmpp+freemarker很容易做
xiaoheng
2008-07-14
没有先上面说滴那么人性化。
偶滴只用于自己开发上用,节约时间。
偶滴只用于自己开发上用,节约时间。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 28777 次
- 性别:

- 来自: 珠海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
为何代码生成器都要这么智 ...
貌似大部分的代码生成都局限于功能性的生成而已
-- by sevenhighness -
为何代码生成器都要这么智 ...
你的rpaid-framework很好用,谢谢楼主了.
-- by 超级潜水员 -
为何代码生成器都要这么智 ...
bruce_luo 写道不错,我以前也写过一个代码生成器,但是我们老大说,你这一 ...
-- by farryu -
为何代码生成器都要这么智 ...
superxielei 写道说了这么多.我还是希望能看一看这个代码生成器... ...
-- by thc -
新版本发布:基于prototyp ...
請問和aculos的驗證有什麽區別?別人在prototype1.4的時候,我就用 ...
-- by williamy






评论排行榜