مقاله ای که لینکش رو گذاشتم نکات جالبی رو اشاره میکنه
من چند ساله که خیلی کم از ORM استفاده میکنم، علت های مختلفی داره، از جمله اینکه:
- خود SQL به اندازه کافی یه declarative interface قشنگ بین لایه اپلیکیشن و داده های واقعی دیتابیس هست که بین سرویس های مختلف دیتابیس (mysql و postgres و غیره) هم تا حد زیادی مشترکه و لازم نیست یک لایه interface دیگه اضافه بشه
- اگه repository pattern رعایت بشه معمولا حجمی از کد که باید تغییر کنه قابل مدیریت هست و نگرانی ای بابتش وجود نداره
- اگه قرار به تغییر دیتابیس باشه، احتمالا یه جنس کاملا متفاوت از دیتابیس هست (برخلاف چیزی که مقاله میگه)، یعنی شما قرار نیست از mysql به postgres مهاجرت کنید، احتمالا از mysql به mongodb مهاجرت میکنید که تو این شرایط orm خیلی کمکی بهتون نمیکنه
- سرویس ها اگه modular نوشته بشن یا اگه بصورت microservice و nanoservice باشن، کلا حجم کد اونقدری نمیشه که کدهای لایه دیتابیس بخواد تغییرش دغدغه ایجاد کنه
- کدهای sql خوانایی بیشتری داره تا استفاده از انواع مختلف و عجیب متدهای orm و همچنین انعطاف بیشتری داره و شما مستقیما میتونید با دیتابیس صحبت کنید
طبیعتا بحث من این نیست که orm استفاده نداره، اما در خیلی از موارد ترجیح من plain sql هست
https://www.blackparrotlabs.io/post/architecture-pitfalls-dont-use-your-orm-entities-for-everything
@gocasts
Post #405
3.93K