Me gustaría saber si tiene sentido dividir el proyecto en el que estoy trabajando en dos repositorios en lugar de uno.
Por lo que puedo decir:
- Frontend se escribirá en html + js
- Backend en .net
- El backend no depende del frontend y el frontend no depende del backend
- El frontend utilizará una API de descanso implementada en el backend.
- El frontend podría estar alojado en cualquier servidor http estático.
A partir de ahora, el repositorio tiene esta estructura:
raíz:
- Interfaz/*
- backend / *
Creo que es un error mantener ambos proyectos en el mismo repositorio. Dado que ambos proyectos no tienen dependencias entre sí, deben pertenecer a repositorios individuales y, si es necesario, a un repositorio principal que tenga submódulos.
Me han dicho que no tiene sentido y que no obtendremos ningún beneficio al hacerlo.
Estos son algunos de mis argumentos:
- Tenemos dos módulos que no dependen entre sí.
- Tener el historial de origen de ambos proyectos a largo plazo puede complicar las cosas (intente buscar en el historial algo en la interfaz mientras tiene la mitad de las confirmaciones que no están relacionadas con el error que está buscando)
- Conflicto y fusión (Esto no debería suceder, pero tener a alguien empujando al backend obligará a otro desarrollador a hacer cambios en el backend para impulsar los cambios frontend).
- Un desarrollador puede trabajar solo en el backend, pero siempre tendrá que tirar de la interfaz o al revés.
- A la larga, cuándo será el momento de la implementación. De alguna manera, la interfaz podría implementarse en múltiples servidores estáticos mientras se tiene un servidor de fondo. En todos los casos, las personas se verán obligadas a clonar todo el backend con él o a crear un script personalizado para enviar a todos los servidores solo el front-end o eliminar el back-end. Es más fácil empujar / jalar solo el frontend o backend que ambos si solo se necesita uno
- Contraargumento (una persona puede trabajar en ambos proyectos), cree un tercer repositorio con submódulo y desarrolle con él. El historial se mantiene separado en módulos individuales y siempre se pueden crear etiquetas donde la versión de backend / frontend realmente funciona en sincronía. Tener ambos frontend / backend juntos en un repositorio no significa que trabajarán juntos. Es solo fusionar la historia en un gran repositorio.
- Tener frontend / backend como submódulos facilitará las cosas si desea agregar un profesional independiente al proyecto. En algunos casos, realmente no desea dar acceso completo a la base de código. Tener un gran módulo hará las cosas más difíciles si desea restringir lo que los "extraños" pueden ver / editar.
- Introducción y corrección de errores, inserté un nuevo error en la interfaz. Entonces alguien arregla un error en el backend Con un repositorio, retroceder antes del nuevo error también revertirá el backend, lo que podría dificultar la reparación. Tendría que clonar el backend en una carpeta diferente para que el backend funcione mientras se soluciona el error en la interfaz ... luego tratar de reactivar las cosas ... Tener dos repositorios será sencillo porque mover el HEAD de un repositorio ganó No cambies el otro. Y probar contra diferentes versiones de backend será indoloro.
¿Puede alguien darme más argumentos para convencerlos o al menos decirme por qué no tiene sentido (más complicado) dividir el proyecto en dos submódulos? El proyecto es nuevo y la base de código tiene un par de días de antigüedad, por lo que no es demasiado pronto para solucionarlo.