Vorrei sapere se ha senso dividere il progetto a cui sto lavorando in due repository anziché in uno.
Da quello che posso dire:
- Il frontend verrà scritto in html + js
- Backend in .net
- Il backend non dipende dal frontend e il frontend non dipende dal backend
- Il frontend utilizzerà un API riposante implementato nel backend.
- Il frontend potrebbe essere ospitato su qualsiasi server http statico.
A partire da ora, il repository ha questa struttura:
radice:
- fine frontale/*
- backend / *
Penso che sia un errore mantenere entrambi i progetti nello stesso repository. Poiché entrambi i progetti non hanno dipendenze tra di loro, dovrebbero appartenere a singoli repository e, se necessario, a un repository padre con sottomoduli.
Mi è stato detto che è inutile e che non trarremo alcun vantaggio dal farlo.
Ecco alcuni dei miei argomenti:
- Abbiamo due moduli che non dipendono l'uno dall'altro.
- Avere la cronologia di origine di entrambi i progetti a lungo termine può complicare le cose (prova a cercare nella storia qualcosa nel frontend mentre hai metà dei commit completamente estranei al bug che stai cercando)
- Conflitto e fusione (Questo non dovrebbe accadere ma avere qualcuno che spinge verso il back-end costringerà gli altri sviluppatori a tirare le modifiche del back-end per spingere le modifiche del front-end).
- Uno sviluppatore potrebbe funzionare solo sul backend ma dovrà sempre tirare il frontend o viceversa.
- A lungo termine, quando sarà il momento di implementare. In qualche modo, il frontend potrebbe essere distribuito su più server statici pur avendo un server back-end. In ogni caso, le persone saranno costrette a clonare l'intero backend con esso o a creare uno script personalizzato per inviare a tutti i server solo il frontend o per rimuovere il backend. È più semplice spingere / tirare solo il frontend o il backend di entrambi se ne è necessario solo uno.
- Contro argomento (una persona potrebbe lavorare su entrambi i progetti), creare un terzo repository con sottomodulo e svilupparlo con esso. La cronologia viene mantenuta separata nei singoli moduli e puoi sempre creare tag in cui la versione di backend / frontend funziona davvero in sincronia. Avere entrambi frontend / backend insieme in un repository non significa che lavoreranno insieme. Sta solo fondendo entrambi la storia in un unico grande repository.
- Avere frontend / backend come sottomoduli renderà le cose più facili se si desidera aggiungere un libero professionista al progetto. In alcuni casi, non vuoi davvero dare pieno accesso alla base di codice. Avere un grande modulo renderà le cose più difficili se vuoi limitare ciò che gli "estranei" possono vedere / modificare.
- Introduzione e correzione di bug, ho inserito un nuovo bug nel frontend. Quindi qualcuno corregge un bug nel backend. Con un repository, il rollback prima del nuovo bug eseguirà anche il rollback del backend, il che potrebbe rendere difficile la correzione. Dovrei clonare il back-end in una cartella diversa per far funzionare il back-end mentre corregge il bug nel frontend ... quindi provare a rimettere insieme le cose ... Avere due repository sarà indolore perché lo spostamento della TESTA di un repository ha vinto non cambiare l'altro. E i test con versioni diverse del backend saranno indolori.
Qualcuno può darmi più argomenti per convincerli o almeno dirmi perché è inutile (più complicato) dividere il progetto in due sottomoduli. Il progetto è nuovo e la base di codice ha un paio di giorni, quindi non è troppo presto per essere risolto.