090723 T Code Generate 的思考

简介: 今天看了公司(易车)原来团队开发的部分项目的代码,发现很多项目是基于Typed DataSet或NetTiers的,两者都是代码生成器(Code Generator,以下简称CG),前者是VS自带的工具,而后者则是第三方开发,同样的还有CodeSmith、动软等。

今天看了公司(易车)原来团队开发的部分项目的代码,发现很多项目是基于Typed DataSet或NetTiers的,两者都是代码生成器(Code Generator,以下简称CG),前者是VS自带的工具,而后者则是第三方开发,同样的还有CodeSmith、动软等。这些CG的输入/信息来源,大都是数据库中的元数据。

其实,我个人也开发过CG。
第一个是在上海外高桥实习时用于转换C语言到C#语言的转换器。
另一个则是配合hxy.LayersFramework框架的生成器,其输入主要来自于LINQTOSQL根据数据库元数据生成的源代码,输出则是该框架对应的实体类、管理类、数据访问层等。其生成的代码与一般的CG生成的代码的用途还有些区别:这些代码只在一开始时生成一遍,然后手工在上面定义新的内容。而上面的CG生成的代码一般不允许修改,也不能添加内容。因为一旦这样后,再生成时,会丢失这些更改。

所以,我并没有去开发一款适合大众使用的CG,如类似于Code Smith的。因为其实代码CG的作用是帮助开发人员编写重复而乏味的代码。而这类代码在各个应用程序下可能会各不相同。这时,很可能需要开发一个适应此情况的CG。
例如,我目前的开发模式习惯使用UML来对Model关系建模,然后使用C#语言编写接口定义具体的模型。大部分情况下,这些接口都会直接映射到数据表中去,这时,我需要的应该是这样一个CG:对应一个C#接口源代码或文件的输入,可能需要输出对应的表的创建语句sql、实现这个接口的类、类的管理器……等。
当然,是否需要开发这个CG,需要对成本及收益或效果进行估算。

目录
相关文章
|
存储 编解码 监控
G-Code 详解
玩过一段时间3D打印机的朋友,都会接触到G-code文件。所谓G-code文件, 指的是3D模型在进入3D打印机实际打印之前,必须要经过切片器处理而成的一种中间格式文件。
4898 0
|
Linux C++ iOS开发
VS Code 使用
作为一款开箱即用的产物,尽量不做过多额外配置。
205 0
VS Code 使用
|
JSON Java 程序员
code S: code style & code standard
关于代码风格与代码规范的二三事
343 0
|
移动开发 前端开发 程序员
CODE大全
我本人自己是个程序猿,在这个互联网时代,我除了工作,业余时间都在自己的博客上编写文章,我以写博客文章赚点零花钱。这是一篇软文,主要用来推广一下我的第二个网站:CODE大全。说实话,我的文笔很水,从小写作文,到现在没有得过高分。也不知道从何处开始介绍 CODE大全 。CODE大全主要包含以下几个板块博客栏目:www.codedq.net其中博客栏目包括,首页,编程语言,WEB前端,数据库,架构设
1766 1
|
人工智能 开发工具 git
Code Craft
代码篇 如果要随机产生一个a到b(包括a和b)之间的整数,可以使用下面的公式: int num = (int)( Math.random() * ( b – a + 1 )) + a; // 随机产生一个a到b(包括a和b)之间的整...
1233 0
openBMC source code
1、fand 1)main函数 read_sysfs_int("/sys/bus/i2c/drivers/cmmcpld/13-003e/slotid", &sysfs_value) write_fan_speed(fan + fan_offset, fan_speed) write_fan_le...
2641 0
|
PHP 开发工具
|
PHP 开发工具

热门文章

最新文章

下一篇
开通oss服务