Trunk-based development

Geavanceerd Git

Amanda Crawford-Adamo

Software and Data Engineer

Wat is trunk-based development?

  • Source control-branching CI/CD-model
  • Developers pushen niet meer naar aparte releasebranches
  • Wijzigingen gaan via kortlevende branches naar main
  • Kleine, frequente updates

Een grafiek van commits naar main en een branch als release-trunk

Geavanceerd Git

Kernprincipes van trunk-based development

  1. Regelmatig committen naar main
  2. Kortlevende featurebranches (< 1 dag)
  3. Continue integratie
  4. Feature flags voor incompleet werk

Een weergave van de trunk-based workflow. Een kortlevende branch bevat een feature-flagtoggle bij committen naar main.

Geavanceerd Git

Feature flagging in TBD

  • Beheert incomplete features
  • Voorkomt impact voor gebruikers
  • Features geleidelijk releasen

Voorbeeld feature-flagcode

  if feature_flag_enabled('new_feature'):
      # New feature code
  else:
      # Old feature code
Geavanceerd Git

Continue integratie in TBD

  • Commits naar main starten automatische build en tests
  • Minder onderhoud en snellere releases
  • Product altijd betrouwbaar en stabiel
  • Zorgt voor veilige code en naleving van standaarden
  • Bewaakt codekwaliteit en verlaagt fouthrisico
Geavanceerd Git

Voordelen en uitdagingen van TBD

Voordelen:

  • Minder merge-conflicten
  • Snellere releasecycli
  • Betere codekwaliteit
  • Betere samenwerking

Uitdagingen:

  • Vereist teamdiscipline
  • Robuuste tests nodig
  • Aanvankelijke leercurve
  • Incomplete features beheren
Geavanceerd Git

Best practices

  1. Commit vaak en klein
  2. Automatiseer testen en deployen
  3. Gebruik feature flags voor incompleet werk
  4. Voer regelmatige code reviews uit
  5. Monitor na deployment
Geavanceerd Git

Laten we oefenen!

Geavanceerd Git

Preparing Video For Download...