spinny:~/writing $ man monorepo-vs-polyrepo
MONOREPO_VS_POLYREPO(7)spinny.devMONOREPO_VS_POLYREPO(7)
NAME
monorepo-vs-polyrepo — Monorepo vs Polyrepo: Melyik strategiat valaszd?
SYNOPSIS
cat monorepo-vs-polyrepo.md
DESCRIPTION
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.
METADATA
- date: 2024-09-18
- reading: 1 min
- author: Filippo Spinella
- tags: Technology, Programming, Software Architecture
SEE ALSO
MONOREPO_VS_POLYREPO(7)2024-09-18MONOREPO_VS_POLYREPO(7)