Ho bisogno di un consiglio prima di andare avanti.
Voglio costruire diversi progetti su larga scala, come un prodotto di mercato e alcuni prodotti e librerie specifici per dominio. I prodotti possono o non possono essere correlati ma possono condividere le librerie. Ogni prodotto può benissimo essere la propria società [ad es. il mercato]).
Sono per usare monorepos. Ci sono tanti vantaggi quanti sono gli svantaggi. I punti Pro-monorepo sono discussi in Vantaggi del controllo di versione monolitico su danluu .com e nei collegamenti associati all'articolo.
Perché penso di aver bisogno di un monorepo - Ho letto dei pro di monorepo, ma sono principalmente focalizzato sul seguente:
- Condivisione di codice closed-source. I prodotti e i progetti condivideranno le librerie interne (a codice chiuso). La condivisione del codice diventa più semplice perché le dipendenze closed-source sono disponibili localmente. Gli archivi basati su progetti richiedono strumenti adeguati per la costruzione. Sto cercando di evitare questo requisito poiché non sono in grado di trovare strumenti per la gestione delle dipendenze closed-source utilizzando più repository.
Perché monorepos sarà un problema
- Incapacità di scala.
- Impossibilità di ripristinare le modifiche senza grossi problemi.
- Impossibilità di nascondere il codice sensibile. Poiché prodotti e progetti condividono un singolo repository, verrà esposto il codice di un prodotto.
Domande
- Qual è la migliore pratica per la gestione di numerosi progetti su vasta scala a codice chiuso in un monorepo?
- Sarebbe saggio (e ragionevole) avere questi progetti su larga scala nello stesso repository?
Grazie ragazzi