论坛首页 入门技术论坛

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

浏览 43320 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-03-09  

http://www.iteye.com/topic/168915

看一下我的想法和你的很像啊

呵呵

代码经过了优化

可以完成增删改查,查询为动态混合查询

从建表到得到可用的web应用1分钟smile

 

0 请登录后投票
   发表时间:2008-03-09  
嗯,有点收获,事情果然不可能有完美的
0 请登录后投票
   发表时间:2008-03-09  
jobs 写道
做一个足够优秀的代码生成器的几个条件:
1、对编译相关的技术玩得很熟练,不使用DSL和一些编译相关的技术,你很难做到足够灵活和高质量。
2、本身的技术造诣相当高,若是本身技术水平一般,生成的代码质量也肯定一般
3、有一群人或者一个团队为你提供生成方案,因为你不可能面面俱到。
4、得到公司的支持,有较大的项目做你的白老鼠。

我的想法和楼上的有些不同:
1.对第一点我做生成工具的定位不用去涉及到编译相关的技术。而且用什么技术也不重要,关键能够达到快速生成共性代码和项目统一性为目的的。
2.我所认为每个公司都应该有一套比较稳定的开发框架和标准的,如果没有(请想办法制定),这也是为了项目或者产品的统一性,好维护性而出发的。那么我再综合这个框架和标准做好要生成的模板和规则,从而生成一套代码出来,代码质量是否高是这个框架的代码质量高的。
3.我的工具的第一版本是我结合我自己的开发经验和在公司经过系列评审和演示完成的,目前是具有我们公司特色的一套。第二版本,我想把这个特色解开,看能不能通用。
4.目前是公司比较支持的,现在也是有项目在用到它,效果还是不错,开发人员不用在一些简单问题上花时间,他们可以把时间花在对业务的理解上,对疑难技术的攻关上。

总之呢,谢谢楼上的建议
0 请登录后投票
   发表时间:2008-03-09  
代码生成工具能够提升开发人员的工作效率,我们目前的项目开发过程中也使用了类似的代码生成框架。感觉效果还不错。楼主是否可以提供一些样例?
0 请登录后投票
   发表时间:2008-03-09  
wuming_player 写道
代码生成工具能够提升开发人员的工作效率,我们目前的项目开发过程中也使用了类似的代码生成框架。感觉效果还不错。楼主是否可以提供一些样例?

其实图片是最好表达样例的工具,可是不知道为什么我这边怎么都上传不了,不知道是不是公司信安做了特殊处理。

你可不可以简单介绍你们的生成机制?


0 请登录后投票
   发表时间:2008-03-09  
我和楼主做的东西差不多
根据数据库表生成PO,生成CRUD DAO,然后表单,控制类,这些框架性的东西。
生成代码的时候使用了模版。

这样一来,对于简单的CRUD操作这类的重复编码基本上可以省略一些。

但往下再做哪些东西,暂时还没有想好。

最近发现项目的测试是一个问题,用JUnit做单元测试需要写大量的测试代码,
在思考要不要写一个测试脚本的生成工具?
从PO CRUD操作的测试
到表单数据校验的测试
乃至业务逻辑的测试。。。

太多想做的东西,时间啊。。。
0 请登录后投票
   发表时间:2008-03-09  
很期待你的代码生成工具
0 请登录后投票
   发表时间:2008-03-09  
回deadcode:我当时就考虑过单元测试
但是有一点我想说过的是:代码生成工具生成的是共性功能的代码,含有特殊性业务的代码是需要自己加进去的,而我让开发人员做单元测试,也是着重测试的这些特殊业务的功能,这块业务的东西变化太大,很难做到生成。
0 请登录后投票
   发表时间:2008-03-09  
差沙 写道
反对代码生成的同学,请理解什么是“脚手架”,顺便看看ROR


不必说得这么炫,凡事都是有前提的。

从技术上来讲,很多工具大到编译器、虚拟机,小到get、set的生成都是代码生成的一种,商业味道浓一点话,所谓的更高一级的MDA编程就是代码生成,所以从编译器的角度来理解代码生成的话,我们现在都是在用编译器在做代码生成,但是随着编译器和VM的技术飞速进步,编译器和VM做得不仅仅是代码生成的工作,更多的是内存管理。

回过头来说,楼主提出的代码生成是在一定背景条件的情况下产生的需求,这个背景条件就是公司采用的技术框架相对稳定,公司决定采用这些组合的框架去实施项目,这样需要快速的产生对应这些框架的“脚手架”。没错,但是之前我也回复过,没说这么做有错,但是投入太大的话就不明智了。

从技术上来来讲,你有见过哪个目前流行的出书的技术框架使用代码生成技术实现的。当然不是要求每个人都要像那些顶级的技术牛人来进行设计,但是至少那是我们的目标,尤其是当你搞技术超过5年后,如果还想在技术上深入的话,开源社区的框架和一些先进的思想是完全可以学习和借鉴,深入了解一下别人是如何提出问题、分析问题、解决问题、寻找平衡点的。

从公司角度来说,如果我是技术总监,不会特别赞成手下某个技术牛人这么干的,至少不会过多投入,技术发展很快,尤其是前台展现技术,我希望手下的这位技术牛人做一些很简单的代码生成就足够了,更多的是搞出一些最佳实践。我不希望公司的技术命脉掌握在一个人手中,更希望很多人了解主流的技术,否则一旦那为仁兄离职,损失是很重的。有经验的人可以回想一下当年公司里的任何独立的技术框架和代码生成,这些东西后来的结局大家自己想一想吧。

0 请登录后投票
   发表时间:2008-03-09  
icewubin 写道
差沙 写道
反对代码生成的同学,请理解什么是“脚手架”,顺便看看ROR


不必说得这么炫,凡事都是有前提的。

从技术上来讲,很多工具大到编译器、虚拟机,小到get、set的生成都是代码生成的一种,商业味道浓一点话,所谓的更高一级的MDA编程就是代码生成,所以从编译器的角度来理解代码生成的话,我们现在都是在用编译器在做代码生成,但是随着编译器和VM的技术飞速进步,编译器和VM做得不仅仅是代码生成的工作,更多的是内存管理。

回过头来说,楼主提出的代码生成是在一定背景条件的情况下产生的需求,这个背景条件就是公司采用的技术框架相对稳定,公司决定采用这些组合的框架去实施项目,这样需要快速的产生对应这些框架的“脚手架”。没错,但是之前我也回复过,没说这么错有错,但是投入太大的话就不明智了。

从技术上来来讲,你有见过哪个目前流行的出书的技术框架使用代码生成技术实现的。当然不是要求每个人都要像那些顶级的技术牛人来进行设计,但是至少那是我们的目标,尤其是当你搞技术超过5年后,如果还想在技术上深入的话,开源社区的框架和一些先进的思想是完全可以学习和借鉴,深入了解一下别人是如何提出问题、分析问题、解决问题、寻找平衡点的。

从公司角度来说,如果我是技术总监,不会特别赞成手下某个技术牛人这么干的,至少不会过多投入,技术发展很快,尤其是前台展现技术,我希望手下的这位技术牛人做一些很简单的代码生成就足够了,更多的是搞出一些最佳实践。我不希望公司的技术命脉掌握在一个人手中,更希望很多人了解主流的技术,否则一旦那为仁兄离职,损失是很重的。有经验的人可以回想一下当年公司里的任何独立的技术框架和代码生成,这些东西后来的结局大家自己想一想吧。


首先我想申明的是这个生成工具投入并不太大,一个人,原型+设计+编码大概就三周的样子,
第二个说明的是技术框架不是生成代码技术实现的,是生成工具来生成技术框架所支持的代码。就是说没有这个生成工具,开发人员的开发步骤就是熟悉这个框架,从而按照这个框架的一系列所规定的步骤来开发,那这个生成工具是用来减少这个开发时间的。

0 请登录后投票
论坛首页 入门技术版

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