Trunk Based Development

Avancerad Git

Amanda Crawford-Adamo

Software and Data Engineer

Vad är Trunk Based Development?

  • CI/CD-modell för källkodsgrenar
  • Utvecklare pushar inte längre till separata releasegrenar
  • Ändringar görs i kortlivade grenar och pushas till main
  • Små och frekventa uppdateringar

Graf över commits till main-grenen och en gren som release-trunk

Avancerad Git

Grundprinciper för Trunk Based Development

  1. Frekventa commits till main
  2. Kortlivade funktionsgrenar (< 1 dag)
  3. Kontinuerlig integration
  4. Feature flags för ofärdig kod

Illustration av trunk-baserat arbetsflöde. En kortlivad gren innehåller en feature flag-växel vid commit till main.

Avancerad Git

Feature flags i TBD

  • Hanterar ofärdiga funktioner
  • Skyddar användare från att påverkas
  • Funktioner lanseras gradvis

Exempel på feature flag-kod

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

Kontinuerlig integration i TBD

  • Commits till main triggar automatiserade byggen och tester
  • Mindre underhåll och snabbare releaser
  • Produkten alltid tillförlitlig och stabil
  • Säkerställer säker kod och efterlevnad av branschstandarder
  • Bibehåller kodkvalitet och minskar buggrisken
Avancerad Git

Fördelar och utmaningar med TBD

Fördelar:

  • Färre sammanslagningskonflikter
  • Snabbare releasecykler
  • Förbättrad kodkvalitet
  • Bättre samarbete

Utmaningar:

  • Kräver disciplin i teamet
  • Behöver robust testning
  • Initial inlärningskurva
  • Hantering av ofärdiga funktioner
Avancerad Git

Bästa praxis

  1. Commit små ändringar ofta
  2. Automatisera testning och driftsättning
  3. Använd feature flags för ofärdig kod
  4. Genomför regelbundna kodgranskningar
  5. Övervaka efter driftsättning
Avancerad Git

Nu kör vi en övning!

Avancerad Git

Preparing Video For Download...