Selam, bugün linkedinde Emre Savcının şöyle bir gönderisine denk geldim:
Allah'ım bizi yazılım projelerinde utils mutils, common mommon, dto mto görmekten koru, bunları yazan yazılımcılara doğru yolu göster, amin 🙏
Ne düşünüyorsunuz.
Gelen bazı yorumlar:
S: Dto mto yerine ne kullanmak gerekiyor peki🙂
C: **Senaryoya göre mimari ve yapılandırma değişebileceği gibi şöyle genel geçer bir tavsiye verebilirim.
1-
Birebir DTO mapping kullanmanılmasının amacı katmalar arası dönüşüm. Oysa ki hexagonal mimaride katman bağımlılıkları dışarıdan içeriye doğru olabilir. Yani belirli durumlarda doğrudan domain objeleri dış katmanlara iletilebilir.
2-
Bunun yapılamadığı durumlarda CQRS ile command queryler ve request response objeleri App ve API katmanında tanımlanıp kullanılabilir, sadece bu katmanlar arasında iletişim sağlanacak şekilde. Api -> App/Presentation -> Domain
3-
Harici uygulamaların verilerini kullanmak bir araya getirmek ve dönüştürmek istenilen durumlarda anti-corruption layer kullanılabilir. Kendi projemizi ve domainimizi kirletmeden dış mihrakları orada çözümleyebiliriz.**
S: Utils’in zararı ne, açıkçası anlayamadım. Her yerde kullanacağın bir func’ı nerede tanımlamak / depolamak gerekiyor ki?
C: **Her yerde kullanacağın bir fonksiyon örneği verebilirsen daha iyi yanıtlanabilir. Ama genel bir cevap olması için bkz: shared kernel.
Mesela String dediğimiz şey her yerde kullanılan bir şey, peki utils paketinden mi geliyor yoksa kendine ait paketi mi var? Bu mantıkla düşünebiliriz.**
Başka birinin verdiği cevap:
Util classlarin kullanimi iyi bir pratik degil. Sebepleriyle ilgili guzel bir yazi var, asagidan bakabilirsiniz.
https://lindbakk.com/blog/utility-and-helper-classes-a-code-smell