【Go模块构建与依赖管理】07 告别 replace 泥潭:go.work 与多模块开发

部署运行你感兴趣的模型镜像

大家好,我是Tony Bai。

欢迎来到我们的专栏 《Go 模块构建与依赖管理: 从入门到精通》的第七讲。

在上一讲中,我们学习了如何使用 replace 这把“手术刀”来处理依赖关系中的“疑难杂症”。我们特别提到了它的第一个核心用途——本地开发与调试replace 允许我们将一个模块依赖重定向到本地文件系统,这在需要同时修改和联调多个模块时,似乎是唯一的选择。

但你是否觉得,这个“唯一的选择”,用起来却总是提心吊胆

你小心翼翼地在 go.mod 文件里加上 replace example.com/foo => ../foo,调试完毕后,又得万分谨慎地将它删掉。你团队的 Git 提交历史上,一定充满了类似这样的 commit message:“fix: remove replace for local debug”。

如果有一天,你忘记删了呢?CI/CD 流水线会因为找不到你本地的路径而崩溃。如果团队成员的本地目录结构和你不一样呢?那行 replace 对他来说就是一句废话。当项目复杂到需要同时联调十几个内部模块时,维护这些临时的 replace 指令,简直就是一场噩梦。

这个由临时 replace 指令构成的、脆弱又混乱的开发环境,我称之为“replace 泥潭”。

Go 团队显然也无法忍受这个泥潭。于是在 Go 1.18 版本,他们为我们带来了终极的解决方案,一个专门为多模块本地开发而生的“神器”——go.work

今天,我们将亲身体验一下深陷“replace 泥潭”的痛苦,然后,我将带你使用 go.work,一步步地爬出泥潭,走向一片坚实、清爽的开发新大陆。

go.work 简介:你的本地“工作区”

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值