21 puan yazan kciter1 2026-03-28 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Yazılım geliştirmenin temel zorluklarının çoğu, kodun içinde değil, kod ile kodun, sistem ile sistemin buluştuğu sınırda (Boundary) ortaya çıkar görüşü
  • Sınır = farklı ilgi alanlarının, sorumlulukların ve bağlamların buluştuğu nokta
  • Fonksiyonları ayırma, modülerleştirme, mikroservisler gibi geliştirmenin neredeyse tüm eylemleri sınır oluşturma eylemidir
  • İroni şu: karmaşıklığı yönetmek için sınırlar oluştururuz, ama sınırın kendisi yeni bir karmaşıklık kaynağı olur

Kodda ortaya çıkan sınırlar

  • Çağıran-çağrılan sınırı: null döndürme ile exception fırlatma arasındaki fark gibi sözleşme belirsizlikleri
  • Arayüz sınırı: soyutlama sızıntısı yasası - gizlenmiş karmaşıklık er ya da geç sınırı delip yukarı çıkar
  • Bağımlılık sınırı: harici API'ler ve kütüphaneler haber vermeden değişebilir
  • Dönüşüm sınırı: nesne-ilişkisel empedans uyumsuzluğunda olduğu gibi, her sınır geçişinde bilgi çarpılması ya da kaybı
  • Güven sınırı: doğrulanmış veri ile doğrulanmamış veri arasındaki sınır → imzasız webhook alma gibi güvenlik açıkları
  • Tasarım-uygulama sınırı: gereksinim → tasarım → uygulama → operasyon aşamalarının her birinde bilgi kaybı birikir

Fiziksel sınırlar

  • Sıra sınırı: asenkron noktalar arasında durum değişebilir; dağıtık sistemlerde bu daha da ciddidir
  • Ölçek sınırı: eşik aşıldığında niceliksel değil niteliksel değişim yaşanır
  • Ortam sınırı: "Benim bilgisayarımda çalışıyor" türü durumlar ortaya çıkar
  • Altyapı sınırı: servisler ayrıldığında atomiklik garantisi verilemez

İnsanlar arasında ortaya çıkan sınırlar

  • Organizasyon sınırı: Conway Yasası - organizasyon yapısı sistem yapısını belirler. Takımlar yeniden düzenlendiğinde kod ile organizasyon sınırları uyumsuz hale gelir
  • İletişim sınırı: kulaktan kulağa oyunundaki gibi, gereksinimler her aktarıldığında niyet değişime uğrar; örtük bilgi ise hiç aktarılamaz
  • Kullanıcı-geliştirici sınırı: geliştiricinin güvenlik için koyduğu sınır, kullanıcı için can sıkıcı bir engele dönüşebilir

Sınırlar nasıl yönetilir

  • Gizli sınırları fark et: iki servisin aynı DB tablosunu paylaşması gibi, kodda görünmeyen bağlılıklara dikkat et
  • Pattern'ler cevap değildir: pattern'ler yalnızca "belirli koşullarda etkili çözümler"dir; körü körüne uygulanmamalıdır
  • Bir sınırın önünde sorulacak üç soru:
    1. Bu sınırın üzerinden ne geçiyor?
    2. Bu sınır bozulursa ne olur?
    3. Bu sınırı kim yönetiyor?
  • Sınır çizmemenin kendisi de bir seçimdir: monolitik yapıyı korumak, aceleci ayrıştırmadan kaçınmak vb.
  • Sınırlar evrilir: ayırıp sonra birleştirmek, birleştirip sonra yeniden ayırmak tekrarlanır → bilinçli ve düzenli yeniden gözden geçirme gerekir

Henüz yorum yok.

Henüz yorum yok.