با تعداد زیادی سینتکس کاربردی جدید در سی شارپ، برنامه نویسان ممکن است برای یافتن جای مناسب برای آن در کدهای شی گرا بدنام خود تلاش کنند. این دوره رمز و راز را آشکار میکند و عناصر OO و طراحی کاربردی را در تناسب مناسب قرار میدهد.
آنچه یاد خواهید گرفت:
ترکیب پارادایمها در سی شارپ مدرن کار آسانی نیست. نحو عملکردی جدید جای خود را دارد، اما نه در هر قطعه کد و هر طراحی. در این دوره آموزشی، کارکرد بیشتر کد C# 7، ابتدا یاد خواهید گرفت که چگونه تفکر عملکردی میتواند تأثیر مثبتی بر طراحی نرمافزار شما داشته باشد، در حالی که اجازه میدهد طرح در سمت شی گرا باقی بماند. در مرحله بعد، خواهید فهمید که چگونه میتوانید از نحو عملکردی جدید برای حل مسائلی استفاده کنید که حل آنها با استفاده از تکنیکهای شی گرا خالص دشوار است. در نهایت، بیش از هر چیز دیگری، شما این فرصت را خواهید داشت که ببینید خطر سوء استفاده از سبک کدنویسی عملکردی در کد شی گرا کجاست. در پایان این دوره، برای بهتر شدن طرحهای خود، باید در مورد سبک تفکر عملکردی در کدهای شی گرا احساس راحتی کنید.
نمونه ویدیوی آموزشی ( زیرنویسها جدا از ویدیو است و میتوانید آنرا نمایش ندهید ) :
[ENGLISH]
01 Course Overview [2mins]
01-01 Course Overview [2mins]
02 Challenging the Object-oriented Mindset [26mins]
02-01 Programming into a Language, Not in It [6mins]
02-02 Version Check [0mins]
02-03 What Follows in This Course [5mins]
02-04 Demonstrating the Object-oriented Mindset [5mins]
02-05 Riding on the Polymorphism Wave [5mins]
02-06 Challenging the Object-oriented Mindset [3mins]
02-07 Summary [2mins]
03 Adding Functional-style Filters to Object Model [22mins]
03-01 Recognizing Immutable State as a Neces [5mins]
03-02 Narrowing Down the Role of Public Functions [4mins]
03-03 Completing the Functional Model [5mins]
03-04 Using the Functional Model [6mins]
03-05 Summary [2mins]
04 Introducing Pure Functions to Object Design [23mins]
04-01 Inventing Pure Functions [5mins]
04-02 Returning a Tuple from a Function [6mins]
04-03 Understanding Referential Transparency [5mins]
04-04 Understanding the Need for Memoization [6mins]
04-05 Summary [1mins]
05 Memoization with Pure Functions [20mins]
05-01 Inventing Dynamic Programming as a Generalized Memoization [5mins]
05-02 Implementing Memoized Dynamic Programming Solution [2mins]
05-03 Precalculated Dynamic Programming [3mins]
05-04 Inventing an Algorithm Using Dynamic Programming [2mins]
05-05 Implementing Full Memoization [4mins]
05-06 Understanding the Benefits of Memoization [2mins]
05-07 Summary [2mins]
06 Working with Pure Member Functions [22mins]
06-01 Relating Member Functions to Pure Functions [5mins]
06-02 Pure Functions Require Immutable Arguments [4mins]
06-03 Making Functional C# [4mins]
06-04 Completing the Value Type Implementation [4mins]
06-05 Using Value Objects as Keys [3mins]
06-06 Summary [2mins]
07 Pattern Matching with C# 7 [23mins]
07-01 Efficiently Testing Runtime Types [4mins]
07-02 Mapping Types with `switch` [3mins]
07-03 Applying Type Matching in Functional Code [6mins]
07-04 Understanding the Ternary Operator [5mins]
07-05 Pattern Matching with Ternary Operator [3mins]
07-06 Summary [2mins]
08 Metaprogramming with Extension Methods [24mins]
08-01 Understanding Metaprogramming with Extension Methods [4mins]
08-02 Externalizing a Pure Function [6mins]
08-03 Attaching a Method to a Type [3mins]
08-04 Living with No Polymorphism in Extension Method [5mins]
08-05 Simulating Polymorphism with Extension Methods [4mins]
08-06 Summary [2mins]
09 Function Composition with Object Model [25mins]
09-01 Function Composition in Object Code [6mins]
09-02 Chaining Method Calls [6mins]
09-03 Building a Powerful Solution on Function Composition [8mins]
09-04 Analyzing the Function Composition Solution [3mins]
09-05 Summary [2mins]
10 Understanding Railway-oriented Programming [22mins]
10-01 Recognizing the Need for Optional Objects [5mins]
10-02 Introducing Railway-oriented Programming [5mins]
10-03 Designing the Option Type [4mins]
10-04 Using Optional Objects [6mins]
10-05 Summary [2mins]
11 Handling Errors in Functional Style [27mins]
11-01 Introducing the Either Type [5mins]
11-02 Implementing the Bare Either Type [4mins]
11-03 Adding Behavior to Either [5mins]
11-04 Demo: Railway Orientation in Business Applications [3mins]
11-05 Applying the Option Type [2mins]
11-06 Applying the Either Type [5mins]
11-07 Summary [3mins]
[فارسی]
01 بررسی اجمالی دوره [2 دقیقه]
01-01 بررسی اجمالی دوره [2 دقیقه]
02 به چالش کشیدن ذهنیت شی گرا [26 دقیقه]
02-01 برنامه نویسی به یک زبان، نه در آن [6 دقیقه]
02-02 بررسی نسخه [0 دقیقه]
02-03 آنچه در این دوره دنبال میشود [5 دقیقه]
02-04 نشان دادن ذهنیت شی گرا [5 دقیقه]
02-05 سوار بر موج چند شکلی [5 دقیقه]
02-06 به چالش کشیدن ذهنیت شی گرا [3 دقیقه]
02-07 خلاصه [2 دقیقه]
03 افزودن فیلترهای عملکردی به مدل شی [22 دقیقه]
03-01 تشخیص حالت تغییرناپذیر به عنوان یک ضرورت [5 دقیقه]
03-02 محدود کردن نقش کارکردهای عمومی [4 دقیقه]
03-03 تکمیل مدل عملکردی [5 دقیقه]
03-04 استفاده از مدل عملکردی [6 دقیقه]
03-05 خلاصه [2 دقیقه]
04 معرفی توابع خالص در طراحی شی [23 دقیقه]
04-01 اختراع توابع خالص [5 دقیقه]
04-02 برگرداندن یک تاپل از یک عملکرد [6 دقیقه]
04-03 درک شفافیت ارجاعی [5 دقیقه]
04-04 درک نیاز به یادداشت [6 دقیقه]
04-05 خلاصه [1 دقیقه]
05 یادداشت با توابع خالص [20 دقیقه]
05-01 ابداع برنامه نویسی پویا به عنوان یک یادداشت عمومی [5 دقیقه]
05-02 پیادهسازی راه حل برنامه نویسی پویا به خاطر سپرده شده [2 دقیقه]
05-03 برنامه نویسی پویا از پیش محاسبه شده [3 دقیقه]
05-04 اختراع الگوریتم با استفاده از برنامه نویسی پویا [2 دقیقه]
05-05 اجرای کامل یادداشت [4 دقیقه]
05-06 درک مزایای حفظ کردن [2 دقیقه]
05-07 خلاصه [2 دقیقه]
06 کار با توابع عضو خالص [22 دقیقه]
06-01 ارتباط توابع اعضا با توابع خالص [5 دقیقه]
06-02 توابع خالص به آرگومانهای تغییرناپذیر نیاز دارند [4 دقیقه]
06-03 ساخت سی شارپ کاربردی [4 دقیقه]
06-04 تکمیل اجرای نوع مقدار [4 دقیقه]
06-05 استفاده از اشیاء ارزش به عنوان کلید [3 دقیقه]
06-06 خلاصه [2 دقیقه]
07 تطبیق الگو با #C 7 [23 دقیقه]
07-01 آزمایش کارآمد انواع زمان اجرا [4 دقیقه]
07-02 انواع نقشه برداری با `سوئیچ` [3 دقیقه]
07-03 اعمال مطابقت نوع در کد عملکردی [6 دقیقه]
07-04 درک اپراتور سه تایی [5 دقیقه]
07-05 تطبیق الگو با اپراتور سهگانه [3 دقیقه]
07-06 خلاصه [2 دقیقه]
08 فرابرنامهنویسی با روشهای افزونه [24 دقیقه]
08-01 آشنایی با فرابرنامهنویسی با روشهای پسوند [4 دقیقه]
08-02 بیرونی کردن یک عملکرد خالص [6 دقیقه]
08-03 پیوست کردن یک روش به یک نوع [3 دقیقه]
08-04 زندگی بدون چند شکلی در روش گسترش [5 دقیقه]
08-05 شبیهسازی چند شکلی با روشهای گسترش [4 دقیقه]
08-06 خلاصه [2 دقیقه]
09 ترکیب تابع با مدل شی [25 دقیقه]
09-01 ترکیب تابع در کد شی [6 دقیقه]
09-02 تماسهای روش زنجیرزنی [6 دقیقه]
09-03 ساختن یک راه حل قدرتمند در ترکیب عملکرد [8 دقیقه]
09-04 تجزیه و تحلیل محلول ترکیب تابع [3 دقیقه]
09-05 خلاصه [2 دقیقه]
10 درک برنامه نویسی راه آهن محور [22 دقیقه]
10-01 تشخیص نیاز به اشیاء اختیاری [5 دقیقه]
10-02 معرفی برنامه نویسی راه آهن محور [5 دقیقه]
10-03 طراحی نوع گزینه [4 دقیقه]
10-04 استفاده از اشیاء اختیاری [6 دقیقه]
10-05 خلاصه [2 دقیقه]
11 رسیدگی به خطاها در سبک عملکردی [27 دقیقه]
11-01 معرفی هر نوع [5 دقیقه]
11-02 اجرای بره هر نوع [4 دقیقه]
11-03 افزودن رفتار به هر دو [5 دقیقه]
11-04 نسخهی نمایشی- جهت گیری راه آهن در برنامههای تجاری [3 دقیقه]
11-05 اعمال نوع گزینه [2 دقیقه]
11-06 اعمال هر نوع [5 دقیقه]
11-07 خلاصه [3 دقیقه]
زوران هوروات مشاور اصلی در شرکت مشاوره کدینگ کلاه ایمنی، سخنران و نویسنده بیش از 100 مقاله، و مربی مستقل در پشته فناوری دات نت است. او اغلب در کنفرانسها و گروههای کاربری صحبت میکند، سبک توسعه شیگرا و شیوهها و تکنیکهای کدنویسی تمیز را ترویج میکند که طول عمر برنامههای تجاری پیچیده را بهبود میبخشد.