一、基本介绍
我们都知道,开发业务项目离不开数据库操作组件的使用,数据库是绝大部分业务项目的核心,这也是"CRUD工程师"戏称的由来。业务项目在进行数据库操作时,比较 low
的方式是直接 Open/New
然后各种 SQL
字符串操作一把梭。稍微正常一点的项目可能会考虑物色或者自己封装一层ORM抽象,提高CRUD效率,降低数据操作风险。再严谨一点的项目可能会在项目工程管理上考虑下,再进一步增加 DAO/DTO/VO
之类的设计模式和概念。
信息时代,数据是十分重要的,数据操作是十分敏感的,因此 GoFrame
框架对于数据操作管理的工程化思路是严谨的。我们提供了必要的ORM抽象、必要的DAO封装、必要的工程化规范约束。同时,我们并不会采用八股文设计,而是依旧保持简便、灵活、易扩展的工程设计思路。
二、工程化痛点
在一些严谨的业务项目中,已经有了 ORM&DAO
抽象、并且项目已有初步工程化设计的前提,依旧存在以下常见的痛点。
1、数据集合与代码结构不同步
当在代码中手动维护数据集合对应的数据结构时,这个坑就算挖好了,就看后面谁掉进去了。
2、数据模型与业务模型模糊不清
混淆了数据模型与业务的职责,并将数据模型与业务逻辑、接口定义形成了耦合,耦合越大,相关方法、接口维护的成本越高,对数据模型改动产生的风险也越大。常见痛点:
- 在
model
中既有业务相关的数据结构(业务模型),又有数据集合对应的数据结构(数据模型),如何高效隔离和管理呢? - 在业务流程中,将数据模型当做业务流程的 输入参数 使用。甚至,将数据模型直接嵌入到API接口输入数据结构定义中(总是想法设法将数据模型用到业务模型中)。