代码生成设计文档(二)
2012-07-13 22:59
260 查看
技术选型
字符串拼接
最为基本的方式就是使用字符串拼接的方式。我们通过控制台或配置文件的方式收集领域模型的元数据,让后使用定制代码模式进行字符串拼接,最终生成代码。这种方式的缺点是显而易见的。但最致命的缺点是代码生成逻辑和代码模式搅合在一起。当模式改变时几乎无法重用。
自定义标志进行查找替换
为了使代码模式能够和生成逻辑分离开来。可以定义一套代码模式文件。从中插入特殊的标记如@EntityName然后使用将这些特殊标记使用领域模型元数据进行替换,生成代码。
这种方式能有效的将代码模式和生成逻辑区分开来。但仔细考虑它任有很多问题。最要缺点是如果代码模式中涉及到分支和循环结构就比较难以处理,甚至又要回到字符串拼接的方式。而且这种自定义标志需要编写模式的人员学习,成本较高。
使用Velocity,freemarker框架
这些框架提供了完备的标记库,非常适合基于模板的代码生成,可以方便的处理分支和循环结构,是较为理想的框架。现在基本上可以实现灵活的模式定义了。但对领域模型元数据的录入则无能为力。
借助与Eclipse IDE平台开发Plugins进行代码生成
Eclipse IDE是 Java开发人员必备的工具,提供了一个具有丰富特性的开发环境,更重要的是它允许开发任由有效的建造可以无缝集成到Eclipse平台的工具。开源的代码强大的API内建的扩展特性,为我们高质量的完成代码生成提供了良好的支持。
综上所述
代码生成工具主要采用的技术是:
Eclipse Gef
提供人机交互界面,解决元数据录入问题。
Eclipse JET解决代码模式定义及生成问题。
Eclipse JDT
解决代码编译、代码跟踪问题。
Eclipse Equinox
解决代码生成工具的可扩展问题。
现实意义
提高生产效率
指导作用
规范代码编写
减少错误发生
主要功能点
1、
提供图形化界面录入领域模型元数据。能直观的展现主要元数据及领域模型之间的联系。
2、
提供从第三方软件导入领域模型元数据的功能。目前实现从PowerDesigner及ER数据导入的功能。
3、
提供协同编辑功能,即多人集体编辑同一个问题域中的领域模型。
4、
提供JET模板定义的人机交互接口,可方便的定制或修改代码模式。
5、
提供可脱离Eclipse环境运行的RCP查看器,查看领域模型元数据。
6、
生成的代码提供预览功能;出现生成代码与项目中已存在代码有冲突时显示冲突并解决冲突的人机交互界面;提供将已生成的代码卸载的功能。
7、
支持目前主流数据库中DDL自动生成功能。
字符串拼接
最为基本的方式就是使用字符串拼接的方式。我们通过控制台或配置文件的方式收集领域模型的元数据,让后使用定制代码模式进行字符串拼接,最终生成代码。这种方式的缺点是显而易见的。但最致命的缺点是代码生成逻辑和代码模式搅合在一起。当模式改变时几乎无法重用。
自定义标志进行查找替换
为了使代码模式能够和生成逻辑分离开来。可以定义一套代码模式文件。从中插入特殊的标记如@EntityName然后使用将这些特殊标记使用领域模型元数据进行替换,生成代码。
这种方式能有效的将代码模式和生成逻辑区分开来。但仔细考虑它任有很多问题。最要缺点是如果代码模式中涉及到分支和循环结构就比较难以处理,甚至又要回到字符串拼接的方式。而且这种自定义标志需要编写模式的人员学习,成本较高。
使用Velocity,freemarker框架
这些框架提供了完备的标记库,非常适合基于模板的代码生成,可以方便的处理分支和循环结构,是较为理想的框架。现在基本上可以实现灵活的模式定义了。但对领域模型元数据的录入则无能为力。
借助与Eclipse IDE平台开发Plugins进行代码生成
Eclipse IDE是 Java开发人员必备的工具,提供了一个具有丰富特性的开发环境,更重要的是它允许开发任由有效的建造可以无缝集成到Eclipse平台的工具。开源的代码强大的API内建的扩展特性,为我们高质量的完成代码生成提供了良好的支持。
综上所述
代码生成工具主要采用的技术是:
Eclipse Gef
提供人机交互界面,解决元数据录入问题。
Eclipse JET解决代码模式定义及生成问题。
Eclipse JDT
解决代码编译、代码跟踪问题。
Eclipse Equinox
解决代码生成工具的可扩展问题。
现实意义
提高生产效率
指导作用
规范代码编写
减少错误发生
主要功能点
1、
提供图形化界面录入领域模型元数据。能直观的展现主要元数据及领域模型之间的联系。
2、
提供从第三方软件导入领域模型元数据的功能。目前实现从PowerDesigner及ER数据导入的功能。
3、
提供协同编辑功能,即多人集体编辑同一个问题域中的领域模型。
4、
提供JET模板定义的人机交互接口,可方便的定制或修改代码模式。
5、
提供可脱离Eclipse环境运行的RCP查看器,查看领域模型元数据。
6、
生成的代码提供预览功能;出现生成代码与项目中已存在代码有冲突时显示冲突并解决冲突的人机交互界面;提供将已生成的代码卸载的功能。
7、
支持目前主流数据库中DDL自动生成功能。
相关文章推荐
- 代码生成设计文档(一)
- 通过java代码生成图片、word文档、pdf文档
- 记录我开发鞋服行业供应链软件的历程<设计代码生成工具>
- PHP 自动生成帮助文档工具1.0Beta版【代码维护神器】
- [代码]Deflexion游戏,还有设计文档
- word生成文档的试验代码
- Hibernate代码生成工具 设计全攻略
- 按Sybase的PowerDesigner工具设计的数据库模型 ---> 解析生成能兼容多种数据库的相应的C#底层代码
- C#代码生成XML文档以及规范XSD
- 如何让.Net控件在设计时InitializeComponent()中不生成相关代码
- (VC++6.0 )基于单文档对话框的自动生成代码注释
- 基于Java的简单数据库设计生成工具(生成Excel文档)
- VS2005代码文档生成 :Sandcastle
- 使用PDFLib生成PDF文档,C代码实例--使用特色
- Java使用wkhtmltox实现HTML代码生成PDF文档或者图片
- Ubuntu 下使用 doxygen 生成C/C++代码文档
- 使用“代码文档对象模型”(CodeDOM) 生成源代码和可执行文件。
- VC生成word文档的部分代码
- PHP生成静态HTML文档实现代码
- 生成代码文档图—doxygen graphviz