La primera respuesta a una pregunta antigua, recientemente activa , vinculada a un video que habla sobre cómo se realiza el repositorio de Google.
Una cosa interesante que se mencionó es el hecho de que todo está construido desde la fuente, sin depender de binarios. Esto ayuda a evitar problemas con las dependencias que se vuelven obsoletas pero que todavía se usan en otros proyectos, un problema que realmente encontré mucho.
¿Cómo es técnicamente posible? Si intento lo mismo en mi empresa, incluso teniendo en cuenta la gran brecha entre la escala de la base de código de mi empresa y la escala de Google, no sería posible por dos razones:
El IDE (Visual Studio) dejará de responder rápidamente, dado que sufre mucho incluso con soluciones pequeñas que contienen, por ejemplo, 50 proyectos.
Cualquier análisis estático se vería reducido por el tamaño de toda la base de código. Por ejemplo, las métricas de código o la comprobación estática de contratos de código difícilmente serían posibles (los contratos de código probablemente tomarían días o semanas).
Con la integración continua, la compilación también llevaría una gran cantidad de tiempo y destruiría los servidores tan pronto como se modificara un proyecto con muchas dependencias, lo que requeriría la recompilación de un gran árbol de proyectos.
¿Cómo puede una pequeña empresa sortear esos problemas y ser capaz de:
Use el IDE sin verse afectado por el bajo rendimiento,
¿Compilar el código después de cada confirmación sin destruir el servidor, incluso cuando las consecuencias de un cambio requieren que se vuelva a compilar una gran cantidad de la base de código?