Monorepo-struktur og -oppsett
Lær beste praksis for organisering av prosjekter, pakker og delt kode i ett enkelt Git-repositorium.
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/(ellerlibs/): 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-casefor prosjekt- og mappenavn (for eksempelweb-app,shared-utils). - Spesifikke navn: Unngå generiske navn som
utils; vær mer spesifikk (for eksempeldate-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!
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
- Hva er et monorepo?
- Monorepo-struktur og -oppsett
- Introduksjon til monorepo-verktøy
- Monorepo kontra polyrepo: velge tilnærming