Sviluppo API Web e SVN [duplicato]

1

Stiamo pianificando di sviluppare presto un progetto API Web ASP.NET. Per il controllo del codice sorgente usiamo svn. In genere seguiamo il modello del tronco che è stabile e che fa tutto il nostro lavoro nei rami.

Il più delle volte siamo fortunati che uno sviluppatore stia lavorando al progetto. Per questo progetto di API Web ci sono almeno due, forse tre sviluppatori che lavorano su parti differenti. Con ciò intendo che si potrebbe lavorare su un set di controller per lavorare con modelli di documenti mentre l'altro sviluppatore sta lavorando su un controller o controller per l'autenticazione e la manutenzione degli utenti.

Visto che questi due non dovrebbero avere lavori sovrapposti quali vantaggi / svantaggi per entrambi gli sviluppatori che lavorano su un singolo ramo con "aggiornamenti alla versione più recente" per mantenere coerenti entrambe le copie di lavoro rispetto a ogni sviluppatore che lavora su un singolo ramo e unendo il due rami tornano nel bagagliaio quando sono completi?

Mi sembra che un singolo ramo sarebbe meglio in quanto gli aggiornamenti quotidiani manterranno ogni sviluppatore su ciò che l'altro sta facendo e questo può aiutare a condividere il codice. La mia preoccupazione principale è l'esecuzione di tentativi ed errori di codifica. Cosa succede quando viene commesso un codice che probabilmente non dovrebbe essere abbattuto dall'altro sviluppatore? Questo dovrebbe essere un problema?

Un altro pensiero che ho avuto è stato che con ogni sviluppatore che ha il proprio ramo se uno sviluppatore ha un codice che l'altro può usare è abbastanza stabile, lo uniamo al tronco. Quindi gli sviluppatori si aggiornerebbero quotidianamente dal trunk.

Finalmente ho pensato che potremmo creare un ramo per questo "set di funzionalità" e quindi ogni ramo di sviluppo da quel ramo. Spingono quindi le funzionalità stabili al ramo principale e aggiornano quotidianamente dal ramo principale. Ciò manterrebbe il bagagliaio pulito e stabile fino al rilascio del set di funzionalità.

Questi sono i miei pensieri e mi dispiace per la lunga domanda. Voglio davvero iniziare questo progetto e qualsiasi consiglio sarebbe molto apprezzato.

    
posta fkm71 10.10.2013 - 04:27
fonte

4 risposte

2

Usa solo un ramo e non complicare le cose che sono semplici. Configurare il server CI, eseguire i test unitari dopo ogni commit. Due programmatori su un ramo non sono affatto un problema. Abbiamo sei programmatori e non ci sono problemi. Di quali problemi hai paura? Io davvero non capisco.

Puoi anche leggere 'sviluppo del tronco'. Dice che non dovresti creare le tue filiali locali e lavorare invece su trunk. Funziona per molte squadre!

    
risposta data 01.12.2013 - 23:54
fonte
0

Visto che i due sviluppatori non dovrebbero avere lavori sovrapposti, non riesco a immaginare quale vantaggio ci possa essere di lavorare da una filiale comune invece di lavorare in rami separati e individuali. Se il lavoro non si sovrappone, lavorare in rami separati sembra una soluzione naturale coerente con il design di Subversion. Lavorare da un ramo comune, nel frattempo, sembra una ricetta per i conflitti di fusione quotidiani, in particolare per i brutti conflitti degli alberi. Non mettere troppo in risalto il problema, ma avere più sviluppatori che lavorano da un singolo ramo sembra sconfiggere lo scopo del controllo di versione.

Per gli aggiornamenti di stato, potrebbe essere utile utilizzare uno strumento che tenga traccia delle modifiche in un newsfeed. Sono disponibili molti, sia per l'installazione interna che per l'utilizzo tramite un servizio basato su cloud. Questi funzionano spesso con o fanno parte di un sistema di integrazione continua, che potresti anche investigare.

    
risposta data 01.12.2013 - 21:43
fonte
0

La mia preoccupazione principale è l'esecuzione della codifica per tentativi ed errori. Cosa succede quando viene commesso un codice che probabilmente non dovrebbe essere abbattuto dall'altro sviluppatore? Questo dovrebbe essere un problema?

Sì, è sicuramente una preoccupazione. Ma avrai questo problema indipendentemente dalla metodologia / tecnologia che usi. Gli sviluppatori non dovrebbero commettere la codifica "tentativi ed errori", qualunque cosa sia :) Se non vuoi che il tuo codice venga abbattuto da altri sviluppatori, non impegnarlo.

Come ha detto Peri - usa un ramo e non complicare le cose e andrà tutto bene. Se il codice non è in fase di compilazione / esecuzione non eseguirlo.

    
risposta data 02.12.2013 - 00:53
fonte
0

Se più sviluppatori lavorano sullo stesso ramo, devono unire le modifiche direttamente alla loro copia di lavoro senza commit. Ciò significa che se qualcosa va storto con l'unione, SVN non può aiutarli a recuperare tutto il lavoro svolto dal commit precedente.

Le fusioni da più rami possono ancora andare storte - in effetti, ogni unione ha una maggiore possibilità di sbagliare, poiché non è necessario fondersi su ogni singolo commit e le differenze tra le copie di lavoro degli sviluppatori hanno più tempo per accumuli tra le unioni, ma almeno tutto il lavoro è già stato eseguito, quindi è possibile eseguire il rollback e ripristinare l'unione.

    
risposta data 02.12.2013 - 03:40
fonte

Leggi altre domande sui tag