关于自己对 Go web 的包结构理解

2022-07-11 07:58:32 +08:00
 Cola98

不同语言的项目结构都不太一样的,就像 MVC 并不是 Java 的专属,但是现在提到 MVC 大家都会提到 Java ,从而到 spring/spring Boot 。

这里推荐一个项目结构,它并不是 golang 官方的标准,再加上阿里的 Java 开发手册,如下所示:

像 internal 这种就可以根据自己的需求来,我是参考了阿里的 Java 开发手册还有之前在上海实习的时候的项目结构。

这是我写的博客中一部分,附上博客链接( https://shuimo03.github.io/)

3733 次点击
所在节点    程序员
27 条回复
gowk
2022-07-11 17:23:45 +08:00
@blless #19
我敢说国内 90%的团队是玩不转 DDD 的,因为好多连基本的面向对象都写不好,更别提 DDD 了。
理想跟现实还是有很大差距的,就像 RESTFul API 其实是需要很好的设计去支撑的,不然到就是给自己找麻烦。
最后发现还不如 GET/POST 一把梭
dcsuibian
2022-07-11 18:03:01 +08:00
这种结构不属于 Java 的“包袱”而是财富,Java 根本没有规定要这么处理。
搞成这样的本质原因是大部分人根本不知道怎么设计一个项目的代码结构,目前的结构是优胜劣汰下来的、有成功经历、受到广泛认可的,统一的设计也促进了 Java 生态圈的发展。

但这种结构确实不适合直接拿到别的语言里,只能拿来参考。之前接触 nodejs 、python 后端的时候,按 Java 的方式写会怪怪的,不按它的写又不知道怎么组织,很头疼。
humpy
2022-07-11 18:03:14 +08:00
@blless #19 赞同,现在这种把 controller 放一块、model 放一块的组织形式,就像是公司里把所有后端放一个组、前端放一个组、产品放一个组一样,很不内聚。
Cola98
2022-07-11 19:09:43 +08:00
@charmToby 之前有想过这样,但是感觉怪怪的,表和操作写在一起了
Cola98
2022-07-11 19:13:00 +08:00
@panlatent
@dcsuibian
@dacapoday
@coolair

关于 Java 这个,确实直接搬运过来写 Go 会特别痛苦,所以之前也有考虑过是不是直接换成 Java 写算了,后期的话可能还会在修改一下。
Cola98
2022-07-11 19:13:40 +08:00
感谢各位大佬给出的建议和回答,小弟下个版本在修改修改!!
Cola98
2022-07-11 19:14:29 +08:00
@zhangzEric 后期会给补全的,有哪些感兴趣的,我优先补全,谢谢啦

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

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

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

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

© 2021 V2EX