我想请问下大家在做go项目开发的时候目录结构一般是怎样的呢?是分模块开发,每个模块有自己的controller、dao、entity、service层,还是统一都丢一个controller文件夹下面呢?我是从java转来自学go的,我在做java项目的时候习惯分模块化,但是go语言包名是只有一级结构,假如有system
、oa
、member
模块,Java的包名可以是
com.baidu.cms.module.system.controller
com.baidu.cms.module.system.dao
com.baidu.cms.module.system.service
但是go语言的话好像system
文件夹下面有controller
包、member
文件夹下面也有controller包,这样的话在一个go文件里面导入这些包的话只能取别名了比如
import sysCtrl "system/controller"
import memberCtrl "member/controller"
golang没有固定的项目layout, 只有合适自己项目的,就是最好的.
controller
,controller
可以操作数据库model
, 给controller
调用service
service
无法满足 前后端 , 数据组装等问题, 你可以再加一层转门的transform
层关于导入. 楼主你使用导入的方式不是推荐的方式. 建议看下
go mod
,并且使用全路劲导入包.
比如上述例子中
cmd/server
想调用internal/http
包,并且go mod
初始化的包名为example.com/app
那么应该是: