readonly DTO’lar: Sınırda faydalı, her yerde değil

0 Yanıt 0 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
Son projelerde HTTP isteğinden gelen veriyi DTO’ya alıp sınıfı readonly yapmak epey cazip geliyor. Ben de özellikle uygulama servislerine giren komutlarda bunu faydalı buluyorum: nesne oluşturulduktan sonra hangi değerlerin işlendiği değişmiyor, testlerde de kurulum daha anlaşılır oluyor.

Ama readonly kelimesini “bu nesne tamamen değişmez” diye okumamak gerek. Özellik yeniden atanamaz; özellik bir nesneyi tutuyorsa o nesnenin kendi durumu yine değişebilir. Ayrıca bu yaklaşım, veritabanı kaydı gibi yaşam döngüsü boyunca güncellenen nesnelere taşındığında sürtüşme yaratıyor. Her güncellemede yeni nesne üretmek kimi yerde mantıklı, kimi yerdeyse gereksiz kopyalama ve karmaşık eşleme kodu demek.

Bence asıl karar, sınıfın teknik olarak değiştirilebilir olup olmamasından çok, uygulamanın o nesneye ne anlam yüklediğiyle ilgili. Gelen isteği temsil eden bir DTO için readonly iyi bir sözleşme olabilir; aktif kayıt nesnesi için otomatik tercih olmamalı.

Siz DTO’larda readonly kullanıyor musunuz? Özellikle doğrulama, serileştirme veya ORM eşlemesinde başınıza çıkan bir pürüz oldu mu?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi