Continuous integration 持续集成和大型架构更改。如何处理?

Continuous integration 持续集成和大型架构更改。如何处理?,continuous-integration,workflow,Continuous Integration,Workflow,我读的是《试图理解如何与从事项目多个分支的多个开发人员协作》一书。我的第一反应是希望Jenkins为每个分支运行一个单独的构建,但据我所知,这是解决问题的一个糟糕方法 现在,我明白了,拥有非常小的特性或特性的一部分并回到主分支通常是首选的方式,但我不能完全理解当一个项目经历一个非常大的架构更改时会发生什么 假设我有一个用AngularJS编写的web项目,团队决定为了项目的未来,它需要改为使用ReactJS。他说,目前的项目将有合理数量的功能已经实施和测试。在这一点上,我无法想象使用ReactJ

我读的是《试图理解如何与从事项目多个分支的多个开发人员协作》一书。我的第一反应是希望Jenkins为每个分支运行一个单独的构建,但据我所知,这是解决问题的一个糟糕方法

现在,我明白了,拥有非常小的特性或特性的一部分并回到主分支通常是首选的方式,但我不能完全理解当一个项目经历一个非常大的架构更改时会发生什么

假设我有一个用AngularJS编写的web项目,团队决定为了项目的未来,它需要改为使用ReactJS。他说,目前的项目将有合理数量的功能已经实施和测试。在这一点上,我无法想象使用ReactJS的新特性会有任何更小的增量,除了让它与项目的当前状态保持一致,这意味着当前通过的每个测试在完成后都应该通过。其他任何事情都将意味着项目的倒退,我知道很少有客户对此表示满意。然而,在切换几乎100%完成之前,情况几乎不会如此,这将不是一个小工作量

我可能不完全理解这个概念,但我看不到功能切换在这里起作用,特别是如果迁移到ReactJS需要我们修改GrunFile,比如说,因为这将不可避免地破坏很多东西。进行迁移的团队是否只需要告诉团队的其他成员在他们说可以之前不要接触项目?对我来说,这似乎是一个奇怪的解决方案


所以我承认,我不知道这里应该有什么合适的工作流程。任何意见都将受到欢迎,因为我一直在努力改进我们的开发过程,即使我在该领域的经验有限。

功能切换意味着双向操作,并且能够在两者之间切换。这就是你想要的吗?当你说增量时,你是指迭代,就像在scrum或其他敏捷方法中一样?我想你要寻找的是一个新的分支。它永远不会合并到原来的分支中。相反,新的分支将在某一点上成为主要分支。所谓增量,我指的是一个较小的功能,它是最终功能的一部分。管理面板就是一个例子:登录表单是该功能的一小部分,添加用户则是另一部分。一直以来,直到我们有一个功能齐全的管理面板,这样我们总是有一个小交付。我肯定我搞砸了,增量不是我要找的词,但英语不是我的母语,我想不出更好的词来解释这一点。至于新的分支,这也是我在想的,但是旧体系结构中添加的新功能呢?现在这一切都是理论上的,但我想就我们当前团队的工作流程向自己提出挑战。我在考虑这样一个场景:当我们重写他的应用程序时,客户仍然需要更新他的产品,因为他仍然在积极地使用它。