6GEN / İçgörü / Software Architecture
Modüler Sistemler: Sınırlar, Sözleşmeler ve Değişim
Modülerliğin klasör yapısından öte, değişimin etkisini sınırlayan bir sistem davranışı olarak nasıl ele alınabileceğine kısa bir giriş.
Bir sistemi modüler yapan şey yalnızca parçalara ayrılmış olması değildir. Asıl ölçüt, bir parçadaki değişimin diğer parçalar üzerindeki etkisinin öngörülebilir kalmasıdır.
Sınır önce gelir
Her modül üç soruya açık cevap vermelidir:
- Hangi sorumluluğa sahiptir?
- Hangi verinin sahibidir?
- Diğer modüllerle hangi sözleşme üzerinden konuşur?
Bu cevaplar belirsizse fiziksel ayrım, sistem davranışında gerçek bir bağımsızlık oluşturmaz.
İyi tanımlanmış bir sınır, değişimi engellemez; değişimin etkisini görünür kılar.
Sözleşmeler bağlantıyı güvenilir kılar
Modüller arasında kullanılan arayüzler açık, versiyonlanabilir ve gözlemlenebilir olmalıdır. Basit bir sözleşme görünümü şöyle ifade edilebilir:
input -> validation -> module boundary -> observable output
| İlke | Sistem etkisi |
|---|---|
| Net sahiplik | Çakışan sorumlulukları azaltır |
| Açık sözleşme | Değişimin etkisini izlenebilir kılar |
| Gözlemlenebilirlik | Davranışın üretimde doğrulanmasını sağlar |
Modülerlik, bağımsız parçalar ile güvenilir bağlantılar arasındaki dengedir.
Bu yaklaşım, sistem büyürken yeni modüllerin bütünü yeniden tasarlamadan eklenebilmesi için bir temel oluşturur.