وقتی سفر خود را بهعنوان توسعهدهنده Scala آغاز میکنیم، اولین برداشت ما از زبان ممکن است "جاوای بهتر" باشد. ما در مورد کلاس ها، ویژگی ها، تطبیق الگو و برخی ساختارهای دیگر که زندگی ما را آسان تر می کند، یاد می گیریم. در برخی مواقع با روش های شگفت انگیز مرتبه بالاتر مانند نقشه، فیلتر و فولد مواجه می شویم. اینها اولین طعم عالی از برنامه نویسی کاربردی هستند.
اما اگر به شما بگویم که خیلی بیشتر از این وجود دارد چه؟ در این دوره به شما نشان خواهم داد که چگونه برنامهنویسی تابعی استاندارد میتواند به شما کمک کند کدی را بنویسید که عمومیتر، قویتر و قابل آزمایشتر باشد.
این دوره به 3 بخش اصلی تقسیم شده است.
در بخش اول با typeclasses آشنا می شویم. ما به عنوان مثالی از مشکل رمزگذاری و رمزگشایی اشیاء به بایت و از بایت ها استفاده خواهیم کرد. در پایان این بخش می توانید کلاس های نوع خود را ایجاد کنید و از الگوی typeclass برای نوشتن کد چند شکلی استفاده کنید.
در بخش دوم، ما نگاهی به برخی از رایجترین کلاسهای نوع در برنامهنویسی تابعی، از جمله Monads، Applicatives، Functors و بسیاری دیگر خواهیم انداخت. ما از کتابخانه معروف Cats استفاده خواهیم کرد تا پیاده سازی های آنها را در اختیار ما قرار دهد و از Discipline به همراه ScalaCheck و ScalaTest برای آزمایش قوانین آنها استفاده خواهیم کرد. تا پایان این بخش، میتوانید نمونههای قانونی این کلاسهای نوع را برای هر یک از انواع خود بنویسید و اعتبار آنها را به صورت خودکار آزمایش کنید.
در بخش سوم و آخر، انجام بسیاری از کارهای برنامه نویسی رایج با ساختارهای تابعی را یاد خواهیم گرفت. این وظایف عبارتند از:
- اعتبارسنجی از طریق نوع داده معتبر
- تزریق وابستگی با Reader monad
- ردیابی داده ها در محاسبات ما با Writer monad
- مدیریت ایالت با موناد ایالت
- نوشتن محاسبات ایمن پشته ای با ترامپولین
- تنبل کردن محاسبات با موناد Eval
- ساخت پشته های موناد از طریق ترانسفورماتورهای موناد مانند ReaderT و OptionT
- تعلیق جلوه ها با اجرای ساده اما مفید IO monad
من به یادگیری با انجام این کار اعتقاد زیادی دارم، تمرینهای ویدیویی زیادی را همراه با آزمونها و تکالیف در پایان هر بخش قرار دادهام. امیدوارم از انجام آنها به همان اندازه که من از کنار هم قرار دادن آنها لذت بردم لذت ببرید!
بدون مقدمه، میخواهم از شما به این دوره و دنیای هیجانانگیز برنامهنویسی کاربردی خوش آمد بگویم!
مهندس ارشد نرم افزار
نمایش نظرات