Katmanlı Mimari Nedir?
İngilizce: Layered Architecture
Yayın: · Son güncelleme:
Katmanlı Mimari Nedir? Kısaca
Katmanlı mimari, uygulama kodunu sunum, iş mantığı ve veri erişimi gibi yatay katmanlara ayıran ve her katmanın yalnızca bir altındaki katmanla konuştuğu, en yaygın kullanılan yazılım mimarisi yaklaşımlarından biridir.

Katmanlı mimari nedir?
Katmanlı mimari, kodu sorumluluklarına göre üst üste dizilmiş katmanlara ayırır. Her katman belirli bir işi yapar ve yalnız komşu katmanla iletişim kurar. Kurumsal uygulamalarda en sık görülen yapı olduğu için "n-katmanlı mimari" adıyla da anılır.
Tipik bir uygulamada şu katmanlar bulunur:
- Sunum katmanı: Kullanıcı arayüzü ya da API uçları.
- İş mantığı katmanı: Kuralların ve hesaplamaların yapıldığı yer.
- Veri erişim katmanı: Veritabanı sorguları.
- Veritabanı: Verinin saklandığı sistem.
Katmanlar arası akış nasıl işler?
Bir kullanıcının izin talebi oluşturduğu bir insan kaynakları uygulamasını düşünün. Form, sunum katmanından iş katmanına gelir. İş katmanı kuralı kontrol eder: çalışanın kalan izni, örneğin 14 gün, talep edilen 5 günü karşılıyor mu? Kontrol geçerse veri erişim katmanı kaydı veritabanına yazar.
Bu ayrımın faydası şudur: veritabanını MySQL'den PostgreSQL'e taşısanız bile yalnız veri erişim katmanını değiştirirsiniz. Arayüzü yenilerken de iş kurallarına dokunmazsınız. Katmanlar ayrı ayrı test edilebilir.
Hangi hatalardan kaçınmalı?
En yaygın hata, katman atlamaktır. Arayüz kodunun doğrudan SQL sorgusu çalıştırması, katmanların anlamını ortadan kaldırır. Diğer bir sorun, hiçbir iş yapmadan veriyi bir alt katmana aktaran gereksiz katmanlar eklemektir.
Küçük bir projede üç katman genellikle yeterlidir. Yeni bir projede klasörleri katmanlara göre adlandırıp her dosyayı doğru klasöre koymak, bu düzeni kalıcı hâle getirir. Benzer bir ayrımı MVC deseninde de görebilirsiniz.
Sıkça Sorulan Sorular
Katmanlı mimari ile MVC aynı mı?
Benzer fikirlere dayanır ama aynı değildir. MVC çoğunlukla sunum tarafını düzenler; katmanlı mimari ise tüm uygulamayı sunum, iş ve veri katmanlarına ayırır.
Katman ile tier farkı nedir?
Layer (katman) kodun mantıksal ayrımını, tier ise fiziksel dağıtımı anlatır. Üç katmanlı bir uygulama tek sunucuda da çalışabilir, üç ayrı sunucuya da dağıtılabilir.