Trunk-based development

O strategie în care inginerii îmbină mai frecvent modificări mai mici în baza de cod principală și lucrează la copierea trunchiului, mai degrabă decât să lucreze pe ramuri de caracteristici de lungă durată.

Cu mulți ingineri care lucrează în aceeași bază de cod, este important să aveți o strategie pentru controlul sursei și modul în care indivizii lucrează împreună. Pentru a evita modificarea reciprocă a modificărilor, inginerii își creează propria copie a bazei de cod, numite ramuri. Urmând o analogie a unui copac, exemplarul principal este uneori numit linia principală sau trunchiul. Procesul de încorporare a modificărilor copiei unui individ în trunchiul principal principal se numește fuzionare.

Pentru a înțelege dezvoltarea bazată pe trunchi, este util să ne uităm mai întâi la strategia alternativă, dezvoltarea de ramuri de caracteristici.

În dezvoltarea ramurilor de caracteristici, dezvoltatorii individuali de software sau echipele de ingineri nu își îmbină noua ramură până când o caracteristică nu este completă, uneori lucrând săptămâni sau luni la rând pe o copie separată.

dezvoltarea ramurilor de caracteristici Această lungă perioadă de timp poate face dificil procesul de fuzionare, deoarece ramura principală sau trunchiul s-a schimbat probabil datorită altor ingineri care fuzionează modificările de cod și controlul versiunii devine dificil. Această ramificare a caracteristicilor poate avea ca rezultat un proces de revizuire a codului îndelungat atunci când se urmărește crearea unei ramuri de lansare care urmează să fie implementată, rezultând deseori în multe cereri de extragere diferite care trebuie analizate pentru a rezolva conflictele de îmbinare.

Avantajele dezvoltării bazate pe trunchi
Dezvoltarea bazată pe trunchi adoptă o abordare de livrare mai continuă a dezvoltării de software, iar sucursalele sunt de scurtă durată și se îmbină cât mai des posibil. Ramurile sunt mai mici, deoarece conțin adesea doar o parte a unei caracteristici. Aceste ramuri de dezvoltare de scurtă durată facilitează procesul de fuziune, deoarece există mai puțin timp pentru divergența dintre trunchiul principal și copiile ramurilor.

dezvoltare bazată pe trunchiuri Astfel, dezvoltarea bazată pe trunchiuri este o metodologie pentru lansarea rapidă a noilor caracteristici și mici modificări, ajutând în același timp la evitarea remedierilor lungi de erori și la „îmbinarea iadului”. Este o practică populară de devops în creștere în rândul echipelor de dezvoltare agile și este adesea asociată cu steaguri de funcții sau comutări de caracteristici pentru a se asigura că orice caracteristici noi pot fi reduse rapid și ușor dacă sunt descoperite erori.

Dezvoltare bazată pe trunchiuri și steaguri de caracteristici
Practica de semnalizare a caracteristicilor (inițiată de Martin Fowler) sau înfășurarea de noi caracteristici în cod care poate fi activat și dezactivat de la distanță, este un proces comun de dezvoltare pe care inginerii de software îl folosesc pentru a ajuta la implementarea dezvoltării bazate pe trunchi, reducând totodată riscul introducerii bug-uri în cod.

Deoarece dezvoltarea bazată pe trunchi implică lucrul într-o singură ramură din mediul de producție, semnalizatoarele de caracteristici oferă o modalitate de a introduce noi funcții și modificări în cod într-un mod controlat și le permit rapid să fie dezactivate dacă sunt descoperite erori.

Semnalizatoarele de funcții pot fi, de asemenea, utilizate pentru a lansa caracteristici încet într-o mică parte din baza de utilizatori a unui proiect, mai degrabă decât să aibă o lansare mare, care ajută la limitarea razei de explozie a oricărui cod sursă potențial buggy.