codecamp

GoFrame 工程开发设计-数据模型与业务模型

一、数据模型

数据模型又叫做实体模型,主要是来自于底层持久化数据库的数据结构,例如:​MySQL​、​Redis​、​MongoDB​、​Kafka​等等。这部分数据结构是由第三方系统维护的,可以通过工具对其集合数据结构进行识别,并自动生化成对应的程序数据模型代码。这部分数据模型的代码位于​/internal/model/entity​目录下。开发者不需要手动在程序中维护数据模型,在​GoFrame​框架规范中,数据模型统一使用​CLI​工具统一维护,代码自动生成。

image2021-12-20_0-37-25

数据模型示例

二、业务模型

业务模型主要包含两类:接口输入/输出模型 与 业务输入/输出模型,由​model​模型层统一管理。

接口输入/输出模型

接口输入/输出模型用于系统/服务间的接口交互,通常被​api​接口层(​handler​)调用。在​GoFrame​框架规范中,这部分输出输出模型名称以​XxxReq​和​XxxRes​格式命名。

image2021-12-20_0-41-42

接口输入模型示例

业务输入/输出模型

业务输入/输出模型用于进程内部模块/组件之间的方法调用交互,特别是​api->service​或者​service->service​之间的调用。在​GoFrame​框架规范中,这部分输出输出模型名称以​XxxInput​和​XxxOutput​格式命名。

image2021-12-20_0-44-32

业务输入模型与业务输出模型示例

特殊的业务模型DO

在​GoFrame​有一类特殊的业务模型​DO​,介于业务模型与数据模型之间,主要用于结合框架强大的​ORM​组件大大简便​DAO​数据访问操作。

image2021-12-20_0-51-13

DO​主要用于​DAO​数据访问操作

三、其他模型

上面我们讲到的都是由​model​模型层维护的公共模型,但部分场景下还存在内部私有的模型,用于模块内部调用,不对外公开。


GoFrame DAO对象封装设计-工程封装设计
GoFrame 框架设计-全链路跟踪设计
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GoFrame 核心组件

GoFrame 核心组件-数据库ORM

GoFrame 模块列表

GoFrame 模块列表-单元测试

GoFrame 模块列表-功能调试

GoFrame WEB服务开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }