استریمهای تابعی برای اسکالا با FS2
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- تفاوتهای بین لیستها و استریم را درک کنید.
- تسکهای بهینه شده از نظر حافظه را از طریق استریمینگ پیادهسازی کنید. (برای مثال فایل ورودی و خروجی)
- جریانهای پیچیده را برای اپلیکیشن خود با استریمها بسازید.
- همزمانی و ایمنی منابع را بهصورت اعلانی مدیریت کنید.
پیشنیازهای دوره
- دانش عملی از زبان اسکالا
- آشنایی با کتابخانه Cats Effect
توضیحات دوره
بسیاری از اپلیکیشنها با جریانهای بزرگ داده سروکار دارند. نمونهها شامل پردازش فایلها در ETL jobs، خواندن نتایج از یک پایگاه داده یا دریافت یک پاسخ بزرگ از درخواستهای http هستند. مدیریت حجم زیاد داده اغلب یعنی باید بین خوانایی و کارایی یکی را فدا کنید.
با استریمها، میتوانید بهترین هر دو دنیا را داشته باشید:
- داده با مقدار ثابتی از حافظه پردازش میشود، حتی اگر حجم کل داده بسیار زیاد باشد.
- پردازش بهصورت اعلانی ساخته میشود، درست مانند زمانی که با لیستها یا توالیهای معمولی کار میکنید. (با متدهای سطح بالا مانند map ،filter و flatMap)
علاوه بر این، استریمها در FS2 از effect آگاه هستند. آنها در زمینه یک effect monad مانند ورودی و خروجی کار میکنند و همین باعث میشود بتوانند کارهای مفید زیادی، از جمله پردازش موازی عناصر، محدودسازی نرخ، تلاش مجدد در صورت خطا و غیره را انجام دهند.
در این دوره، استریمها را از درون بررسی میکنیم و چیزهایی مانند موارد زیر را یاد میگیریم:
- ایجاد و ترکیب استریمهای pure
- افزودن effectها به استریمها و یادگیری چگونگی ترکیب آنها
- مدیریت ایمن خطاها و منابع
- بهکارگیری الگوهای مرتبط با زمان، مانند throttling، تلاشهای مجدد و دیبانس
- تبدیلات استریم خودتان را با Pullها و پایپها بسازید.
- مدیریت همزمانی با الگوهای مختلف
- برقراری ارتباط بین استریمها با primitiveهایی مانند سیگنالها، کانالها، Topicها و صفها
در این مسیر همراه ما باشید و یک ابزار شگفتانگیز دیگر به جعبهابزار برنامهنویسی تابعی خود اضافه کنید!
این دوره برای چه کسانی مناسب است؟
توسعهدهندگان تابعی در اسکالا که کمی تجربه دارند و میخواهند استریم تابعی را به جعبهابزار خود اضافه کنند.
استریمهای تابعی برای اسکالا با FS2
-
مقدمه 02:48
-
راهاندازی محیط 02:41
-
پردازش یک فایل CSV - نسخه امری 08:35
-
پردازش یک فایل CSV - نسخه امری - بخش 2 04:12
-
پردازش یک فایل CSV - نسخه لیست 03:43
-
پردازش یک فایل CSV - نسخه Iterator 05:32
-
پردازش یک فایل CSV - نسخه استریم 04:48
-
پردازش یک فایل CSV - نسخه استریم - بخش 2 04:16
-
آزمون انگیزه استریمها None
-
مقدمه 01:12
-
ساخت استریمهای متناهی 04:19
-
Iterate 02:31
-
Unfold 03:34
-
محدوده و ثابت 01:16
-
تمرین: تولید الفبا با Iterate 02:21
-
تمرین: تولید الفبا با Unfold 02:28
-
تمرین: پیادهسازی Iterate بر اساس Unfold 03:08
-
Concatenate 02:51
-
نقشه 01:19
-
FlatMap 03:17
-
فیلتر و For comprehensionها 01:53
-
Zip و ZipWith 02:53
-
Fold 02:00
-
تمرین: تولید اعداد فرد با Map 01:16
-
تمرین: پیادهسازی متد repeat 02:00
-
تمرین: پیادهسازی متد unNone 03:12
-
خلاصه 01:28
-
آزمون استریمهای Pure None
-
مقدمه 02:58
-
Eval 04:15
-
Exec 01:21
-
Covary 01:15
-
IterateEval 01:48
-
UnfoldEval 02:22
-
تمرین: صفحهبندی 05:17
-
RepeatEval 02:28
-
For comprehensionها 01:20
-
EvalMap ،EvalTap و EvalFilter 06:23
-
Concatenation 03:28
-
تمرین: EvalEvery 02:54
-
مدیریت خطا 13:17
-
منابع 10:35
-
متدهای اولیه زمان 04:25
-
Throttling 05:46
-
دیبانس 04:21
-
تلاش مجدد 05:44
-
تمرین: جستجو 07:27
-
خلاصه 01:54
-
آزمون استریمهای effectful None
-
مقدمه 00:42
-
مبتنی بر Pull در مقابل مبتنی بر Push 04:35
-
ساختار Chunk در یک استریم 05:37
-
متدهای Chunk 09:53
-
تمرین: compact 02:33
-
ساخت Pullها از طریق متدهای factory 08:11
-
تبدیل استریمها به Pull 03:56
-
تمرین: skipLimit 04:45
-
اولین پایپ chunk 06:42
-
پایپ حذف 06:19
-
تمرین: filter 03:35
-
پایپ جمع جاری 04:31
-
تمرین: بیشینه جاری 04:00
-
خلاصه 01:21
-
آزمون تبدیل استریمها None
-
مقدمه 01:02
-
Merge 09:25
-
MergeHaltL و MergeHaltBoth 02:42
-
تمرین: دریافت quoteها از دو منبع 03:32
-
ParJoinUnbounded 07:13
-
ParJoin 03:28
-
تمرین: چند producer و چند consumer 06:31
-
بهصورت همزمان 09:37
-
تمرین: ردیاب پیشرفت 06:02
-
ParEvalMap 09:23
-
تمرین: ParEvalMapSeq 06:53
-
Zip 05:51
-
ZipRight 02:09
-
ParZip 04:03
-
نرخ ثابت 08:26
-
تاخیر ثابت 04:05
-
AwakeEvery و AwakeDelay 03:44
-
خلاصه 01:04
-
آزمون همزمانی None
-
مقدمه 01:24
-
سیگنالها 07:00
-
تمرین: Cooler 08:36
-
کانالها 06:53
-
تمرین: Cooler بهبودیافته 15:37
-
Topicها 04:36
-
Backpressure با Topicها 02:41
-
تمرین: ردیاب و اعلاندهنده موقعیت خودرو 09:02
-
صفها 04:52
-
مدیریت backpressure با صفها 01:07
-
سیگنالدهی پایان با None 03:41
-
تمرین: شبیهسازی یک سرور 12:01
-
خلاصه 00:43
-
آزمون ارتباط None
-
نتیجهگیری 00:19
مشخصات آموزش
استریمهای تابعی برای اسکالا با FS2
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:متخصص
- تعداد درس:98
- مدت زمان :06:49:55
- حجم :2.03GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy