scalalandio/chimney
این یک کتابخانهٔ اسکالاییه که به تو کمک میکنه تا بدون نوشتن کدهای زائد، دادهها رو بهراحتی و بهصورت type-safe تبدیل کنی.
کاربرد:
وقتی توی یه پروژهٔ اسکالا داری با مدلهای مختلف داده کار میکنی (مثلاً domain model، DTO، یا case classهای ورودی/خروجی API)، chimney بهت اجازه میده بهراحتی یکی رو به دیگری تبدیل کنی بدون اینکه دستی هر فیلد رو نگاشت کنی.
در چه شرایطی بهتره استفاده شود؟
وقتی میخوای:
- دو case class مشابه رو به هم تبدیل کنی (حتی اگر فیلدها کموبیش داشته باشن)
- مقادیر رو با تغییرات جزئی (مثل rename فیلد یا محاسبهٔ مقدار جدید) منتقل کنی
- کدهای boilerplate مثل copy + نگاشت دستی رو حذف کنی
- تبدیلها در زمان کامپایل type-safe باشن و اگر چیزی اشتباه بود، خطا بگیری
چند مثال از موارد استفاده:
- تبدیل یک UserRequest به UserEntity در یه API
- آپدیت کردن یه مدل از طریق patch با تبدیل بهینهٔ فیلدها
- تبدیل مدلهای لایههای مختلف (مثل service به controller) بدون افت امنیت نوع
- ##Scala
- ##FunctionalProgramming
- ##TypeSafe
- ##DataTransformation
- ##CaseClass
- ##Chimney
- ##BoilerplateFree
- ##API
- ##Backend
- ##CodeQuality
