آموزش پیشرفته برنامه نویسی شی گرا در سی شارپ

مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش پیشرفته برنامه نویسی شی گرا در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی شی گرا کردن بیشتر کد است که با نام اصلی Making Your C# Code More Object-oriented از شرکت Pluralsight منتشر شده است.

برنامه نویسی شی گرا چیست؟

برنامه نويسي شي گرا در اوايل دهه ۱۹۷۰ توسط آلن کي Alan Kay طراحي شده يعني اولين قدمهاي اين سبک برنامه نويسي توسط آلن کي برداشته شده است. اولين زبان شي گرا توسط آلن کي طراحي شد. اسم اين زبان Small Talk  است. آلن کي گفته بود که: آن چيزي که باعث شد اين فکر به ذهنم برسد نحوه عملکرد سلولهاي زيست محيطي بود. يعني اين سبک برنامه نويسي از روي سلولهاي جاندارها الگو برداري شده است.

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

oop-advanced

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

سرفصل مطالب آموزش ویدئویی شی گرایی پیشرفته در سی شارپ

فصل اول: مقدمه دوره آموزشی

  • مقدمه

فصل دوم: اضافه کردن Extensibility به کد شی گرا

  • چه چیزی کد را شی گرا می کند؟
  • چه چیزی در این دوره ی آموزشی وجود دارد؟
  • یک مثال که فاقد Object است
  • قرار دادن Object ها در مکانی که غیرممکن به نظر می آید
  • جمع بندی

فصل سوم: منسوخ کردن جملات شرطی برای انجام Boolean Test ها

  • معرفی کردن مشکل موجود در کد
  • کشف کردن مشکل
  • تبدیل کردن Branch به یک Function
  • تبدیل کردن یک Function به یک State
  • منتقل کردن تمامی کدهای مربوط به State به درون State ها
  • بررسی بهبودهای انجام شده
  • جمع بندی

فصل چهارم: تمرکز بر روی Domain Logic با استفاده از Sequence ها

  • درک کردن مشکل
  • بررسی کردن راه حل مورد نظر
  • Aggregate کردن Solution
  • بهبود دادن Readability
  • بهبود دادن Performance مربوط به Infrastructural Operation ها
  • جمع بندی

فصل پنجم: جدا کردن Structure از Operation های انجام شده بر روی Business Data

  • مشحص کردن مشکل مربوط به انتخاب کردن یک Object
  • مشحص کردن مشکل مربوط به ترکیب کردن یک Object
  • فهمیدن مشکل
  • رفتار کردن با Collection ای از Object ها به عنوان یک Object
  • پیاده سازی Collection ای از Object ها
  • بررسی Compositional Function Idea
  • بررسی Generalized Composition Function
  • جمع بندی

فصل ششم: تبدیل کردن الگوریتم به Strategy Object ها

  • مشخص کردن مشکل مربوط به بک الگوریتم متغیر
  • تفکیک کردن الگوریتم
  • مشخص کردن Moving Part های یک الگوریتم
  • تجزیه و تحلیل کردن Template Method با Strategy Object
  • خارج کردن Strategy به یک کلاس جداگانه
  • پیاده سازی یک کلاس Strategy
  • جمع بندی

فصل هفتم: استفاده از Immutable Object ها در زمان مناسب

  • ایجاد یک Bug از یک Mutable Object ریشه گرفته است
  • کشف کردن Aliasing Bug
  • رفع کردن Aliasing Bug
  • فهمیدن Value Object ها
  • پیاده سازی Reference Type به عنوان یک Value Type
  • مصرف کردن Immutable Class
  • تبدیل کردن Immutable Object ها به Value Object ها
  • پشتیبانی کردن از Hash Table ها
  • کامل کردن Equality Test ها
  • مقایسه ی Mutable بودن، Immutable بودن و Value Object ها
  • جمع بندی

فصل هشتم: استفاده از Special Case Object ها برای حذف کردن Null Check ها

  • فهمیدن مشکل Null ها
  • معرفی کردن یک Design بدون Null Reference
  • چگونه هیچگاه Null را Return نکنیم
  • نشان دادن قدرت Null Object ها
  • معرفی Special Case ها
  • تبدیل کردن Boolean Query Method ها به Operation های واقعی
  • جایگزین کردن Object ها در زمان Run Time
  • جمع بندی

فصل نهم: تبدیل کردن Optional Call ها به Call هایی بر روی Optional Object ها

  • پیچیده کردن نیازمندی هایی که منجر به استفاده از Null می شوند
  • مشخص کردن مشکل مربوط به Object هایی که وجود ندارند
  • نشان دادن Object های اختیاری به عنوان یک Collection
  • Wrap کردن یک Collection در یک Option Type
  • بهبود Readability مربوط به Client Code
  • اضافه کردن Pattern Matching به Option ها
  • پیاده سازی سنگین وزن Option ها با Pattern Matching
  • نشان دادن عملی استفاده از Option Type سنگین وزن
  • جمع بندی

فصل دهم: افزایش انعطاف پذیری با حذف کردن Switch Statement ها

  • اضافه کردن نیازمندی هایی که منجر به Multiway Branching می شوند
  • استفاده از روش سنتی Switch و یک Enum
  • Encapsulate کردن Representation در یک کلاس جداگانه
  • استفاده کردن از Encapsulated Representation به عنوان یک Key
  • تبدیل کردن Multiway Branching به یک Dictionary
  • جایگزین کردن Multiway Branching Object در زمان Run Time
  • جمع بندی

فصل یازدهم: تبدیل کردن Chained Branching به Chain of Rule Object ها

  • پیاده سازی زنجیر سنتی جملات If-Then-Else
  • پیشنهاد یک طراحی شی گرا
  • پیاده سازی Concrete Rule ها
  • ساده سازی پیاده سازی از طریق ریفکتورینگ
  • ترکیب کردن Primitive Rule ها به Complex Rule ها
  • نشان دادن عملی انعطاف پذیری مربوط به Chain of Rule ها
  • جمع بندی

فصل دوازدهم: انجام ریفتکتورینگ برای انجام عملی همه ی کارها

  • معرفی یک مثال
  • تجزیه و تحلیل پیاده سازی اولیه
  • کشف کردن Infrastructural Code
  • Explicit کردن Infrastrucutre
  • حذف کردن تمامی Infrastructure از پیاده سازی
  • جهت حرکت با Infrastructural Code
  • سود بردن از انعطاف پذیری کد شی گرا
  • جمع بندی
  • جمع بندی بسته ی آموزشی

نقد و بررسی‌ها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش پیشرفته برنامه نویسی شی گرا در سی شارپ”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته های محصولات

افزودن به سبد خرید