İçeriğe geç
parazade

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?
İçindekiler
  1. Katmanlı mimari nedir?
  2. Katmanlar arası akış nasıl işler?
  3. Hangi hatalardan kaçınmalı?

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:

  1. Sunum katmanı: Kullanıcı arayüzü ya da API uçları.
  2. İş mantığı katmanı: Kuralların ve hesaplamaların yapıldığı yer.
  3. Veri erişim katmanı: Veritabanı sorguları.
  4. 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.

İlgili terimler

MVCMVC (Model-View-Controller), bir uygulamayı veri ve iş kuralları (Model), kullanıcıya görünen arayüz (View) ve ikisi arasındaki trafiği yöneten kontrolcü (Controller) olarak üç parçaya ayıran mimari desendir.Yazılım Mimarisi(Software Architecture)Yazılım mimarisi, bir yazılım sisteminin ana bileşenlerini, bu bileşenlerin birbiriyle nasıl iletişim kurduğunu ve sistemin hangi ilkelere göre büyüyeceğini belirleyen üst düzey yapı ve kararlar bütünüdür.Monolitik Mimari(Monolithic Architecture)Monolitik mimari, bir uygulamanın arayüz, iş mantığı ve veri erişimi dâhil tüm parçalarının tek bir kod tabanında geliştirildiği ve tek bir birim olarak derlenip sunucuya dağıtıldığı yazılım mimarisidir.Talep(Demand)Talep, tüketicilerin belirli bir dönemde, farklı fiyat seviyelerinde satın almaya istekli ve gücü yeten mal veya hizmet miktarıdır. Diğer koşullar sabitken fiyat yükseldikçe talep edilen miktar genellikle azalır.Arayüz(Interface)Arayüz (interface), nesne yönelimli programlamada bir sınıfın hangi metotları sağlaması gerektiğini tanımlayan, ancak bu metotların nasıl çalışacağını belirtmeyen sözleşmedir. Günlük dilde arayüz, kullanıcının yazılımla etkileşim kurduğu ekranı da ifade eder.SQLSQL (Structured Query Language, yapılandırılmış sorgu dili), ilişkisel veritabanlarındaki verileri sorgulamak, eklemek, güncellemek, silmek ve tabloları yönetmek için kullanılan standart bir dildir.