锁定老帖子 主题:最近开发了一套代码生成工具。
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-05
再优秀再良好的设计模式或语言的动态性,也会有重复代码的存在,我觉得与代码生成不冲突,ls哪位说的,做java的都有过做生成的冲动,不错,以前大都是写脚本,啪啦啪啦一执行,代码出来了,耦和框架比较紧密,不具有通用性。耦和框架紧密也是无可奈何的事,引用sybase亚洲高管一句话:“代码生成目前在美国大学或学术届仍还是研究课题”。当然这里指的必然不是我们说的如此简要的代码生成...这是一个方向...我们现在所有的最优意义的事还是在自己的公司里结合好自己的业务,应用好代码生成,框架级的重构是公司短时不能接受的,在基本稳定的框架下,耦和框架的代码生成还是有一定意义的。
当然,代码生成不局限于形式,有无UI均可,有UI的话cs/bs都可有自己的实现方式,不过BS可能实现更为复杂要结合RIA来做,总之还是看精力和有无必要来实现UI,我建议还是适度原则...关键还在于通用性,要解耦,要升级为平台...试问这样的实现有哪位同仁正在致力于吗? |
|
返回顶楼 | |
发表时间:2008-03-05
期待lz开源
|
|
返回顶楼 | |
发表时间:2008-03-05
代码生器的思路是好的,我们公司用的是基于模型驱动的代码生成器,自己规定了一套比较简单的描述语言,以列表为例,描述显示哪些例,如何排序等等,生成器进行解析,然后生成.
大约能够提高4倍的工作效率,稳定性能提高10倍左右. 在人员方面,要求大大降低,以前,刚刚参加工作的程序员,是肯定做不出来的,而现在,只要了解一点数据库,了解了业务就可以描述模型,就可以生成非常漂亮的界面,其中包括异常,校验等,都已经包括了,所以用起来非常非常方便. 代码生成这一块主要在表单和展现这一块,再配合上工作流,配合上报表,基本上可以搞定大部分的mis项目. 后来,我总结了一下,用我们的模型驱动的代码生成器,其实就是在特定的环节开放,进行控制,不让你随便编程,要做一件事情,就要按照一个模式去做,最终,统一了代码风格,而且我觉得,一次性的代码生成器,不如反复使用的代码生成器好用,生成的代码如果手工改动以后,是非常麻烦的事情. |
|
返回顶楼 | |
发表时间:2008-03-05
Ibatis提供了这样的工具包的: Abator.
它可以以数据表为起点生成相应的POJO, DAO, 和SQL MAP. 官网: http://ibatis.apache.org/tools.html 个人用过后感觉良好. 推荐下. |
|
返回顶楼 | |
发表时间:2008-03-05
我也做过类似的工具,可以说这种工具非常有用的.
对于一个简单的增删改查模块,确实能减少很多的时间. 有例子为证,我做的一个产品,只用了短短两个月时间.功能还是很多的. 为了避免广告嫌疑,不贴出演示地址. 我和楼主的思路大致类似,从powerdesign中读取数据,通过模板文件,生成jsp,action,manager,配置文件. 一些JS验证也可以完成的.因为,大多数的模块功能基本相同,只是字段不同而已. 即便是资源文件,也可以很容易生成. |
|
返回顶楼 | |
发表时间:2008-03-06
如果你认为企业应用就是面向数据库的CRUD,如果你认为设计的成果就是建一些数据库表,那就做你的代码生成器吧。
|
|
返回顶楼 | |
发表时间:2008-03-06
esk_erp 写道 我也做过类似的工具,可以说这种工具非常有用的.
对于一个简单的增删改查模块,确实能减少很多的时间. 有例子为证,我做的一个产品,只用了短短两个月时间.功能还是很多的. 为了避免广告嫌疑,不贴出演示地址. 我和楼主的思路大致类似,从powerdesign中读取数据,通过模板文件,生成jsp,action,manager,配置文件. 一些JS验证也可以完成的.因为,大多数的模块功能基本相同,只是字段不同而已. 即便是资源文件,也可以很容易生成. 类似这种量产的项目,就好像把以前的拿过来改改然后再卖个价钱。如果你们的工作都是做这种事情我也无话可说。 |
|
返回顶楼 | |
发表时间:2008-03-06
对代码生成不感兴趣
本身比较厌烦垃圾代码和重复代码,代码生成产生的代码基本上是垃圾代码和重复代码。 更喜欢通用与重用的代码 比较支持eivenchan的作法 |
|
返回顶楼 | |
发表时间:2008-03-06
abcx 写道 如果你认为企业应用就是面向数据库的CRUD,如果你认为设计的成果就是建一些数据库表,那就做你的代码生成器吧。
呵呵,只是建表? 我还真没见过这么简单的所谓代码生成器? 从另一个角度来说,很多Eclipse Plugin就是代码生成器,它有一套完整的UI体系和模板功能!这些也是所谓的“垃圾”吗? 另外,我并不认为所谓的“企业级”的应用逻辑有多么复杂,诸如银行、电信系统,大多功能模块是做管理维护,只有一些核心处理模块,才需要非常严密的逻辑处理,如业务流程的自动化,规则的自动匹配,分析统计等等 要指出的是,代码生成器生成的代码并不意味是重复代码! |
|
返回顶楼 | |
发表时间:2008-03-06
反对代码生成的同学,请理解什么是“脚手架”,顺便看看ROR
|
|
返回顶楼 | |