İçeriğe geç
parazade

Yazılım Mimarisi Nedir?

İngilizce: Software Architecture

Yayın: · Son güncelleme:

Yazılım Mimarisi Nedir? Kısaca

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.

Yazılım Mimarisi nedir?
İçindekiler
  1. Yazılım mimarisi nedir?
  2. Yaygın mimari türleri
  3. Doğru mimari nasıl seçilir?

Yazılım mimarisi nedir?

Yazılım mimarisi, bir uygulamanın büyük resmidir. Hangi parçalardan oluştuğunu, verinin bu parçalar arasında nasıl dolaştığını ve hangi teknolojilerin kullanılacağını tanımlar. Bir binanın mimari planı gibi düşünebilirsiniz: duvarların rengi sonra değişebilir ama taşıyıcı kolonları taşımak pahalıdır.

Mimari kararlar genellikle projenin başında alınır ve sonradan değiştirilmesi en zor olan kararlardır. Bu yüzden performans, güvenlik, ölçeklenebilirlik ve bakım kolaylığı gibi kalite hedefleri en baştan konuşulur.

Yaygın mimari türleri

Tek bir doğru mimari yoktur; ihtiyaca göre seçim yapılır. Sık karşılaşılan yaklaşımlar şunlardır:

  • Monolitik mimari: Tüm uygulama tek parça olarak geliştirilir ve dağıtılır.
  • Mikroservis: Uygulama, bağımsız çalışan küçük servislere bölünür.
  • Katmanlı mimari: Kod; sunum, iş mantığı ve veri katmanlarına ayrılır.
  • Olay güdümlü mimari: Bileşenler birbirine olay mesajlarıyla haber verir.

Doğru mimari nasıl seçilir?

Seçimi ekip büyüklüğü, beklenen kullanıcı sayısı ve bütçe belirler. Örneğin üç kişilik bir ekibin ilk sürümünü çıkaracağı bir randevu uygulaması için mikroservis kurmak, sunucu ve bakım maliyetini gereksiz yere artırır. Aynı uygulama milyonlarca kullanıcıya ulaştığında ise parçalara bölmek mantıklı hâle gelebilir.

Kararları yazıya dökmek de iyi bir alışkanlıktır. Birçok ekip, her önemli kararı neden aldığını kısa notlarla (Architecture Decision Record) kaydeder. Böylece bir yıl sonra projeye katılan geliştirici "bunu neden böyle yaptık?" sorusunun cevabını bulabilir.

Sıkça Sorulan Sorular

Yazılım mimarisi ile tasarım deseni aynı şey mi?

Hayır. Mimari, sistemin bütününü ve büyük parçalarını ilgilendirir. Tasarım deseni ise tek bir sınıf ya da modül düzeyindeki tekrar eden bir soruna hazır çözümdür.

Yazılım mimarisini kim belirler?

Büyük projelerde yazılım mimarı ya da teknik lider belirler. Küçük ekiplerde bu kararlar deneyimli geliştiricilerin ortak tartışmasıyla alınır.

İlgili terimler

Yazılım Mimarı(Software Architect)Yazılım mimarı, bir yazılım sisteminin genel yapısını, bileşenlerini, teknoloji seçimlerini ve kalite hedeflerini belirleyen; bu kararların ekipler tarafından tutarlı biçimde uygulanmasını gözeten kıdemli teknik uzmandır.Mikroservis(Microservices)Mikroservis, bir uygulamanın her biri tek bir işe odaklanan, kendi başına geliştirilip dağıtılabilen ve birbiriyle genellikle API ya da mesaj kuyruğu üzerinden haberleşen küçük servislere bölündüğü mimari yaklaşımdır.Katmanlı Mimari(Layered Architecture)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.Yazılım(Software)Yazılım, bir bilgisayarın ya da akıllı cihazın ne yapacağını adım adım tarif eden programların, verilerin ve talimatların bütünüdür. Donanım fiziksel parçaları, yazılım ise bu parçaları çalıştıran mantığı ifade eder.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.Olay Güdümlü Mimari(Event-Driven Architecture)Olay güdümlü mimari (event-driven architecture), sistemdeki bileşenlerin birbirini doğrudan çağırmak yerine "sipariş verildi" gibi olay mesajları yayınladığı ve ilgili bileşenlerin bu olayları dinleyerek tepki verdiği yazılım mimarisidir.