Stiamo costruendo un client e un server di gioco, il nostro sistema è suddiviso in quattro progetti principali: (client e server, interfacce condivise, origine grafica). Inoltre, sia il client che il server hanno una serie di librerie in cui inseriamo il codice condiviso rispettivamente per client e server. Come puoi immaginare, questo porta a molti progetti, io conto 12 progetti nell'intero sito.
Le mie domande sono; Quali sono le buone regole per quanto riguarda quando mantenere il codice in un progetto rispetto alla sua suddivisione in sottoprogetti. A nessuno piace un grande progetto monolitico, ma molti piccoli progetti aggiungono anche un sovraccarico.
Tutti i progetti dovrebbero essere ramificati e rilasciati in lock-step per mantenere le cose semplici (un numero di versione corrente per tutti) o i progetti di libreria dovrebbero essere ramificati e rilasciati separatamente solo quando cambiano. Ciò porterà a una mappa complessa di versioni compatibili.
So che non esiste una risposta assoluta a queste domande, ma quali sono le migliori pratiche conosciute al momento di decidere e / o un buon materiale di riferimento da leggere su questo argomento?