چه وقت باید از cats‌ در اسکالا استفاده کرد؟

سلام
با توجه به Hybrid بودن زبان اسکالا و پشتیبانی از پاردایم‌های FP و OO، برام سوال بود که اگر بخوایم که با پارادایم FP کار کنیم و قاطی کد نزنیم باید یک چارچوب راهنما باشه که کمک کنه. چون آدم مجبور نیست و کد کار میکنه.
تا اینکه با cats آشنا شدم. ولی هنوز درکی از کارکردش ندارم.
cats چه امکاناتی به ما می‌دهد و چه زمانی خوب هست که استفاده شود؟ یا بهتر است که استفاده نشود؟

1 Likes

در FP با تایپ ستاتیک چندین abstraction معروف از category theory خیلی به کار میان (semigroup, monoid, monad , applicatice…)
کتابخانه cats که اسمش جک از روی اسم category theory هست خیلی از این typeclass ها رو تعریف کرده و برای تایپ های مختلف نوشته اگر اسکالا رو شبیه هسکل میخوای بنویسی cats کارو راحت میکنه
منابع یادگیری :

http://eed3si9n.com/herding-cats

یک کتابخانه دیگه به اسم cats effect هم موجوده که مخصوص IO monad و concurrency کاملا فانکشناله
کدهای من همیشه این روزهای این کتابخانه ها به همراه fs2 دارند

3 Likes

ممنون از پاسخ جامع‌ات.
بنظر میرسه شاید کمی برای من زود باشه و بهتره باشه بیشتر FP یاد بگیرم (مثل Monad).
فقط سوالی که برام پیش می‌آید اینه‌که چقدر کاربردی و practical هست؟ آیا صرفا یک چیز fancy برای Scala هست یا تاثیر مثبتی در کارایی، خوانایی یا productivity میذاره؟

باز هم ممنون

1 Likes

خیلی practical هستش چون کد خیلی ترکیب پذیر میشه و راحت تر میشه درموردش فکر کنی، (equational reasoning)
من فقط از این پارادیم وقتی خارج می شم که دلیل خاصی داشته باشم

3 Likes

این کتاب که لینکش را گذاشتم برای شروع خیلی خوبه
Scala with Cats - Underscore

3 Likes