SoC (Separation of Concerns) Nedir?

Bu yazımızda, kısaca “SoC prensibi” olarak bilinen “Separation of Concerns” hakkında derinlemesine bir inceleme yapacağız.

SoC Prensibi

1970’lerde bilgisayar bilimcisi Edsger W. Dijkstra tarafından ortaya atılan SoC (Separation of Concerns) prensibi, karmaşık yazılım projelerini daha basit ve anlaşılır parçalara ayırmayı hedefler. Bu prensip, modern yazılım tasarımı ve mimarisi için temel bir yaklaşım haline gelmiştir. Özellikle MVC (Model-View-Controller), MVP (Model-View-Presenter) ve MVVM (Model-View-ViewModel) gibi yazılım tasarım desenleri, SoC prensibini uygulamak için geliştirilmiştir.

Türkçeye “Sorumlulukların Ayrılması” ya da “Endişelerin Ayrılması” olarak çevrilen SoC prensibi, her bir modülün veya bileşenin yalnızca tek bir sorumluluğu olması gerektiğini vurgular. Böylece sistem daha düzenli, anlaşılır ve sürdürülebilir hale gelir.

Bir Örnekle SoC Prensibini Anlayalım

Bir fatura oluşturma uygulaması tasarladığınızı düşünün. Bu uygulamanın şu işlevleri yerine getirmesi gerekiyor:

  1. Müşteri bilgilerini almak.
  2. Fatura kalemlerini eklemek ve düzenlemek.
  3. Faturayı PDF olarak kaydetmek.

Eğer tüm bu işlemleri tek bir fonksiyon içinde gerçekleştirseydiniz, kodunuzu şu şekilde hayal edebilirsiniz:

  • Karmaşıklık: Kodun her satırı farklı bir işle ilgilenir, bu da anlamayı ve düzenlemeyi zorlaştırır.
  • Hata riski: PDF oluşturma kısmında bir değişiklik yapmak istediğinizde, tüm fonksiyonu incelemeniz gerekir. Bu da zaman alır ve hata yapma ihtimalini artırır.
  • Bakım zorluğu: Sistem büyüdükçe bu tek fonksiyonla çalışmak neredeyse imkânsız hale gelir.

SoC Prensibini Uyguladığımızda

Aynı uygulamayı SoC prensibine uygun şekilde tasarlarsak, her işlev için ayrı bir modül oluştururuz:

  1. Müşteri bilgilerini işleyen bir modül.
    • Müşteri adı, adresi ve diğer detayları toplar.
  2. Fatura kalemlerini işleyen bir modül.
    • Ürün bilgilerini ekler, düzenler ve toplam tutarı hesaplar.
  3. Faturayı PDF olarak kaydeden bir modül.
    • Hazırlanan faturayı PDF formatında dışa aktarır.

Bu şekilde her modül, yalnızca tek bir sorumluluğa sahiptir. Örneğin, PDF oluşturma kısmında bir değişiklik yapmak istediğinizde, yalnızca ilgili modülü güncellemeniz yeterli olur. Diğer modüllere dokunmanıza gerek kalmaz.

SoC Prensibinin Avantajları

  • Daha az bağımlılık: Her modül kendi başına çalışabildiği için, bileşenler arasındaki bağımlılık azalır.
  • Kolay bakım ve Test: Modüller ayrı olduğu için, bir hatayı bulmak ve düzeltmek daha kolaydır.
  • Yeniden kullanılabilirlik: Bir modülü başka projelerde de kullanabilirsiniz.
  • Geliştirme hızı: Değişiklikler, diğer bileşenleri etkilemediğinden, geliştirme ve optimizasyon daha hızlıdır.

SoC prensibi, yazılım tasarımında düzen ve basitliği koruyarak, karmaşık sistemlerin daha sürdürülebilir hale gelmesini sağlar. Her sorumluluğu uygun bir modüle ayırmak, yazılım geliştirme sürecini hem daha verimli hem de daha keyifli hale getirir.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu