Muchas respuestas sobre los sistemas de control de versiones aquí, sin embargo, creo que esta no es la parte más importante.
Los sistemas de versiones simplemente rastrean el historial, no evitan conflictos. ¡El buen proceso de desarrollo previene conflictos!
En realidad, este es un problema muy grande para muchos equipos: demasiados desarrolladores que trabajan con la base de código única y causan demasiada interferencia. Como resultado, todos se vuelven menos productivos.
- ¿Qué temas debo aprender para ser programador?
- Cómo hacer de Windows 10 un entorno de desarrollador
- ¿Puedo trabajar en un lugar con muchos ingenieros a la edad de 15 años?
- ¿Qué es un algoritmo eficiente para encontrar el número de submatrices con el mismo número de 0s y 1s?
- ¿Qué es la pila tecnológica de Faasos?
Los “conflictos” no están limitados por los “conflictos de fusión de código”. Por ejemplo, si alguien rompe la construcción y todos los demás miembros del equipo no pueden trabajar durante ese período, esto también es una especie de “conflicto”.
Algunas reglas simples a seguir:
- Divide la base de código en pequeños módulos. Asigne personas a los módulos, de modo que solo un desarrollador cambie el código de un solo módulo.
- Los módulos proporcionan API y dependen de la API de los demás. Esa API debe ser compatible con versiones anteriores. Si necesita cambiar el comportamiento de un método, no modifique el método existente, agregue uno nuevo. De lo contrario, sus compañeros de equipo necesitarán ajustar sus módulos en consecuencia de inmediato.
- Mantenga los módulos lo más independientes posible: debería poder desarrollar, probar, construir y liberar su módulo incluso si ningún otro módulo funciona.
Por supuesto, estas son condiciones ideales y, en el caso real, siempre tendrá que comprometerse, pero la idea general sigue siendo la misma: para aumentar la escalabilidad del equipo, debe reducir el acoplamiento. Y demuestra ser la única forma de involucrar a un equipo realmente grande.