La prima risposta a un vecchio, recentemente attivo domanda collegata a un video che parla di come è fatto il repository di Google.
Una cosa interessante che è stata menzionata è il fatto che tutto è compilato dalla fonte, senza fare affidamento sui binari. Questo aiuta a evitare problemi con le dipendenze che diventano obsolete ma ancora utilizzate in altri progetti, un problema I effettivamente incontrato molto.
Come è tecnicamente possibile? Se provo la stessa cosa nella mia azienda, anche considerando l'enorme divario tra la scala della mia base di codice aziendale e quella di Google, non sarebbe possibile per due motivi:
-
L'IDE (Visual Studio) diventerà rapidamente insensibile, dato che soffre molto anche su piccole soluzioni contenenti, ad esempio, 50 progetti.
-
Qualsiasi analisi statica verrebbe ridotta dalle dimensioni dell'intero codebase. Ad esempio, le metriche del codice o il controllo statico dei contratti di codice sarebbero difficilmente possibili (i contratti di codice richiederebbero probabilmente giorni o settimane).
-
Con l'integrazione continua, la compilazione richiederebbe molto tempo e croccherebbe i server non appena un progetto con molte dipendenze viene modificato, richiedendo la ricompilazione di un grande albero di progetti.
Come può una piccola azienda aggirare tali problemi ed essere in grado di:
-
Utilizza l'IDE senza essere influenzato da scarse prestazioni,
-
Compilare il codice dopo ogni commit senza eseguire il crunch del server, anche quando le conseguenze di una modifica richiedono la ricompilazione di una grande quantità di codebase?