我想知道大型开发团队是如何做到这一点的,而他们都是在一个项目上工作的。
备选方案有:
基本上,我想知道结构和工作流是什么。
例如,用于开发web应用程序的工作流。让我们假设不需要测试。
我想知道最基本的步骤是什么:每个人都登录并提交更改的虚拟机,或者虚拟机在每个开发人员本地驱动器上?
他们是如何在上述基础上进行更改的呢?
我并不是想要一个解决问题的方法,我只想知道在web环境下,事情是如何正确地完成的。以及如何避免合并陷阱等。
发布于 2018-02-06 11:48:28
根本不需要“云”环境。每个开发人员都应该有自己的开发环境。这可以是本地的,也可以是服务器上的,这可能是虚拟机,也可能不是虚拟机。重要的一点是,开发人员可以自己工作,而不会意外地覆盖另一个团队成员的工作。
版本控制对于协作非常重要,因为它允许将多个团队成员的更改合并在一起,而不会意外地覆盖某些内容。使用Git,基于拉请求的工作流使其他团队成员有机会在将建议的更改合并到主分支之前对其进行检查。自动化测试作为本审查的一部分被认为是最佳实践。这些自动化测试通常在某些构建服务器上运行,该服务器可能是共享服务器上的VM。构建服务器自动运行,因此开发人员除调试或管理外不应登录。
然后,可以将主分支部署到生产环境中。如果您试图进行持续部署,这种情况可能会半自动发生。因为所有更改都已作为拉请求进行了测试和检查,所以始终可以部署主分支。如果出现问题,则可以始终将主分支恢复到已知的良好状态并重新部署。
特别是对于Git,有许多工作流讨论如何精确地构造这些一般概念。它们在某些目标上有所不同,例如流行的Git流假设发布频率不高,定义良好。特别是对于webdev,以持续部署为中心的工作流可能更合适。
这些工作流的规模也不同。只要有一个团队,就不会有问题,但是多个团队在一个代码基础上协作总是比较困难的。然后,需要有一个项目经理或产品经理来协调团队之间的工作。版本控制和虚拟机都不能解决通信问题。你需要人来做这个。
https://softwareengineering.stackexchange.com/questions/365429
复制相似问题