多用户

支持多个用户同时使用一个 Wide 服务器,每个用户有自己独立的源代码仓库,编码/运行/调式都是在自己的工作空间中进行,不会影响其他用户。

工作空间

一个工作空间由下面几个部分组成:

这和 golang 本身 workspaces 的设计保持一致:每个用户的 GOPATH 指定了其工作空间的路径。

版本控制

使用 git 作为源码版本控制系统,data/workspace/src 是主库,每个用户的源码仓库都克隆自主库。

运行时

用户在运行程序时进程是跑在服务器上的,所以多用户同时运行程序时最常见的问题就是资源冲突(比如网络端口),目前这个问题只能靠用户自行规避。

一些细节

GOPATH

用户的工作空间虽然是某个具体的目录(data/user_workspaces/{user}),但实际上 Wide 在处理 GOPATH 时是指定了多个目录的:

  1. data/user_workspaces/{user}
  2. data/workspace
  3. 操作系统环境变量 GOPATH 路径

这样做是为了方便构建,非常有利于团队开发。