通信
通信流程
在软件构建过程中,不可重现性一直是困扰开发者的难题。Athens 旨在解决这一问题,其存储机制尤为关键。
空存储状态
初始状态下,Athens 代理的存储为空。
用户在此阶段发出请求时,工作方式如下图所示:
- 用户运行
go get来获取新模块。 - Go CLI 联系 Athens 代理,请求模块 M,版本 v1.0。
- Athens 代理检查其存储中是否存在此模块?不存在。
- Athens 代理从底层 VCS 下载代码并将其转换为 Go 模块格式。
- 收到所有数据后,代理将其存储到自己的存储中并提供给用户。
- 用户成功获取模块。
整个过程为同步流程。
Happy Path
此刻 Athens 代理已知晓模块 M 的 v1.0 版本,可立即将该模块提供给用户,无需再从 VCS 获取。


