41
Explorando Explorando o o Trunk Based Development Trunk Based Development Daniel Wildt TrevisanTecnologia Guilherme Lacerda FACENSA/UniRitter TargetTrust/Surya Software Innovation Carlos Lopes ThoughtWorks

Trunk Based Development (CBSoft 2011)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Trunk Based Development (CBSoft 2011)

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

Page 2: Trunk Based Development (CBSoft 2011)

agenda

O Problema

Impactos

Possíveis soluções

Quando usar branches?

Page 3: Trunk Based Development (CBSoft 2011)

O problemaO problema

Page 4: Trunk Based Development (CBSoft 2011)

Diferentes linhas de desenvolvimento,

mesma base de código

Page 5: Trunk Based Development (CBSoft 2011)
Page 6: Trunk Based Development (CBSoft 2011)

branches!branches!

Page 7: Trunk Based Development (CBSoft 2011)

Ronald Widha

Page 8: Trunk Based Development (CBSoft 2011)
Page 9: Trunk Based Development (CBSoft 2011)

merge hell

Page 10: Trunk Based Development (CBSoft 2011)

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}

}

Page 11: Trunk Based Development (CBSoft 2011)

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}

}

Page 12: Trunk Based Development (CBSoft 2011)

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" %>

Page 13: Trunk Based Development (CBSoft 2011)

O Merge Man

Page 14: Trunk Based Development (CBSoft 2011)

Integração Promíscua

Martin Fowler

Page 15: Trunk Based Development (CBSoft 2011)

$$$$

Page 16: Trunk Based Development (CBSoft 2011)

Jon Wolter

Page 17: Trunk Based Development (CBSoft 2011)

RegressõesRegressões

Page 18: Trunk Based Development (CBSoft 2011)

Jon Wolter

Page 19: Trunk Based Development (CBSoft 2011)

Jon Wolter

Page 20: Trunk Based Development (CBSoft 2011)

“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

Page 21: Trunk Based Development (CBSoft 2011)

“don't separate differing

concerns by using a VCS, use concerns by using a VCS, use

an abstraction instead.”

Stacy Curl

Page 22: Trunk Based Development (CBSoft 2011)

branches por

controle de código?controle de código?

Page 23: Trunk Based Development (CBSoft 2011)
Page 24: Trunk Based Development (CBSoft 2011)

Estratégias

Page 25: Trunk Based Development (CBSoft 2011)

Feature Toggles

Page 26: Trunk Based Development (CBSoft 2011)

Branch By AbstractionBranch By Abstraction

Page 27: Trunk Based Development (CBSoft 2011)

big bang

Paul Hammant

Page 28: Trunk Based Development (CBSoft 2011)

iterativo

Paul Hammant

Page 29: Trunk Based Development (CBSoft 2011)

Mudanças pequenas

Releases frequentes

Page 30: Trunk Based Development (CBSoft 2011)

Componentes

Page 31: Trunk Based Development (CBSoft 2011)
Page 32: Trunk Based Development (CBSoft 2011)
Page 33: Trunk Based Development (CBSoft 2011)

InfluênciaInfluência do Product do Product

Owner/ChampionOwner/Champion

Page 34: Trunk Based Development (CBSoft 2011)

Uncle Bob

Page 35: Trunk Based Development (CBSoft 2011)

Quando criar branches?

Grande mudanças

Spikes

Novo release

Page 36: Trunk Based Development (CBSoft 2011)

Quando criar branches?

Grande mudanças

Spikes

Novo release

Page 37: Trunk Based Development (CBSoft 2011)

Quando criar branches?

Grande mudanças

Spikes

Novo release

Page 38: Trunk Based Development (CBSoft 2011)

Paul Hammant

Page 39: Trunk Based Development (CBSoft 2011)

www.codingbyexample.org

Mais Informações

www.codingbyexample.org

Page 40: Trunk Based Development (CBSoft 2011)

Obrigado!

Page 41: Trunk Based Development (CBSoft 2011)