A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Branch & Merge Claudio Leite. Sobre

Apresentações semelhantes


Apresentação em tema: "Branch & Merge Claudio Leite. Sobre"— Transcrição da apresentação:

1 Branch & Merge Claudio Leite

2 Sobre

3 Agenda Conceito s Básicos Demonstração

4 Cenário “Uma empresa de médio porte está em franco crescimento, aproveitando oportunidades do mercado. Suas aplicações estão se tornando mais complexas e o time de desenvolvedores está crescendo. Nos últimos anos, a empresa tem sofrido com uma demanda crescente por suporte, devido constantes falhas no software em produção. A qualidade do software gerado pelos times é sofrível e essa percepção tem crescido no mercado. A empresa espera continuar crescendo, mas precisa corrigir e evitar novos problemas com a gestão de seu processo de desenvolvimento de software. Recentemente, a empresa ouviu falar sobre as novas tendências no desenvolvimento ágil e os benefícios da abordagem para Modern Apps.”

5 CONCEITOS BÁSICOS

6 Controlador de Versão • É um repositório que contém os arquivos necessários para o desenvolvimento do seu projeto • Mantém Controle sobre quais mudanças ocorreram: • Quem ? • O que ? • Quando ? • Porque ? • É um dos princípios básicos do ciclo de desenvolvimento de software e que ajuda para que os desenvolvedores trabalhem colaborativamente • Usa conceitos básicos como check-out, check-in, get latest, labeling...

7 Branch • Branch permite que seja realizado desenvolvimento em paralelo – Implementando features diferentes em branches diferentes com a mesma base de código – Mantém diferentes releases em branches diferentes • Branch == Isolar / Isolamento • Estratégias Comuns: – Branch por Release – Branch por Feature – Branch por Time – Branch por Qualidade • Regra Básica: NÃO CRIE BRANCH! Apenas quando necessário (KISS) • Branch não é Label!

8 Merge • Merge é uma operação de reconciliação de código. • Possibilidade de Merge automático • Merge permite que você passe as mudanças de um branch para o outro – Forward Integration – Reverse Integragion Main R1 R1.1 R2 R2.1 FI for Release

9 O QUE BRANCH TENTA RESOLVER ?

10 O que Branch Tenta Resolver ? • R elease Code When it is Ready • I ndependent Construction of Features • S uspension of Coding • K now what code is Released • Quando o código de Release está Pronto • Construção Independente de Features • Suspensão de Código – Code Freezen • Saber Qual Código foi liberado para Release

11 BRANCH POR RELEASE

12 Branch por Release (Staircase) B B Test Produção C1 C2 Test Produção Test

13 Bugs B B Test Produção RI C1 C3 C2 Test Produção Test C4 RI C5 RI C6 RI

14 Pros & Cons Pros : • Modelo mais simples de ser usado • Modelo mais simples para manter uma única versão • Mesmo processo para hotfix ou acertos da release • Menor gerência de Branches Cons : • Não é muito flexível quanto os outros padrões • Quanto mais release ativos, mais complicado realizar FI • Necessidade de multiplos ambientes de testes • Não suporta desenvolvimento em paralelo • Necessidade de recriação de builds para cada release

15 BRANCH POR QUALIDADE

16 Branch por Qualidade (Basic Plan) B BRI

17 Branch por Qualidade (Safe Keeping) B BRI BB

18 Bugs no Branch de QA B B RI FI L1 BUG B L1 RI FI L2 RI FI RxRx RI

19 Bugs no Branch de Produção B B RI FI L-QA1 Bug B RI FI RI FI RI FI L-QA2 L-QA3 L-QA4 L-QA5 RI Release 1 Release 2 Release 3 RI FI L-QA2

20 Pros & Cons Pros : • Permite maior Flexibilidade • Facilidade para trabalhar com multiplos Branches Cons : • Dependendo da estrutura elaborada pode ser muito complexa • Requer uma pessoa dedica para gerenciar sua estrutura e compilação • Sem documentação, você pode ser perder e não saber mais onde está o seu código.

21 BRANCH POR FEATURE

22 Branch por Feature RI FI B B

23 Bug RI FI B B Bug

24 Pros & Cons Pros : • Separa o desenvolvimento das features • Permite uma flexibilidade para escolher o que vai no seu release • Facilita o debug (problema em uma feature não afeta outra) • Ajuda no trabalho com features que dependem de um tempo maior de desenvolvimento Cons : • Pode ficar muito complicado • Os times responsáveis pelas features devem sempre lembrar de sincronizar com o Branch de DEV • Pode complicar um pouco a vida de desenvolvedores que estão trabalhando em mais de uma feature • Exige pelo menos um ambiente de testes por cada feature • As vezes pode ser necessário mais de um Branch de Integração

25 BRANCH POR FEATURE VS2012 Demonstração

26 Obrigado !


Carregar ppt "Branch & Merge Claudio Leite. Sobre"

Apresentações semelhantes


Anúncios Google