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

Monorepo-struktur og -oppsett

Lær beste praksis for organisering av prosjekter, pakker og delt kode i ett enkelt Git-repositorium.

Leksjon 2 av 411 trinn

Monorepo-struktur og -oppsett 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.

Hvorfor struktur er viktig

Velkommen! I et monorepo ligger mange prosjekter samlet på ett sted. En tydelig og gjennomtenkt struktur er svært viktig for å holde orden.

Den gjør det enklere for utviklere å finne det de trenger raskt, fremmer gjenbruk av kode og gjør det mye enklere å administrere hele kodebasen etter hvert som den vokser.

Monorepoets rot

På øverste nivå i monorepoet, i rotkatalogen, finner du filer som gjelder hele repositoriet. Tenk på dem som globale innstillinger.

  • .git/: Gits interne filer for sporing.
  • .gitignore: Forteller Git hvilke filer som skal ignoreres.
  • README.md: Hovedbeskrivelsen av monorepoet.
  • package.json: (Hvis du bruker Node.js) Skript eller avhengigheter på monorepo-nivå.
  • tools/: Globale hjelpeskript.

Gruppere prosjekter: `apps` og `packages`

For å holde orden grupperes prosjekter vanligvis i kataloger på øverste nivå basert på type eller formål. De vanligste er apps/ og packages/ (noen ganger libs/).

  • apps/: For applikasjoner som kan distribueres, for eksempel webapper, mobilapper eller API-tjenester.
  • packages/ (eller libs/): For gjenbrukbare biblioteker, komponenter eller delte hjelpefunksjoner som flere apper kan bruke.

Denne tydelige inndelingen gjør det enkelt å forstå hvilken rolle et prosjekt har.

Inne i mappen `apps`

Hver mappe i apps/ representerer en separat, selvstendig applikasjon. De har vanligvis sin egen kildekode, konfigurasjon og egne avhengigheter.

monorepo/
├── apps/
│   ├── web-app/         # Your frontend application
│   │   ├── src/
│   │   └── package.json
│   ├── api-service/     # Your backend API
│   │   ├── src/
│   │   └── Dockerfile
│   └── mobile-app/      # Your mobile application
│       ├── src/
│       └── ...
└── ...

Denne strukturen holder hver applikasjon isolert, samtidig som den er en del av det større monorepoet.

Inne i `packages` (eller `libs`)

I katalogen packages/ (eller libs/) plasserer du all den gjenbrukbare koden. Dette er ofte mindre, fokuserte biblioteker eller UI-komponenter som kan deles mellom flere applikasjoner.

monorepo/
├── packages/
│   ├── ui-components/   # Reusable UI library
│   │   ├── src/
│   │   └── package.json
│   ├── shared-utils/    # Common utility functions
│   │   └── src/
│   └── auth-lib/        # Authentication logic
│       └── src/
└── ...

Dette fremmer gjenbruk av kode og konsistens på tvers av prosjektene.

Sentralisert konfigurasjon

For å sikre konsistens samler mange monorepoer konfigurasjonsfiler for verktøy som lintere (for kodestil), formatterere (for kodeoppsett) og byggesystemer.

monorepo/
├── .eslintrc.js       # Linter configuration
├── prettier.config.js # Code formatter configuration
├── jest.config.js     # Test runner configuration
├── tsconfig.base.json # Base TypeScript config
└── ...

Disse filene ligger ofte i roten eller i en egen config/-mappe, slik at reglene brukes konsekvent i alle prosjekter.

Fordeler med en god struktur

En veldefinert monorepo-struktur gir betydelige fordeler:

  • Gjenfinnbarhet: Nye teammedlemmer kan raskt forstå hvor alt befinner seg.
  • Konsistens: Sørger enkelt for ensartede prosjektoppsett og kodestandarder.
  • Vedlikeholdbarhet: Gjør refaktorering og håndtering av avhengigheter mye enklere.
  • Verktøystøtte: Forenkler oppsettet av bygg- og utviklingsverktøy som støtter monorepoer.

Det er en investering som gir avkastning på lang sikt!

Et enkelt programeksempel

Monorepo-struktur handler om å organisere filer og mapper, men her er et enkelt Java-program som viser hvordan kjørbar kode vises i CoddyKit. Dette hjelper deg med å bli fortrolig med redigeringsverktøyet!

public class MonorepoConcept {
  public static void main(String[] args) {
    System.out.println("A well-structured monorepo is great!");
  }
}

Navnekonvensjoner

tydelige og konsekvente navn er avgjørende i et monorepo. Det bidrar til å unngå forvirring og gjør kodebasen lettere å lese.

  • Kebab-case: Bruk kebab-case for prosjekt- og mappenavn (for eksempel web-app, shared-utils).
  • Spesifikke navn: Unngå generiske navn som utils; vær mer spesifikk (for eksempel date-utils, api-client).
  • Prefikser: I større organisasjoner kan du vurdere å sette prefiks på delte pakker (for eksempel @myorg/ui-components).

Sjekk av monorepo-organisering

Tenk deg et monorepo som inneholder en webapplikasjon, en API-tjeneste og et delt bibliotek med UI-komponenter. Hva er vanlige og effektive måter å organisere disse prosjektene på?

Oppsummering: Strukturerte monorepoer

Fantastisk arbeid! I dag har vi lært hvor viktig det er å strukturere et monorepo. Vi har sett på hvordan applikasjoner organiseres i apps/, delte biblioteker i packages/ (eller libs/), og hvordan globale konfigurasjoner sentraliseres.

Et veldefinert oppsett gjør monorepoet enklere å navigere i, mer konsistent og lettere å vedlikeholde. Neste gang skal vi se nærmere på spesifikke verktøy som hjelper med å håndtere disse komplekse strukturene!

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 «Monorepo-struktur og -oppsett» gratis?

Ja – hele teksten i «Monorepo-struktur og -oppsett» 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 «Monorepo-struktur og -oppsett»?

Lær beste praksis for organisering av prosjekter, pakker og delt kode i ett enkelt Git-repositorium. 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 «Monorepo-struktur og -oppsett»?

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. Hva er et monorepo?
  2. Monorepo-struktur og -oppsett
  3. Introduksjon til monorepo-verktøy
  4. Monorepo kontra polyrepo: velge tilnærming
← Tilbake til Git videregående: Monorepo, Submodules og arbeidsflyter