Skip to content
Latchkey

O Que É Trunk-Based Development?

Trunk-based development é um modelo de branching em que os desenvolvedores integram pequenas mudanças em um único branch compartilhado, o trunk, com muita frequência.

O trunk-based development é uma reação contra branches de vida longa que se afastam e se tornam dolorosos de mesclar. Mantendo todos trabalhando perto do trunk e fazendo merge com frequência, ele torna a integração barata e contínua.

A ideia central

Há um branch principal, o trunk, no qual todos integram. Os desenvolvedores ou fazem commit direto nele ou usam branches de vida muito curta que vivem por horas ou um dia, não semanas. As mudanças são mantidas pequenas para que possam fazer merge rapidamente sem diffs grandes e propensos a conflitos.

Como funciona

  • Quebre o trabalho em mudanças pequenas e entregáveis de forma independente.
  • Faça branch do trunk apenas brevemente, depois faça merge de volta rápido.
  • Confie no CI para verificar cada merge no trunk.
  • Use feature flags para esconder trabalho inacabado no trunk.

Um exemplo

Um desenvolvedor construindo uma funcionalidade grande não trabalha em um branch de um mês. Em vez disso, ele faz merge de uma pequena fatia protegida por flag no trunk a cada dia. A funcionalidade fica invisível aos usuários até a flag ser ativada, mas o código é integrado e testado continuamente, então nunca há um merge gigante.

Por que combina com CI/CD

O trunk-based development e a integração contínua se reforçam mutuamente. Merges pequenos e frequentes só permanecem seguros se cada merge for verificado automaticamente, que é exatamente o que o CI fornece. Manter o trunk sempre pronto para release também é a pré-condição para entrega e deployment contínuos.

Trade-offs

O modelo exige disciplina: mudanças pequenas, revisões rápidas, bons testes e feature flags para trabalho incompleto. Em troca, ele evita o inferno de merge e mantém a base de código em um estado constantemente entregável, que é por que equipes de alto desempenho o preferem.

Principais conclusões

  • O trunk-based development mantém todos integrando em um único branch com frequência.
  • Os branches são de vida curta e as mudanças são pequenas.
  • Ele depende de CI forte e feature flags para se manter seguro.

Guias relacionados