项目地址: 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 相比,实际发现的项目完全不在一个数量级。所以看得有点无所适从。因为即使我自己按照自己的理解构建了项目,我也无法保证能向我的同事解释清楚。不知道各位是如何组织自己的项目的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.