Osszetett szoftverprojekteknel a monorepo es polyrepo kozotti valasztas jelentosen befolyasolhatja a csapat produktivitasat.
Mik azok a Monorepo es Polyrepo?
Monorepo
A monorepo egyetlen repozitorium, amely tobb projekt forraskodjat tartalmazza.
my-monorepo/ packages/ frontend/ backend/ shared/ package.json turbo.json
Polyrepo
A polyrepo azt jelenti, hogy minden projektnek sajat kulon repozitoriuma van.
repos/ frontend/ package.json backend/ package.json shared/ package.json
Vizualis kulonbseg
Elonyok es hatranyok
Monorepo
Elonyok:
- Megkonnyiti a kodmegosztast.
- Atomi refaktoralas tobb projekten at.
- Kozpontositott fuggosegkezeles.
Hatranyok:
- Nehezze valhat a kodbazis novekedesevel.
- Eszkozokot igenyel a reszleges build-ek/tesztek kezeleshez (pl. Nx, Turborepo).
Polyrepo
Elonyok:
- Minden csapat/projekt fuggetlen.
- Konnyebb kezelni kis projektek eseten.
- Lehetove teszi a granularis hozzaferesi szabalyokat.
Hatranyok:
- Nehezebb kodot megosztani csomagok kiadasa nelkul.
- A cross-repo refaktoralas osszetettebb.
- Konfiguraciok lehetseges duplikacioja.
Gyakorlati pelda: Monorepo Turborepo-val
npx create-turbo@latest
// packages/utils/src/formatDate.ts export function formatDate(date: Date): string { return date.toLocaleDateString('en-US'); }
// apps/web/pages/index.tsx import { formatDate } from '@myorg/utils'; export default function Home() { return <div>Today is {formatDate(new Date())}</div>; }
Mikor valaszd a Monorepo-t?
- Kozepes-nagy csapatok, amelyek osszefuggo projekteken dolgoznak.
- Kodmegosztasi es nagylepteku refaktoralasi igeny.
Mikor valaszd a Polyrepo-t?
- Kis vagy fuggetlen projektek.
- Kulon csapatok kulonbozo termekeken.
Osszefoglalas
Nincs tokeletes megoldas mindenki szamara. A valasztas a csapat meretetol, a projekt osszetettsegetol es az egyuttmukodesi igenyektol fugg.