不同语言的项目结构都不太一样的,就像 MVC 并不是 Java 的专属,但是现在提到 MVC 大家都会提到 Java ,从而到 spring/spring Boot 。
这里推荐一个项目结构,它并不是 golang 官方的标准,再加上阿里的 Java 开发手册,如下所示:
- cmd: 主要是各种功能的入口,简单来说像 main.go 就可以放到这里。
-
internal(内包是不希望其他人在其应用程序或库中导入代码)
- db: 数据库相关的配置。
- dao: 和数据库交互的都可以放在这里,我把 CRUD 之类的都放在这里了。
- model: 和数据库表对应。
- service: 具体逻辑实现。
- dto: 放一些和前端交互的参数
- controller: 做一些校验。
- pkg: 外部应用程序可以使用的库代码,其他项目会导入这些库。
- vendor: 这里就根据版本来了,一些老的 golang 项目还会有,存放一些第三方库,到后来 go mod 的出现这个就不需要有了。
像 internal 这种就可以根据自己的需求来,我是参考了阿里的 Java 开发手册还有之前在上海实习的时候的项目结构。
这是我写的博客中一部分,附上博客链接( https://shuimo03.github.io/)