Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Dúvida] Estrutura do projeto

Bom dia.

Em um cenário real de uma empresa, como ficaria, ou qual a forma mais comum de organização de branches? Geralmente se organiza por ambientes produtivo, desenvolvimento, homologação? Há uma boa prática para isso?
Meu receio é que, conforme o projeto cresça, aumente muito a complexidade conforme a forma como o projeto foi organizado.

1 resposta

Boa noite, Henrique! Como vai?

A organização de branches em um projeto pode variar bastante dependendo das práticas e necessidades específicas de cada equipe ou empresa.

No entanto, existem algumas abordagens comuns que muitas organizações seguem para manter um fluxo de trabalho eficiente e organizado. Uma prática bastante difundida é o uso do modelo Git Flow, que organiza as branches de forma a facilitar o desenvolvimento e a entrega contínua de software. Nesse modelo, geralmente, você terá as seguintes branches principais:

  1. Main (ou Master): Esta é a branch principal, onde o código está sempre em um estado pronto para produção. Todas as novas funcionalidades ou correções de bugs devem ser integradas aqui somente após serem completamente testadas e aprovadas.

  2. Develop: Serve como a principal branch de integração para o desenvolvimento de novas funcionalidades. É a base para todas as branches de feature e é onde a equipe trabalha em conjunto antes de uma nova versão ser lançada.

  3. Feature Branches: São criadas a partir da branch develop para desenvolver novas funcionalidades. Cada nova funcionalidade ou conjunto de funcionalidades deve ter sua própria branch, que será integrada de volta à develop quando estiver pronta.

  4. Release Branches: Usadas para preparar uma nova versão de produção. Quando a develop atinge um estado estável e pronto para ser lançado, uma release branch é criada para ajustes finais e correções de bugs.

  5. Hotfix Branches: Criadas a partir da main para corrigir rapidamente problemas em produção. Após a correção, a hotfix é integrada tanto na main quanto na develop para garantir que a correção esteja em todas as futuras versões.

Além do Git Flow, algumas equipes preferem usar o modelo de Trunk-Based Development, onde há menos branches e mais integração contínua, mas isso pode aumentar a complexidade de gerenciar o código em grandes equipes.

A escolha do modelo depende muito do tamanho da equipe, da frequência de lançamento e das necessidades específicas do projeto. O importante é garantir que o fluxo de trabalho seja claro para todos os membros da equipe e que facilite a colaboração e a entrega contínua de valor.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado