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,需要对成本及收益或效果进行估算。

目录
相关文章
|
5月前
|
搜索推荐 前端开发 JavaScript
通义灵码深度测评报告
通义灵码是阿里云推出的智能编程平台,基于Qwen3大模型与MCP服务生态,重新定义现代软件开发范式。本文测评聚焦其四大核心功能:编程智能体(自主决策开发)、MCP工具生态(加速开发流程)、记忆感知(个性化体验)及深度开发能力(智能推荐与解释)。实测数据显示,相比传统开发,效率显著提升,如API开发提速300%。展望应用场景包括低代码开发、DevOps自动化及教育领域等。总结建议增强多语言支持、优化复杂逻辑并建立开发者社区知识库。
|
存储 SQL 安全
一文读懂 Mysql MVCC
MVCC(Multi-Version Concurrency Control)是一种**多版本并发控制**技术,常用于数据库管理系统中,用于支持事务的并发执行。MVCC 技术可以在读取数据时不产生锁,同时保证数据的一致性。具体来说,MVCC 技术会在每个数据行上保存多个版本的数据,每个版本都有一个时间戳,当一个事务需要读取数据时,会根据该事务的时间戳选择合适的数据版本进行读取,从而避免了读取数据时的锁定操作。同时,MVCC 技术还可以通过回滚日志和垃圾回收机制来保证数据的一致性和完整性。MVCC 技术在 InnoDB 存储引擎中得到了广泛的应用,成为了 InnoDB 存储引擎的一个重要特性
1246 1
一文读懂 Mysql MVCC
|
存储 小程序 前端开发
微信小程序实战(springboot后端项目搭建)
微信小程序实战(springboot后端项目搭建)
1711 0
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
590 212
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
234 138
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
828 60