在处理 Xcode 缓存时,有一件事变得非常清晰:这根本上是一个深度碎片化构建系统环境中的基础设施问题。我们立即加大了对基础设施的投入,因为这是我们的护城河。但随着我们深入挖掘,显然仅靠基础设施是不够的。我们也需要以不同的方式进行软件开发。多年来,许多公司一直在为 Bazel 这样做,那么我们有什么不同之处呢? 当我们环顾四周时,出现了两个模式,这些模式塑造了我们的思维。首先,越来越多的构建系统正在采用缓存功能。我们生产代码的速度和数量不断增加,缓存不再是可选的,而是必需的。其次,没有标准化。构建系统的碎片化必然会导致服务的碎片化。每个构建系统一个缓存服务。每个工具一个基础设施。相同的问题以略微不同的方式一次又一次地被解决。 在 Tuist,我们本可以为 Xcode 解决这个问题,然后就此结束。但如果我们构建一些更基础的东西呢?如果我们在构建系统的世界和缓存基础设施的世界之间创建一个狭窄的腰带呢?一个让任何构建系统都能与任何缓存后端对话的层,而不是再构建另一个垂直解决方案。 我开始对这个想法进行尝试,我相信这是前进的方向。我们正在构建作为服务的构建系统基础设施的基础。不再是每个构建系统一个服务,而是一个跨所有构建系统都能工作的解决方案。我们开发、维护并提供作为托管服务的东西,任何团队都可以使用,无论他们的构建工具是什么。 是的,我们刚刚开始基础设施的工作。我们的愿景是将其尽可能靠近开发人员、代理和 CI 管道实际工作的边缘。我们行业中的碎片化问题是真实存在的,我们正在构建解决它的基础设施。