برنامه ‌نویسی تابعی (Functional programming) یک شیوه از کد نویسی است که درآن به جای استفاده از حلقه‌ها ودستورات شرطی فقط از فراخوانی توابع خالص (pure functions) استفاده می‌کنیم.  همچنین داده‌ ها در این شیوه برنامه ‌نویسی تغییرناپذیرهستند. با پیچیده ترشدن برنامه هایC#درک آنها دشوار تر می شود، و در نتیجه نگهداری آنها نیز سخت تر می شود. در این دوره آموزشی، ما چند روش جدید از برنامه ‌نویسی تابعی برای رفع این مشکل و افزایش خوانایی، تست پذیری، و ساخت یافته شدن کد های برنامه ارائه می کنیم. در این دوره برخی از مفاهیم پایه مربوط به برنامه ‌نویسی تابعی ارائه خواهد شد و پیشنهاد می شود که از ویژگی های توابعC# در برنامه نویسی روزانه خود استفاده کنید. با اینکهC# عمیقا بطورشیگرا طراحی شده است، ولی ما مقداری بر روی برنامه ‌نویسی تابعی متمرکز می شویم، که براحتی می توان این روش برنامه نویسی را در C# بکار برد. مانند: فناوری LINQ، توابع خالص، سبک dot-chaining (نام مستعار برای ترکیبپذیریcomposability ). ما اصطلاحات برنامه نویسی تابعی مانندmonads و functors را بطور خیلی دقیق بررسی نمی کنیم، بلکه بجای آن، نمونه هایی واقعی از نحوه استفاده از ویژگی های تابعی در C# را نشان می دهیم. با مطالعه این دوره، شما قابلیت نگهداری و تست پذیری برنامه کاربردی خود را افزایش خواهید داد و از اعتماد به نفس لازم، برای شروع یک پروژه جدید در برنامه ‌نویسی تابعی، برخوردار خواهید شد.

مباحث دوره:

  • فوت و فن برنامه نویسی تابعی با C# را بیاموزید
  • ویژگی های برنامه نویسی تابعی درC#
  • نمایش Books App
  • نصب Visual Studio نسخه Community
  • بازسازی و بازنویسی حلقه for
  • حلقهfor
  • تعریف مشکلات استفاده از حلقه for
  • ایجاد اولین اینترفیسIEnumerable خود
  • بازسازی و بازنویسی حلقهfor با استفاده از foreach
  • استفاده از LINQ
  • ایجاد اولین دستور LINQ
  • فناوریLINQ تنبل
  • پیاده سازی جستجو به کمک عنوان
  • بستاریاکلوژر و LINQ Pitfall
  • توسعه LINQ
  • فناوری LINQ با یک متد قدیمی ساده
  • متد Extension در LINQ
  • بردن یک متد به LINQ Extension
  • کد تمیز بها استفاده از توابع خالص
  • توابع خالص
  • پیاده سازی کتاب توصیه شده
  • بازسازی متد Global State Out
  • ایزوله کردن اثرات جانبی
  • پیاده سازی Delete Book
  • پیاده سازیAdd Book
  • بیرون کشیدن اثراتجانبی
  • قراردادن برنامه های کاربردی با هم
  • نوشتن اولین تست واحد خود برای تست هربخش از برنامه و کد به صورت جداگانه
  • تست توابع خالص
  • ترزیق وابستگی