Introduzione

Completato

Le strategie di diramazione Git efficaci sono fondamentali per il successo della distribuzione del software su larga scala. Questo modulo fornisce indicazioni complete sulla progettazione e sull'implementazione di flussi di lavoro di diramazione che supportano il recapito continuo, la collaborazione in team e la garanzia di qualità. Si apprenderà come selezionare e implementare il modello di diramazione corretto per le esigenze dell'organizzazione, sia che si stia lavorando con piccoli team agile o organizzazioni di sviluppo aziendali di grandi dimensioni.

Perché la strategia di diramazione è importante

I team di sviluppo software moderni richiedono strategie di diramazione che bilanciano diversi problemi critici:

  • Velocità di sviluppo: consente ai team di lavorare in modo indipendente senza bloccarsi tra loro.
  • Controllo qualità: mantenere la qualità del codice tramite processi sistematici di revisione e test.
  • Gestione delle versioni: supporta versioni software prevedibili e affidabili.
  • Mitigazione dei rischi: isolare il lavoro sperimentale e fornire funzionalità di rollback.
  • Requisiti di conformità: soddisfare gli standard normativi e di controllo per la gestione delle modifiche.

Framework per la strategia di branching aziendale

Considerazioni strategiche per la selezione del modello di diramazione:

Fattore Impatto sulla strategia Domande chiave
Dimensioni del team Complessità del coordinamento e frequenza di unione Quanti sviluppatori lavorano contemporaneamente?
Frequenza di rilascio Ciclo di vita del ramo e intervallo di integrazione Viene effettuato il rilascio in produzione con quale frequenza?
Requisiti di qualità Esaminare i processi e testare l'integrazione Quali livelli dei gate di qualità sono necessari?
Esigenze di conformità Tracciabilità degli audit e flussi di lavoro per l'approvazione Quali requisiti normativi si applicano?

I team di sviluppo di Microsoft dimostrano questi principi su larga scala, usando GitHub Flow per i servizi che richiedono una distribuzione rapida e approcci più strutturati per i prodotti aziendali che richiedono cicli di test estesi.

Obiettivi di apprendimento completi

Dopo aver completato questo modulo, avrai padroneggiato le strategie di diramazione essenziali e sarai in grado di:

Progettazione di diramazione strategica:

  • Valutare e selezionare i flussi di lavoro di diramazione Git appropriati in base alle dimensioni del team, alla frequenza di rilascio e ai requisiti di qualità.
  • Progettare strategie di diramazione che supportano la consegna continua mantenendo gli standard di conformità e qualità del codice.
  • Implementare i criteri di diramazione e i framework di governance su scala aziendale.

Competenze pratiche di implementazione:

  • Implementare flussi di lavoro dei rami di funzionalità con isolamento corretto, processi di revisione e strategie di integrazione.
  • Configurare e gestire GitHub Flow per i team che richiedono una distribuzione rapida e continua.
  • Eseguire flussi di lavoro di fork per progetti open source e collaborazione con team distribuiti.
  • Stabilire la protezione dei rami e unire restrizioni che applicano gate di qualità e requisiti di revisione.

Competenze della piattaforma:

  • Sfruttare le funzionalità avanzate di diramazione di Azure Repos per gli ambienti di sviluppo aziendali.
  • Integrare le strategie di diramazione con le pipeline di CI/CD e i framework automatizzati di test.
  • Monitorare e ottimizzare i flussi di lavoro di diramazione per la produttività e la velocità di distribuzione dei team.

Autovalutazione: valutare l'idoneità per la diramazione

Nozioni fondamentali su Git

  • [ ] Conosci i concetti di base di Git, come commit, branch e merge?
  • [ ] Si ha familiarità con i concetti relativi al controllo della versione distribuita?
  • Conosci come risolvere i conflitti di merge?

Esperienza di sviluppo per i team

  • [ ] Hai lavorato in team che utilizzano repository condivisi?
  • [ ] Capisci i processi di revisione del codice e i pull request?
  • [ ] Si ha familiarità con i concetti di integrazione continua?

Contesto organizzativo

  • [ ] Il team ha specifiche pianificazioni di rilascio o requisiti di conformità?
  • [ ] Si lavora con i team distribuiti tra fusi orari?
  • [ ] È necessario coordinare più team o collaboratori esterni?

Prerequisiti e preparazione

Conoscenza essenziale:

  • Concetti fondamentali di DevOps: comprensione dei principi DevOps, dell'integrazione continua e dei concetti di consegna.
  • Nozioni di base sul controllo della versione: familiarità con i principi di controllo della versione (revisione utile ma completa fornita).
  • Esperienza di sviluppo software: background in ambienti di sviluppo software basati su team.

Esperienza consigliata:

  • Riga di comando Git: familiarità di base con i comandi e i concetti di Git.
  • Flussi di lavoro delle richieste pull: esperienza con i processi di revisione del codice.
  • Consapevolezza CI/CD: Comprensione dei processi automatizzati di costruzione e distribuzione.

Configurazione richiesta:

  • Installazione git: assicurarsi che Git sia installato e configurato nell'ambiente di sviluppo.
  • Account GitHub: accesso a GitHub per esercizi pratici con flussi di lavoro moderni di diramazione.
  • Accesso ad Azure DevOps: accesso all'organizzazione per gli esercizi di Azure Repos (può essere generato durante il modulo).