golang开发 rpc 应用时,对于rpc服务的目录结构如何合理规划

对于rpc服务端开发时,生成的.pb.go文件,除了服务端使用,客户端也要使用这个文件,这个文件放在什么位置才是比较合理?有无参考的目录结构?

阅读 213
评论
    3 个回答

    仅供参考:
    projectname
    ├── common
    │   ├── proto
    │   │   ├── xxx
    │   │   │   ├── xxx.pb.go
    │   │   │   └── xxx.proto
    │   │   ├── yyy
    │   │   │   ├── yyy.pb.go
    │   │   │   └── yyy.proto
    │   │   ├── zzz
    │   │   │   ├── zzz.pb.go
    │   │   │   └── zzz.proto
    ├── go.mod
    ├── go.sum
    ├── client
    │   ├── grpc
    │   │   ├── client.go
    │   │   └── server.go
    │   ├── alert
    │   │   ├── alert.go
    │   │   └── alert_test.go
    │   └── main.go
    ├── server
    │   ├── alert
    │   │   ├── alert.go
    │   ├── grpc
    │   │   ├── client.go
    │   │   └── server.go
    │   └── main.go

    将所有公共功能,比如proto的定义放到common中,在项目中引用时:
    import (
    "projectname/common/proto/xxx"
    "projectname/common/proto/yyy"
    "projectname/common/proto/zzz"
    )

    go.mod中:

    module projectname
    go 1.14
    require (
       github.com/... v1.5.0         //仅供参考
    )