golang service 与 model 最佳实践是什么

249 天前
 awanganddong
service  与 model 大家都是用的
想请问下大家

1665 次点击
所在节点    Go 编程语言
8 条回复
rahuahua
249 天前
可以看看 kratos 框架
qloog
248 天前
我的分层是这样的:

handler -> service -> dao/repository -> model

handler: 负责接收数据、校验数据、调用逻辑层(service), 返回数据
service:负责逻辑编排,不会操作数据库、api 之类的
dao/repo: 数据调用层,不管是 三方接口、db 、cache 、MongoDB 、ES 等都在这里
model: db 层,仅有数据表结构体和表名的定义

可以参考: https://github.com/go-microservice/moment-service
greenhandlwh
247 天前
同想知道~ 写 go 以来一直是自由发挥,项目逻辑分层都不清晰。有什么好的开源项目学习吗?
awanganddong
246 天前
@qloog 你发的代码连接地址我看了。增加了 repo 层,我看看 kratos 框架。
awanganddong
246 天前
@rahuahua Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具。 我刚看了下项目结构,和我需要的不太相符。
MidGap
246 天前
怎么爽怎么写
afxcn
231 天前
我们是 route -> controller -> proxy -> contract -> repository

model 用来传递数据,除了 route ,其它层都会用到它。
windcode
160 天前
我遇到过和你一样的问题,如何更好的组织数据访问层和核心领域模型的代码。
相比 Java 构建的系统,代码组织方式、分层等最佳实践已经固化在 Sprint Boot 、Sofa Boot 等框架中,Golang 缺乏这种标准化的最佳实践。
这个时候我想到领域驱动设计( DDD ),结合 DDD 中的思想组织代码结构。
最终我在项目中抽象了这三层:仓储层 => 领域层 => 表现层,基本上可以解决中小型项目的代码组织问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1026140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX