Monday, February 1, 2016

Separation of Concerns (Birbiriyle Yakından İlgili İşlerin Ayrışımı - Kavramların Ayrışımı)

"Separation of concerns" kavramının Türkçe karşılığının tanımlanması konusu biraz sıkıntılı olmakla beraber 'Birbiriyle Yakından İlgili İşlerin Ayrışımı' şeklinde çevrilebilir. Benim tanımıma göre SOLID gibi kavramlar ayrılığını, yani ata binmek isteyeni atla kuşu karıştırıp pegasus'a bindirmeyini ifade eder. Birbirlerinin arasında yakından fonksiyonel ilişki olan işlerin ayrılmasıyla kod anlaşılabilirliği artar dolayısıyla bakım maliyeti düşer. Bunlara en iyi örnekler daha önce SOA yazılarımda örnekleri bulunan katmanlı yapılardır. Bu durum ile ilgili MSDN'den aldığım aşağıdaki katmanlı mimariyi örnek verebilirim.



Mimaride görüldüğü gibi kullanıcı ile etkileşime giren yazılım modülleri esas işlemlerin yapıldığı ticari (Business) katmandan ayrıştırılmıştır. Aynı şekilde veri tabanı ile etkileşime giren modüller de diğer modüllerden ayrıştırılmıştır. Böyle bir mimaride yapılan büyük bir iş parçalara ayrılmış ve birbirinden soyutlanmış olur. En basit anlatımıyla sunum katmanını oluşturan kodlarda hiçbir değişiklik yapmadan ve dikkati lüzumsuz yere gereksiz ayrıntılarla dağıtmadan veri erişim kodları veya ticari kodlar değiştirilebilir. Aynı şekilde veri katmanın ayrıştırılmasıyla veri tabanı yazılımı değiştirildiğinde sadece bu katmanı oluşturan yazılım kodlarının değiştirilmesi yeterli olacaktır.

No comments:

Post a Comment