Trunk Based Development (CBSoft 2011)

Preview:

DESCRIPTION

 

Citation preview

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!

Recommended