Loading...
远端宿主这是一个神奇的功能,我们可以支持在调试一个模块的时候,从远端将宿主拉下来,构建整个的调试工程。而且在调试工程中,可以指定本地 Depot 中的模块为调试状态。这样我们就可以提供出来一个能力:让调试的模块选择其所在的宿主。原先的时候是先有 Demo,再有模块调试。我们可以提供一种崭新的能力,先有模块,而后有调试工程。在原先的开发模式中,我们围绕着 App 展开开发。App 工程的代码非...
组件化协同之前我们讨论过 ‘Isolated Development’ -- 孤立开发。 我们尝试从一个个独立开发者的视角来看待整体的研发过程,而当视角宏观一点,我们会发现,在这个过程中。我们的协同模式是基于语义化版本的组件。通过不断的提供、集成组件,而得到最后的产品。这种协同模式是一种,组件化的协同模式。我们通过构建 CocoaDepot 已经基本上支撑起了,研发同学进行“孤立开发“。我们...
构建系统当我们把整个应用拆解成无数 Pod 与 AppSpec 的组合之后,整个构建系统已经不同于原始的构建打包。他将变成一个多任务的过程。各个 Pod 先构建,然后再在 AppSpec 上进行构建。这个过程,会被拆解的比较琐碎。如果想构建一个构建系统,则需要几个部分:任务管理,负责任务的触发及管理任务调度,负责将任务分发到不同的执行机上执行执行机,消费任务,并进行对应的执行。在大多数的构...
二进制缓存二进制缓存主要是指构建产物缓存,通过二进制缓存功能,我们可以大幅度缩减编译时间。提效研发效率。在 Depot 里面我们会有两种类型的构建产物缓存:Pod 模块级别Application 应用级别模块级别的缓存主要是,在模块发布阶段能够将 Framework 携带发出去,同时在应用安装依赖阶段进行一定的操作,使其可以支持切换到对应的 Framework 。这里有个关键的技术决策是,除...
本地依赖图谱在发布等过程中,我们需要计算本地多个组件之间的依赖关系,以能够按照依赖图谱的方式进行发布。这里主要的问题是都有哪些组件需要参与计算过程?本地组件是需要全量参与计算的。但是只有本地组件,不引入外部组件,如果本地组件之间通过外部组件进行了间接依赖,在这种情况下无法完整的将整个依赖树绘制出来。