Ho letto la consegna continua: rilasci di software affidabili attraverso l'automazione di compilazione, test e distribuzione di Jez Humble e David Farley . La parte che mi ha sbilanciato maggiormente è stata la loro insistenza nell'usare un singolo ramo.
Pensandoci su ciò che stanno predicando, ha senso. Ma la domanda è: come raggiungerla?.
Nella mia azienda stiamo lavorando su C # con TFS come controllo del codice sorgente. E le idee seguenti mi sono venute in mente su come ottenere l'idea di apportare modifiche che non si desidera ancora rilasciare, ma si desidera mantenere lo strumento vcs:
-
Iniezioni per poter selezionare la classe che si desidera utilizzare. Quindi puoi riscrivere alcune funzionalità senza influire sul codice che deve essere rilasciato.
-
Relativo, un contenitore IoC per rendere facile quanto sopra. Quindi puoi selezionare alla compilation (o anche al runtime) quelli che vuoi usare.
- Motivo decoratore per aggiungere funzionalità in un modo molto semplice (che si applica solo agli altri due sopra)
In un altro simile domanda parla della linea di rilascio di Modelli di gestione della configurazione del software (che devo ancora leggere). Ma l'esempio che stanno usando riguarda i tag e la creazione di rami da essi, che non sembra essere la stessa cosa di cui parlano Humble e Farley.
- Le tecniche che ho descritto sembrano corrette per il raggiungimento di una singola strategia di branca?
- C'è qualcos'altro che potrebbe essere fatto per gestire il tuo codice su un singolo ramo?