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?
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.