至于multi-repo直接采用前面的layout即可,但是对于mono-repo确可以有两种选择

  1. 将共同部分抽取到根目录下, 不同的代码放在internal中
  2. 将公共代码比如pkg代码放在根目录下,cmd等都放在不同的服务中

两种都可以,看个人喜好,课程采用第一种

/api 存放proto文件和生成的代码
/app 存放各个微服务,包括grpc服务和http服务 : 大量逻辑在这里,这里是重点目录,后期各个服务单独重构的时候讲解具体的原因
/goods 存放商品服务
/srv service服务
/mxshop
/admin 后台管理系统的服务
/apiserver 整个电商项目的服务
/configs 保存各个服务的yaml配置文件
/cmd 保存各个服务的启动main启动源码
/build 保存docker部署文件和shell启动脚本
/logs 保存各个服务的日志文件
/pkg 保存所有微服务的公共代码
/third_party 第三方源码,可以存放第三方的proto源码,克隆下来的第三方源码等
/tools 存放一些工具源码