先说一个有意思的细节:这次版本迭代的所有代码,都是由AI编程工具自动生成的。特别鸣谢Claude Code、GitHub Copilot和Codex——它们确实帮了大忙。
关于zorm:一个轻量级、零依赖的Go ORM框架
zorm是一个Go语言编写的轻量级ORM框架,它的核心竞争力之一,就是没有任何第三方依赖。这在Go生态里算是一股清流——原生支持零侵入式分布式事务,同时兼容了达梦、金仓、神通、南通、TDengine、MySQL、PostgreSQL、Oracle、SQL Server、SQLite、DB2、ClickHouse等主流数据库。可以说,主流和非主流的数据库,基本一网打尽。
它的设计理念很明确:
- 基于标准原生SQL,上手门槛低,执行效率反而更高
- 内置了高效的代码生成器,能大幅减少重复劳动
- 核心逻辑非常精炼——主框架仅约3000行,全栈零依赖版本也才约5000行。注释详尽,方便深度定制和二次开发
- 原生支持事务传播机制——说起这个,其实正是zorm项目当初立项的核心驱动力
- 全面适配MySQL、PostgreSQL、Oracle、SQL Server、SQLite、DB2,以及国产数据库:达梦(dm)、金仓(kingbase)、神通(shentong)、南通(gbase),还支持TDengine与ClickHouse
- 支持多数据源配置及读写分离架构,这在生产环境中非常实用
- 有一个主动设计上的取舍:暂不支持联合主键,采用的是“视作无主键”方案,由业务层灵活处理。这属于有意为之的简化
- 可以无缝集成seata-go、hptx、dbpack,实现全局事务托管。关键在于——无需改动现有业务逻辑,真正做到零侵入式分布式事务
- 针对ClickHouse场景,UPDATE与DELETE操作严格遵循SQL92标准语法,保证兼容性
本次更新亮点
这次迭代有几个值得关注的变化:
- 全流程AI Coding驱动的性能深度优化——说白了,这次很多优化思路是由AI辅助完成的
- 重构了
sqlRowsValues的实现逻辑,提升了查询结果映射的效率 - 优化了切片(slice)预分配长度策略,减少了内存重分配的开销
- 改进了字符串拼接方式与列名匹配查找算法,降低了CPU消耗
- 全面完善了使用文档与源码注释,可读性和可维护性都有了明显提升
