CodeBlanks Logo Icon CodeBlanks

Monorepo nedir?

Monorepo yaklaşımının tek depo modelini öğrenirsin.

Monorepo nedir?

Monorepo, birden fazla proje veya uygulamanın tek bir Git deposunda tutulduğu geliştirme yaklaşımıdır. Örneğin bir şirketin web uygulaması, mobil uygulaması ve ortak kütüphaneleri aynı depoda bulunabilir.

company/
├── frontend/
├── backend/
├── mobile/
└── shared/

Böylece projeler ortak dosyaları ve değişiklikleri tek bir depo üzerinden yönetebilir.

Tek depo, birden fazla proje

Monorepo kullanırken her projenin kendi dizini bulunur ancak tüm projeler aynı Git geçmişini paylaşır. Bir commit, birden fazla projeyi ilgilendiren değişiklikleri birlikte içerebilir.

workspace/
├── api/
│   └── index.js
├── web/
│   └── app.js
└── packages/
    └── utils.js

Bu model ortak kodların paylaşılmasını ve projeler arası değişikliklerin birlikte incelenmesini kolaylaştırır. Ancak büyük depolarda klonlama ve bakım maliyeti artabilir.

Uygulama Monorepo dizinlerini oluştur

Bir monorepo için frontend, backend ve shared dizinlerini oluştur. Ardından find komutuyla dizinleri listele.

Başlangıç kodu

terminal
# Proje dizinlerini oluştur
# Dizinleri listele

Örnek çözüm

terminal
mkdir -p frontend backend shared
find . -maxdepth 1 -type d | sort

Beklenen çıktı

.
./backend
./frontend
./shared

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir şirketin web, mobil ve sunucu projelerini tek Git deposunda tutması hangi yaklaşımı ifade eder?

  • Multirepo
  • Monorepo Doğru cevap
  • Submodule
  • Worktree

Açıklama: Monorepo yaklaşımında birden fazla proje aynı Git deposunun farklı dizinlerinde tutulabilir.

2 Ortak depo yapısını tamamla

Soru
workspace/
├── frontend/
├── backend/
└── ____/
Cevap
workspace/
├── frontend/
├── backend/
└── shared/

Açıklama: Monorepo içinde frontend, backend ve shared gibi farklı proje dizinleri bulunabilir.

3 Monorepo bileşenleri

Kavram Anlamı
Monorepo Birden fazla projeyi tek depoda tutar
Single repo Tek Git deposu
Multi-project Birden fazla proje
Ortak kod Projeler arasında paylaşılır

Uzman bölümündeki tüm dersler