Git è uno degli strumenti più importanti nello sviluppo di applicazioni grazie al fatto che permette ai team di developer di lavorare insieme e di avere sempre il codice sorgente consistente, coerente e uguale per tutti.
In questo articolo vogliamo indicarti quali sono le strategie che puoi usare nel tuo team nell’ambito del branching( per un approfondimento sul concetto di branching ti suggeriamo di leggere la documentazione ufficiale) cioè dei rami di versione in cui il codice viene aggregato e viene pubblicato come rilasci(release).
La definizione di una strategia di sviluppo quando si utilizza Git è uno degli elementi che viene programmato nell’ambito del Software Development Life Cycle(SDLC). Ciò affinchè si possa stabilire un orientamento condiviso su come vada sviluppato il codice e come debbano essere approvati i rilasci e le nuove versioni del software. Probabilmente, definire la strategia, dovrebbe essere il primo elemento da formalizzare perché, sulla base della strategia, viene definita la roadmap del miglioramento del software. Vediamo ora quali sono le cinque strategie che puoi utilizzare.
Contattaci subito e senza impegno per una consulenza sulla strategia di sviluppo.
La strategia più popolare ed è quella che tutti gli sviluppatori utilizzano agli albori dei progetti di sviluppo. In questa strategia ogni funzionalità ha la propria branch al fine di assicurare che ogni cambiamento sia isolato e che le revisioni del codice siano semplificate. In pratica quando i cambiamenti sono completi e viene effettuato il merge sul main code, la branch può essere eliminata.
Gitflow ( ne abbiamo parlato anche in un precedente articolo Cos’ è Gitflow) ha due branch permanenti, una di produzione ed una di pre-produzione comunemente chiamate “prod” e “dev”. Ogni funzionalità, rilascio o hotfix urgenti acquisisce una branch temporanea; ciò è utile per mantenere una “staging area” attraverso la branch “dev” e nello stesso tempo effettuare rilasci in parallelo anche per versioni multiple in produzione del codice.
GitLab Flow semplica GitFlow e di fatto è l’insieme della 1° strategia, Feature Branching, e della 2°, Gitflow. In pratica si mantiene il main code e si hanno linee in parallelo di sviluppo che quando ritenuto opportuno vengono messe in merge con il main code. Gitlab Flow nasce soprattutto per essere aderente a logiche di CI/CD.Per un approfondimento ti consigliamo l’articolo ufficiale “What is GitLab Flow“.
Anche di Github Flow ne abbiamo parlato in un precedente articolo ( Cos’è Github Flow), ed è simile al feature branching ma implementa il concetto logico di “production-ready” sul main code, cioè sparisce la logica del rilascio tradizionale con il proprio branch e qualsiasi merge è un rilascio. Nasce per essere ancora più aderente a concetti di CI/CD e di Agile Development.
In questa strategia le branch vivono pochissimo; uno o due giorni al massimo è il timeframe che viene in genere definito per essere subito in merge con il main code. In caso si debbano sviluppare funzionalità più complesse che richiedano più giorni si utilizzano le “feature flags” per indicare tale possibilità. Una strategia per team molto grandi ed anche molto disciplinati.
Non c’è una strategia realmente migliore delle altre perchè ognuna può essere ideale per il tipo di team, per le conoscenze e per le esigenze di sviluppo. Come Glue Labs ti possiamo indicare che all’interno utilizziamo Gitflow e Github Flow in base ai progetti ed alle necessità del momento perchè sono orientati allo sviluppo Agile e permettono al team di sviluppare codice in maniera strutturata ma nello stesso tempo in maniera rapida come richiede l’attuale scenario di sviluppo di software.
Contattaci subito e senza impegno per una consulenza sulla strategia di sviluppo.
Utilizziamo Git e le sue strategie da più di dieci anni e ti supportiamo nell’implementazione nei tuoi progetti attraverso un Corso Git nell’ambito della nostra formazione avanzata. Inoltre ti permettiamo di avere un esperto al tuo fianco grazie ai piani di assistenza e supporto. Grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti forniamo assistenza e supporto nella progettazione, building e delivery di soluzioni software con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.