“代码工厂”建设分析
1. 代码生成是什么?
2. 国内发展情况与趋势:
动软代码生成器是由动软卓越(北京)科技有限公司研发,软件的前身是李天平先生个人自主研发,经过长时间的完善和更新,目前已经获取《软件著作权》,官方下载量超过90万次。同时,李天平创立了动软卓越(北京)科技有限公司,公司专注于电子商务系统软件研发和系统集成服务,长期致力于企业信息系统开发、高端网站平台建设和电子商务系统解决方案、网上商城、社会化电子商务购物分享系统,移动互联手机应用开发,以及项目技术合作
是一款完全自主知识产权研发的为软件项目开发设计的自动代码生成器,也是一个软件项目智能开发平台,它可以生成基于面向对象的思想和三层架构设计的代码,结合了软件开发中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。主要实现在对应数据库中表的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、Model类构造等基础代码片断,支持不同3种架构代码生成,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑的开发。
3. 国际积分发展情况与趋势、与成功案例:
参考http://andromda.group.iteye.com/group/wiki/2045-codeGenerator:
1:CodeSmith | |
一款人气很旺国外的基于模板的dotnet代码生成器 官方网站:http://www.codesmithtools.com 官方论坛:http://forum.codesmithtools.com/default.aspx 版权形式:30天试用 开源:否 需要先注册确认后才能下载 | |
2:MyGenerator | |
MyGenerator是又一个国外很不错的代码生成工具,有人觉得比CodeSmith简单、好用。所有api可以在帮助菜单中找到。 官方网站:http://www.mygenerationsoftware.com/portal/default.aspx 官方论坛: 版权形式:免费 开源:否 下载 | |
3:NHibernate. | |
NHibernate是Hibernate公司在Java自动生成领域取得巨大成功后推出的一款ORM工具. 官方网站:http://www.hibernate.org/ 官方论坛: 版权形式:免费 开源:否 下载 |
4. 发展趋势分析:
目前基本停留在代码模版技术上,因此可生成代码的范围受限,而且模版是静态的,不能随着项目代码的优化自动优化。也就是说,模版一旦制作完毕,代码就固定了,如果项目中的代码优化了,模版也要手工修改才能保证生成的代码是最优的。
而且,项目开发中的业务逻辑相当复杂,这也就是为什么代码生成目前只能提供部分代码的原因。
因此,以后的代码生成要解决以上2个问题,对应的发展方向:
1) 模版自动生成
可以通过在代码中通过嵌入标记来自动生成模版。
具体实现参阅http://xinglijun1973.iteye.com/blog/2101532
2) 开发业务表达语言。
开发人员通过一种可以直接表达业务逻辑的类自然语言表达软件要实现的业务逻辑,系统再解释这个语言,调用对应的模版生成代码。
3) 业务表达可视化设计。
提供一个可视化设计环境,允许开发人员使用图形化工具表达业务,系统再生成对应代码。
1 目的:
1) 建设代码模版库,部分代码可由模版生成。
2) 不断优化模版。随着代码优化自动更新模版
3) 可以建立一个跨b/s, c/s, android, ios的开发平台,在这个平台上一次设计,生成各种平台代码。
2 意义:
1) 因为模版是提炼的优质代码,缩短开发时间,减少bug风险。
2) 减少软件开发人工成本,解决软件“用工荒”。
3) 可以对外提供代码生成外包服务
三、技术可行性分析:
代码生成涉及到几个过程:
1) 代码抽象、模版制作。将项目中成功的代码抽象为与具体项目无关的通用代码,即模版代码。这部分需要高级工程师人工方式处理。模版制作是人工的。
2) 代码生成。根据业务逻辑不同,自动组合使用大量的不同模版生成代码。需要的技术可能有:
A) 模版技术成熟的模版有 freemarker, velovity, stringtemplate。
B) 模版自动生成。
C) 文法分析。如何表达复杂的业务逻辑,并让代码生成器能够理解?可能需要开发一种业务表达语言,系统能够对这个语言进行语法分析,进而理解要表达的意思从而调用不同模版生成代码。目前可用的文法分析工具有 ANTLR(著名的hibernate的hql语言就是使用antlr开发的)等。