trunk based development (cbsoft 2011)
DESCRIPTION
TRANSCRIPT
ExplorandoExplorando o o ExplorandoExplorando o o
Trunk Based DevelopmentTrunk Based Development
Daniel Wildt
Trevisan Tecnologia
Guilherme Lacerda
FACENSA/UniRitter
TargetTrust/Surya Software Innovation
Carlos Lopes
ThoughtWorks
agenda
O Problema
Impactos
Possíveis soluções
Quando usar branches?
O problemaO problema
Diferentes linhas de desenvolvimento,
mesma base de código
branches!branches!
Ronald Widha
merge hell
Conflito Sintático
class BlaBlaBla {
<<<<<<< HEAD<<<<<<< HEADpublic void bla(Bla oldBla, New newBla) {
oldBla.bla();newBla.newBla();
=======public void bla(Bla oldBla, Other otherBla) {
oldBla.bla();otherBla.otherBla();
>>>>>>> other commit}
}
Conflito Semântico
class BlaBlaBla {
public void something(Bla bla) {public void something(Bla bla) {<<<<<<< HEAD
bla = bla.plus(14);=======
bla = bla.minus(7);>>>>>>> change
//other stuff}
}
Conflitos de Integração
main.jsp: <%@include file="bla.jspf" %>
master: outroBranch:master:
new-file.jsp:<%@include file="bla.jspf" %>
outroBranch:
bla.jspf -> ble.jspf
main.jsp:<%@include file="ble.jspf" %>
O Merge Man
Integração Promíscua
Martin Fowler
$$$$
Jon Wolter
RegressõesRegressões
Jon Wolter
Jon Wolter
“The bigger the apparent
reason to branch, the
more you shouldn’t
branch.”
“The bigger the apparent
reason to branch, the
more you shouldn’t
branch.”
Jez Humble
“don't separate differing
concerns by using a VCS, use concerns by using a VCS, use
an abstraction instead.”
Stacy Curl
branches por
controle de código?controle de código?
Estratégias
Feature Toggles
Branch By AbstractionBranch By Abstraction
big bang
Paul Hammant
iterativo
Paul Hammant
Mudanças pequenas
Releases frequentes
Componentes
InfluênciaInfluência do Product do Product
Owner/ChampionOwner/Champion
Uncle Bob
Quando criar branches?
Grande mudanças
Spikes
Novo release
Quando criar branches?
Grande mudanças
Spikes
Novo release
Quando criar branches?
Grande mudanças
Spikes
Novo release
Paul Hammant
www.codingbyexample.org
Mais Informações
www.codingbyexample.org
Obrigado!