关于 Github 上一个流行的 Go 模版采用 DDD 项目组织方式

2020-12-14 15:02:45 +08:00
 Philippa

项目地址: https://github.com/golang-standards/project-layout

最近有开一个 Go 项目的需求,虽然 DDD 已经很久了,但看到项目的结构组织方式其实有点无从上手。关于这个,有一个 YouTube 演讲视频几年前也提到了: https://www.youtube.com/watch?v=oL6JBUk6tj0

视频里包含了一个简单的例子和一些解释。看起来咋挺有道理的,但这种抽象和缺乏明确边界的概念性描述是无法说清楚 DDD 本身是什么的。DDD 里面提到不同的领域有“非常明确的边界”,但我觉得它有点自相矛盾,因为它本身的描述就缺乏“非常明确的边界”。与可以量化 /或有明确流程图的 MVC 不同,DDD 有多个概念,稍微深入想想就发现很多概念上的重叠。把 DDD 看成 “思维模式” 是没错,但动手之前需要的还是 “标准化”。

为此我上网寻找了一遍 Go Web 项目的 DDD boilerplate,基本上也是各有各的风格。与上面项目近 2 万个的 stars 相比,实际发现的项目完全不在一个数量级。所以看得有点无所适从。因为即使我自己按照自己的理解构建了项目,我也无法保证能向我的同事解释清楚。不知道各位是如何组织自己的项目的?

1842 次点击
所在节点    Go 编程语言
2 条回复
baiyi
2020-12-14 15:20:55 +08:00
Bilibili 的 Go 语言工程化实践 https://time.geekbang.org/dailylesson/detail/100040852

有关于项目组织布局的方式,但没有提到 DDD,可以参考一下
crclz
2020-12-14 15:21:33 +08:00
先学会 C#/java 怎么 DDD,你就知道 go 怎么 DDD 了 https://github.com/dotnet-architecture/eShopOnContainers

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

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

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

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

© 2021 V2EX