Git videregående: Monorepo, Submodules og arbeidsflyter · leksjon

Optimalisere ytelsen til bygging og testing

Bruk hurtigbufring, ekstern kjøring og inkrementelle bygg for å redusere bygge- og testtiden betydelig i store monorepoer.

Leksjon 2 av 411 trinn

Optimalisere ytelsen til bygging og testing er en gratis leksjon i Git videregående: Monorepo, Submodules og arbeidsflyter på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Git videregående: Monorepo, Submodules og arbeidsflyter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Git videregående: Monorepo, Submodules og arbeidsflyter inneholder totalt 4 leksjoner.

Raskere bygg, raskere tilbakemeldinger

Velkommen! I store monorepoer kan bygge- og testtider bli en betydelig flaskehals. Langsomme tilbakemeldingssløyfer svekker utviklerproduktiviteten og kan forsinke utgivelser.

I denne leksjonen lærer du hvordan du kan gjøre disse prosessene betydelig raskere ved å bruke avanserte optimaliseringsteknikker.

Ytelsesutfordringen i monorepoer

Hvorfor har monorepoer ofte ytelsesproblemer?

  • Skala: Ett enkelt repository kan inneholde hundrevis av prosjekter.
  • Gjensidige avhengigheter: En liten endring i ett prosjekt kan påvirke mange andre.
  • Tradisjonell CI: Bygger ofte alt på nytt og tester alt på nytt ved hver commit, noe som er svært ineffektivt.

Introduksjon til byggbufring

Forestill deg at datamaskinen husker det nøyaktige resultatet av en oppgave den nettopp utførte. Det er byggbufring!

  • Den lagrer resultatene (artefaktene) fra tidligere bygge- eller testkommandoer.
  • Hvis inndataene (kode og konfigurasjoner) ikke er endret, brukes det lagrede resultatet på nytt.
  • Dermed unngår du overflødig arbeid og sparer mye tid.

Lokal bufring i praksis

Monorepo-verktøy som Nx og Turborepo implementerer lokal bufring automatisk. Når du kjører en kommando, sjekker de først en lokal hurtigbuffer.

Hvis det finnes et bufret resultat for de nøyaktige inndataene, hentes det umiddelbart i stedet for at oppgaven kjøres på nytt.

# First run (may be slow)
npm install
nx build my-app

# Second run (instant, cached)
nx build my-app

Skalering med ekstern bufring

Lokal bufring er flott for individuelle utviklere, men team trenger mer. Ekstern bufring deler disse bufrede byggartefaktene med alle!

  • Hvis et prosjekt er bygget eller testet av en kollega eller CI, kan du laste ned det bufrede resultatet.
  • Det betyr færre bygg fra grunnen av for hele teamet og raskere CI/CD-pipelines.

Inkrementelle bygg: berørte kommandoer

Hvorfor bygge hele frontend-applikasjonen på nytt hvis du bare har endret et backend-API? Det er her inkrementelle bygg kommer inn.

De kalles også «berørte» kommandoer og identifiserer og behandler bare prosjektene som er påvirket av de nylige kodeendringene dine.

Slik fungerer inkrementelle bygg

Monorepo-verktøy oppretter en avhengighetsgraf – et kart over hvordan alle prosjektene henger sammen.

Når du gjør en endring, bruker verktøyet denne grafen til å avgjøre på en intelligent måte:

  • Hvilke prosjekter som ble endret direkte.
  • Hvilke andre prosjekter som er avhengige av de endrede prosjektene.

Deretter bygges eller testes bare disse «berørte» prosjektene.

# Run tests only for projects affected by recent changes
nx affected:test

# Build only affected libraries
turborepo run build --filter="[HEAD^...]"

Distribuering av arbeid: ekstern kjøring

Selv med bufring og inkrementelle bygg er enkelte oppgaver svært beregningskrevende. Ekstern kjøring hjelper ved å fordele deler av en bygge- eller testkommando på flere maskiner.

Dermed blir én langvarig oppgave omgjort til mange mindre, parallelle oppgaver som fullføres mye raskere.

Fordeler med ekstern kjøring

Ekstern kjøring øker ytelsen betydelig ved å:

  • Parallellisere: Kjøre mange oppgaver samtidig.
  • Skalere ressurser: Utnytte skyressurser eller dedikerte byggservere.
  • Gi raskere tilbakemeldinger: Hente bygge- og testresultater mye raskere.

Dette er spesielt effektivt for store testpakker og komplekse kompileringssteg.

Sjekk forståelsen

Hvilken teknikk fokuserer på å bruke resultatene fra tidligere oppgaver på nytt for å unngå overflødig arbeid, så lenge inndataene ikke er endret?

Oppsummering: Optimaliser monorepoet!

Du har lært effektive strategier for å optimalisere bygge- og testytelsen i monorepoer:

  • Byggbufring: Lagre og bruke resultater fra tidligere oppgaver på nytt, både lokalt og eksternt.
  • Inkrementelle bygg: Bruke avhengighetsgrafer til å bare behandle prosjekter som er påvirket av endringer.
  • Ekstern kjøring: Fordele tunge arbeidsmengder på flere maskiner for parallell behandling.

Det er avgjørende å beherske disse teknikkene for å opprettholde utviklerproduktiviteten i ethvert monorepo som er i vekst.

Gratis å komme i gang

Lær deg Git videregående: Monorepo, Submodules og arbeidsflyter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Optimalisere ytelsen til bygging og testing» gratis?

Ja – hele teksten i «Optimalisere ytelsen til bygging og testing» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Git videregående: Monorepo, Submodules og arbeidsflyter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Git videregående: Monorepo, Submodules og arbeidsflyter inneholder totalt 4 leksjoner.

Hva lærer jeg i «Optimalisere ytelsen til bygging og testing»?

Bruk hurtigbufring, ekstern kjøring og inkrementelle bygg for å redusere bygge- og testtiden betydelig i store monorepoer. Du øver på Git videregående: Monorepo, Submodules og arbeidsflyter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Git videregående: Monorepo, Submodules og arbeidsflyter?

Ingen tidligere erfaring er nødvendig. Git videregående: Monorepo, Submodules og arbeidsflyter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Optimalisere ytelsen til bygging og testing»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Git videregående: Monorepo, Submodules og arbeidsflyter-leksjonen?

Ja. Alle Git videregående: Monorepo, Submodules og arbeidsflyter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Kodeeierskap og tilgangskontroll
  2. Optimalisere ytelsen til bygging og testing
  3. Strategier for monorepo-migrering
  4. Avhengighetshåndtering og versjonering i monorepoer
← Tilbake til Git videregående: Monorepo, Submodules og arbeidsflyter