主干开发:为什么你应该停止使用特性分支
内容提要
主干开发(TBD)是一种开发工作流程,开发者在同一主分支上频繁集成更改,以减少合并冲突。与特性分支相比,TBD促进团队协作,简化持续集成和交付,提供更快的反馈循环。谷歌和Facebook等行业领袖已采用TBD,数据显示,使用TBD的团队在开发速度和可靠性上表现更佳。
延伸解读
特性分支的适用场景与局限
特性分支并非一无是处。文章指出,在特定场景下,如某些移动应用开发,由于发布速度受应用商店限制,特性分支仍有其价值。然而,对于大多数追求快速交付的团队,长期存在的特性分支会导致代码库孤立,阻碍协作,并几乎必然引发合并冲突。因此,选择工作流时需权衡团队的具体需求和发布节奏。
TBD 与 CI/CD 的协同效应
主干开发与持续集成/持续交付(CI/CD)相辅相成。TBD 要求开发者频繁提交到主干,确保代码库始终处于最新状态,这为 CI 提供了便利。同时,TBD 要求主干保持可部署状态,这与 CD 的目标高度一致。这种协同作用使得团队能够更快地获得用户反馈,并持续交付高质量软件。
行业数据揭示的趋势
文章引用数据表明,基于主干的拉取请求(PR)在合并时间上比其他合并基础的 PR 减少了近 10 小时。此外,2021 年谷歌云报告显示,达到可靠性目标的精英团队使用 TBD 的可能性是低绩效团队的 2.3 倍。这些数据印证了 TBD 在提升开发速度和可靠性方面的实际效果,也解释了为何谷歌、Facebook 等公司长期采用 TBD。
采用 TBD 的潜在挑战
转向主干开发并非没有挑战。文章提到,采用 TBD 可能需要改变旧的开发习惯和思维方式,尤其是对于习惯了长期特性分支的团队。此外,TBD 鼓励使用功能开关和定期重构等实践,这些都需要团队具备相应的技术能力和纪律。因此,在引入 TBD 时,团队应做好文化和流程上的准备,逐步过渡。
Q&A
什么是主干开发(TBD)?
主干开发(TBD)是一种开发工作流程,开发者在同一主分支上频繁集成更改,以简化合并过程并减少冲突。
主干开发与特性分支有什么区别?
主干开发促进团队协作和频繁集成,而特性分支则可能导致代码孤岛和合并冲突。
采用主干开发的好处有哪些?
主干开发的好处包括减少合并冲突、简化持续集成、加快反馈循环和促进团队文化。
主干开发如何提高开发速度?
主干开发通过减少PR的合并时间,数据显示基于主干的PR比其他合并基础的PR减少近10小时的合并时间。
哪些公司已经采用了主干开发?
谷歌和Facebook等行业领袖已经采用主干开发,并从中获得了显著的优势。
实施主干开发需要改变哪些开发习惯?
实施主干开发可能需要改变旧的开发习惯,如减少长时间的特性分支使用,促进频繁的代码集成。