Konuyu Açan
#1
Son projelerde HTTP isteğinden gelen veriyi DTO’ya alıp sınıfı
Ama
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
Siz DTO’larda
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?