آموزش برنامه نویسی کاربردی با اسکالا کتس

Functional Programming with Scala Cats

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: سفری به دنیای تایپ کلاس‌ها، کتابخانه Cats و روش عملکردی انجام کارها در اسکالا ایجاد کلاس‌های نوع خاص نوشتن و استفاده از نمونه‌های قانونی کلاس‌های تایپ معروف مانند Functors، Applicatives، Monads و غیره. انجام کارهای برنامه‌نویسی رایج (اعتبارسنجی) ، تزریق وابستگی، مدیریت حالت و غیره) به صورت کاربردی. پیش نیازها: دانش کاری زبان اسکالا (کلاس های موردی، تطبیق الگو، ویژگی ها، موارد ضمنی و غیره) درک اولیه از کتابخانه اسکالا (فهرست، نقشه، مجموعه و غیره) (خیلی خوب است) تجربه استفاده از پایه بالاتر روش های سفارش مانند map، flatMap و fold

وقتی سفر خود را به‌عنوان توسعه‌دهنده Scala آغاز می‌کنیم، اولین برداشت ما از زبان ممکن است "جاوای بهتر" باشد. ما در مورد کلاس ها، ویژگی ها، تطبیق الگو و برخی ساختارهای دیگر که زندگی ما را آسان تر می کند، یاد می گیریم. در برخی مواقع با روش های شگفت انگیز مرتبه بالاتر مانند نقشه، فیلتر و فولد مواجه می شویم. اینها اولین طعم عالی از برنامه نویسی کاربردی هستند.

اما اگر به شما بگویم که خیلی بیشتر از این وجود دارد چه؟ در این دوره به شما نشان خواهم داد که چگونه برنامه‌نویسی تابعی استاندارد می‌تواند به شما کمک کند کدی را بنویسید که عمومی‌تر، قوی‌تر و قابل آزمایش‌تر باشد.

این دوره به 3 بخش اصلی تقسیم شده است.

در بخش اول با typeclasses آشنا می شویم. ما به عنوان مثالی از مشکل رمزگذاری و رمزگشایی اشیاء به بایت و از بایت ها استفاده خواهیم کرد. در پایان این بخش می توانید کلاس های نوع خود را ایجاد کنید و از الگوی typeclass برای نوشتن کد چند شکلی استفاده کنید.

در بخش دوم، ما نگاهی به برخی از رایج‌ترین کلاس‌های نوع در برنامه‌نویسی تابعی، از جمله Monads، Applicatives، Functors و بسیاری دیگر خواهیم انداخت. ما از کتابخانه معروف Cats استفاده خواهیم کرد تا پیاده سازی های آنها را در اختیار ما قرار دهد و از Discipline به همراه ScalaCheck و ScalaTest برای آزمایش قوانین آنها استفاده خواهیم کرد. تا پایان این بخش، می‌توانید نمونه‌های قانونی این کلاس‌های نوع را برای هر یک از انواع خود بنویسید و اعتبار آنها را به صورت خودکار آزمایش کنید.

در بخش سوم و آخر، انجام بسیاری از کارهای برنامه نویسی رایج با ساختارهای تابعی را یاد خواهیم گرفت. این وظایف عبارتند از:
- اعتبارسنجی از طریق نوع داده معتبر

- تزریق وابستگی با Reader monad

- ردیابی داده ها در محاسبات ما با Writer monad

- مدیریت ایالت با موناد ایالت

- نوشتن محاسبات ایمن پشته ای با ترامپولین

- تنبل کردن محاسبات با موناد Eval

- ساخت پشته های موناد از طریق ترانسفورماتورهای موناد مانند ReaderT و OptionT

- تعلیق جلوه ها با اجرای ساده اما مفید IO monad

من به یادگیری با انجام این کار اعتقاد زیادی دارم، تمرین‌های ویدیویی زیادی را همراه با آزمون‌ها و تکالیف در پایان هر بخش قرار داده‌ام. امیدوارم از انجام آنها به همان اندازه که من از کنار هم قرار دادن آنها لذت بردم لذت ببرید!

بدون مقدمه، می‌خواهم از شما به این دوره و دنیای هیجان‌انگیز برنامه‌نویسی کاربردی خوش آمد بگویم!


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • راه اندازی پروژه Project Setup

  • فایل های دوره Course files

معرفی Introduction

  • معرفی Introduction

  • راه اندازی پروژه Project Setup

  • فایل های دوره Course files

کلاس های نوع Typeclasses

  • معرفی Introduction

  • کانال - هر Channel - Any

  • کانال - هر - کد Channel - Any - Code

  • کانال - ارث Channel - Inheritance

  • کانال - ارث - کد Channel - Inheritance - Code

  • کانال - Typeclasses Channel - Typeclasses

  • کانال - کلاس های تایپ - کد Channel - Typeclasses - Code

  • کانال - Typeclasses - مزایا Channel - Typeclasses - Advantages

  • روش های ضمنی و کمک کننده Implicits and Helper Methods

  • روش های ضمنی و کمک کننده - کد - نمونه های سازماندهی Implicits and Helper Methods - Code - Organizing instances

  • روش های ضمنی و کمک کننده - کد - موارد سازماندهی شماره 2 Implicits and Helper Methods - Code - Organizing instances #2

  • روش های ضمنی و کمک کننده - روش کد - احضار Implicits and Helper Methods - Code - Summoner method

  • روش های ضمنی و کمکی - روش کد - نمونه Implicits and Helper Methods - Code - Instance method

  • کانال - بخوانید Channel - Read

  • کانال - خواندن - کد Channel - Read - Code

  • قوانین Laws

  • قوانین - کد Laws - Code

  • استخراج نمونه خودکار Automatic instance derivation

  • نحو Syntax

  • نحو - کد Syntax - Code

  • خلاصه Summary

  • آزمون تایپ کلاس ها Typeclasses quiz

  • تکلیف: ایجاد کلاس تایپ خودمان Assignment: Creating our own typeclass

کلاس های نوع Typeclasses

  • معرفی Introduction

  • کانال - هر Channel - Any

  • کانال - هر - کد Channel - Any - Code

  • کانال - ارث Channel - Inheritance

  • کانال - ارث - کد Channel - Inheritance - Code

  • کانال - Typeclasses Channel - Typeclasses

  • کانال - کلاس های تایپ - کد Channel - Typeclasses - Code

  • کانال - Typeclasses - مزایا Channel - Typeclasses - Advantages

  • روش های ضمنی و کمک کننده Implicits and Helper Methods

  • روش های ضمنی و کمک کننده - کد - نمونه های سازماندهی Implicits and Helper Methods - Code - Organizing instances

  • روش های ضمنی و کمک کننده - کد - موارد سازماندهی شماره 2 Implicits and Helper Methods - Code - Organizing instances #2

  • روش های ضمنی و کمک کننده - روش کد - احضار Implicits and Helper Methods - Code - Summoner method

  • روش های ضمنی و کمکی - روش کد - نمونه Implicits and Helper Methods - Code - Instance method

  • کانال - بخوانید Channel - Read

  • کانال - خواندن - کد Channel - Read - Code

  • قوانین Laws

  • قوانین - کد Laws - Code

  • استخراج نمونه خودکار Automatic instance derivation

  • نحو Syntax

  • نحو - کد Syntax - Code

  • خلاصه Summary

  • آزمون تایپ کلاس ها Typeclasses quiz

  • تکلیف: ایجاد کلاس تایپ خودمان Assignment: Creating our own typeclass

کلاس های تایپ شناخته شده Well known typeclasses

  • معرفی Introduction

  • معادله Eq

  • معادله - کد Eq - Code

  • سفارش Order

  • کد سفارش Order - Code

  • نمایش دهید Show

  • نمایش - کد Show - Code

  • مونوئید Monoid

  • مونوئید - کد - سرعت Monoid - Code - Speed

  • مونوئید - کد - تمرینات Monoid - Code - Exercises

  • انواع بالاتر Higher Kinded Types

  • عامل Functor

  • تابع - کد Functor - Code

  • کاربردی Applicative

  • کاربردی - کد - معتبر Applicative - Code - Validated

  • کاربردی - کد - گزینه Applicative - Code - Option

  • موناد Monad

  • موناد - کد - آپشن Monad - Code - Option

  • موناد - کد - لیست Monad - Code - List

  • موناد - کد - هر دو Monad - Code - Either

  • موناد - کد - امتحان کنید Monad - Code - Try

  • خطای موناد Monad Error

  • خطای موناد - کد - موارد Monad Error - Code - Instances

  • خطای موناد - کد - مثال Monad Error - Code - Example

  • خطای موناد - کد - توابع اضافی Monad Error - Code - Additional Functions

  • تاشو - FoldRight Foldable - FoldRight

  • تاشو - FoldLeft Foldable - FoldLeft

  • تاشو - Typeclass Foldable - Typeclass

  • تاشو - کد - MList Foldable - Code - MList

  • تاشو - کد - پیدا کنید Foldable - Code - Find

  • تاشو - کد - وجود دارد Foldable - Code - Exists

  • تاشو - کد - به لیست Foldable - Code - To List

  • تاشو - کد - برای همه Foldable - Code - For All

  • پس و پیش رفتن Traverse

  • تراورس - کد - MList Traverse - Code - MList

  • تراورس - کد - آپشن Traverse - Code - Option

  • تست - جعبه Testing - Box

  • تست - نمونه Testing - Instances

  • تست - خواص Testing - Properties

  • خلاصه Summary

  • آزمون Typeclasses رایج Common Typeclasses Quiz

  • تکلیف: The Get Monad Assignment: The Get Monad

کلاس های تایپ شناخته شده Well known typeclasses

  • معرفی Introduction

  • معادله Eq

  • معادله - کد Eq - Code

  • سفارش Order

  • کد سفارش Order - Code

  • نمایش دهید Show

  • نمایش - کد Show - Code

  • مونوئید Monoid

  • مونوئید - کد - سرعت Monoid - Code - Speed

  • مونوئید - کد - تمرینات Monoid - Code - Exercises

  • انواع بالاتر Higher Kinded Types

  • عامل Functor

  • تابع - کد Functor - Code

  • کاربردی Applicative

  • کاربردی - کد - معتبر Applicative - Code - Validated

  • کاربردی - کد - گزینه Applicative - Code - Option

  • موناد Monad

  • موناد - کد - آپشن Monad - Code - Option

  • موناد - کد - لیست Monad - Code - List

  • موناد - کد - هر دو Monad - Code - Either

  • موناد - کد - امتحان کنید Monad - Code - Try

  • خطای موناد Monad Error

  • خطای موناد - کد - موارد Monad Error - Code - Instances

  • خطای موناد - کد - مثال Monad Error - Code - Example

  • خطای موناد - کد - توابع اضافی Monad Error - Code - Additional Functions

  • تاشو - FoldRight Foldable - FoldRight

  • تاشو - FoldLeft Foldable - FoldLeft

  • تاشو - Typeclass Foldable - Typeclass

  • تاشو - کد - MList Foldable - Code - MList

  • تاشو - کد - پیدا کنید Foldable - Code - Find

  • تاشو - کد - وجود دارد Foldable - Code - Exists

  • تاشو - کد - به لیست Foldable - Code - To List

  • تاشو - کد - برای همه Foldable - Code - For All

  • پس و پیش رفتن Traverse

  • تراورس - کد - MList Traverse - Code - MList

  • تراورس - کد - آپشن Traverse - Code - Option

  • تست - جعبه Testing - Box

  • تست - نمونه Testing - Instances

  • تست - خواص Testing - Properties

  • خلاصه Summary

  • آزمون Typeclasses رایج Common Typeclasses Quiz

  • تکلیف: The Get Monad Assignment: The Get Monad

تکنیک های عملکردی Functional Techniques

  • معرفی Introduction

  • اعتبارسنجی ها Validations

  • اعتبار سنجی - کد Validations - Code

  • تزریق وابستگی Dependency Injection

  • Dependency Injection - Code - The Reader Monad Dependency Injection - Code - The Reader Monad

  • Dependency Injection - Code - Modularization Dependency Injection - Code - Modularization

  • تزریق وابستگی - کد - تمرین Dependency Injection - Code - Exercise

  • ردیابی Tracking

  • پیگیری - کد - موناد نویسنده Tracking - Code - The Writer Monad

  • پیگیری - کد - نمونه تخفیف Tracking - Code - Discounts Example

  • ردیابی - کد - تمرین Tracking - Code - Exercise

  • مدیریت دولتی State Management

  • مدیریت دولتی - کد - موناد ایالتی State Management - Code - The State Monad

  • مدیریت دولتی - کد - مثال تیک تاک پا State Management - Code - Tic Tac Toe Example

  • ترامپولین Trampolines

  • ترامپولین - کد - IsEven Trampolines - Code - IsEven

  • ترامپولین - کد - FlatMap Trampolines - Code - FlatMap

  • حالت های ارزیابی Evaluation Modes

  • حالت‌های ارزیابی - کد - The Eval Monad Evaluation Modes - Code - The Eval Monad

  • حالت های ارزیابی - کد - مثال جریان Evaluation Modes - Code - Stream Example

  • TailRecM TailRecM

  • ترانسفورماتور موناد Monad Transformers

  • ترانسفورماتور موناد - کد - ReaderT Monad Transformers - Code - ReaderT

  • ترانسفورماتور موناد - کد - OptionT Monad Transformers - Code - OptionT

  • تعلیق عوارض جانبی Suspending Side Effects

  • تعلیق عوارض جانبی - کد - IO Suspending Side Effects - Code - IO

  • تعلیق عوارض - کد - موناد Suspending Side Effects - Code - Monad

  • خلاصه Summary

  • آزمون تکنیک های کاربردی Functional Techniques Quiz

تکنیک های عملکردی Functional Techniques

  • معرفی Introduction

  • اعتبارسنجی ها Validations

  • اعتبار سنجی - کد Validations - Code

  • تزریق وابستگی Dependency Injection

  • Dependency Injection - Code - The Reader Monad Dependency Injection - Code - The Reader Monad

  • Dependency Injection - Code - Modularization Dependency Injection - Code - Modularization

  • تزریق وابستگی - کد - تمرین Dependency Injection - Code - Exercise

  • ردیابی Tracking

  • پیگیری - کد - موناد نویسنده Tracking - Code - The Writer Monad

  • پیگیری - کد - نمونه تخفیف Tracking - Code - Discounts Example

  • ردیابی - کد - تمرین Tracking - Code - Exercise

  • مدیریت دولتی State Management

  • مدیریت دولتی - کد - موناد ایالتی State Management - Code - The State Monad

  • مدیریت دولتی - کد - مثال تیک تاک پا State Management - Code - Tic Tac Toe Example

  • ترامپولین Trampolines

  • ترامپولین - کد - IsEven Trampolines - Code - IsEven

  • ترامپولین - کد - FlatMap Trampolines - Code - FlatMap

  • حالت های ارزیابی Evaluation Modes

  • حالت‌های ارزیابی - کد - The Eval Monad Evaluation Modes - Code - The Eval Monad

  • حالت های ارزیابی - کد - مثال جریان Evaluation Modes - Code - Stream Example

  • TailRecM TailRecM

  • ترانسفورماتور موناد Monad Transformers

  • ترانسفورماتور موناد - کد - ReaderT Monad Transformers - Code - ReaderT

  • ترانسفورماتور موناد - کد - OptionT Monad Transformers - Code - OptionT

  • تعلیق عوارض جانبی Suspending Side Effects

  • تعلیق عوارض جانبی - کد - IO Suspending Side Effects - Code - IO

  • تعلیق عوارض - کد - موناد Suspending Side Effects - Code - Monad

  • خلاصه Summary

  • آزمون تکنیک های کاربردی Functional Techniques Quiz

پروژه نهایی Final Project

  • معرفی Introduction

  • بررسی اجمالی Overview

  • معماری Architecture

  • اعتبارسنجی ها Validations

  • ژنراتورها Generators

  • شخص Person

  • پول Money

  • هزینه Expense

  • DebtByPayee DebtByPayee

  • DebtByPayer DebtByPayer

  • پرسون سرویس PersonService

  • ExpenseService ExpenseService

  • IO IO

  • نحو Syntax

  • فرمان - ReadParticipants Command - readParticipants

  • فرمان - validateData Command - validateData

  • فرمان - findPerson Command - findPerson

  • فرمان - addPerson Command - addPerson

  • برنامه App

پروژه نهایی Final Project

  • معرفی Introduction

  • بررسی اجمالی Overview

  • معماری Architecture

  • اعتبارسنجی ها Validations

  • ژنراتورها Generators

  • شخص Person

  • پول Money

  • هزینه Expense

  • DebtByPayee DebtByPayee

  • DebtByPayer DebtByPayer

  • پرسون سرویس PersonService

  • ExpenseService ExpenseService

  • IO IO

  • نحو Syntax

  • فرمان - ReadParticipants Command - readParticipants

  • فرمان - validateData Command - validateData

  • فرمان - findPerson Command - findPerson

  • فرمان - addPerson Command - addPerson

  • برنامه App

نمایش نظرات

نظری ارسال نشده است.

آموزش برنامه نویسی کاربردی با اسکالا کتس
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
13 hours
113
Udemy (یودمی) udemy-small
13 آذر 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
1,236
4.3 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Leandro Galvan Leandro Galvan

مهندس ارشد نرم افزار

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.