آموزش برنامه‌نویسی شیءگرا در C# 14 - آخرین آپدیت

دانلود Object-oriented Programming in C# 14

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: بسیاری از توسعه‌دهندگان می‌دانند چگونه کد شیءگرا بنویسند، اما همچنان در مواجهه با طراحی‌هایی که نگهداری آن‌ها دشوار است و احتمال خطا در آن‌ها زیاد است، دچار مشکل می‌شوند. در این دوره، «برنامه‌نویسی شیءگرا در C# 14»، شما یاد می‌گیرید که چگونه استراتژی‌های طراحی شیءگرا را برای ساخت مدل‌های دامنه (Domain Models) مستحکم با استفاده از ساختارهای آشنای C# به کار ببرید. ابتدا بررسی خواهید کرد که چگونه مدل‌های کم‌خون (Anemic Models) را شناسایی کرده و آن‌ها را به اشیاء دامنه با رفتارهای غنی تبدیل (Refactor) کنید. سپس یاد می‌گیرید که چگونه از طریق سازنده‌ها (Constructors) و متدهای کارخانه (Factory Methods)، وضعیت معتبر اشیاء را تضمین کنید و چگونه روابط را به جای سلسله‌مراتب عمیق ارث‌بری، با استفاده از ترکیب (Composition) مدل‌سازی کنید. در نهایت، متوجه خواهید شد که اینترفیس‌ها، رکوردها و تغییرناپذیری (Immutability) چگونه به شما کمک می‌کنند تا رفتارها و مقادیر را با دقت بیشتری مدل‌سازی کنید. پس از اتمام این دوره، مهارت و اعتمادبه‌نفس لازم برای طراحی مدل‌های شیءگرا در C# را خواهید داشت که درک آن‌ها ساده‌تر و استفاده از آن‌ها ایمن‌تر است.

سرفصل ها و درس ها

درک مبانی برنامه‌نویسی شیءگرا در C# Understanding the foundations of OO programming in C#

  • معرفی بخش Module introduction

  • درک OOP در C# Understanding OOP in C#

  • کار با کلاس‌ها و اشیاء Working with classes and objects

  • ستون‌های اصلی شیءگرایی The pillars of OO

  • این مفاهیم چه امکاناتی فراهم می‌کنند و چه امکاناتی ندارند What these concepts enable and what they don’t

  • آماده‌سازی برای مدل‌سازی متمرکز بر طراحی Preparing for design-focused modeling

از مورد تجاری تا مدل شیءگرا From a business case to an object-oriented model

  • معرفی بخش Module introduction

  • درک مسئله تجاری Understanding the business problem

  • شناسایی کلاس‌های اصلی Identifying the core classes

  • ایجاد اولین مدل شیءگرا Creating a first object-oriented model

  • چرا این مدل (در حال حاضر) کار می‌کند Why this model works (for now)

از نوشتن کلاس‌ها تا طراحی مدل‌های دامنه From writing classes to designing domain models

  • معرفی بخش Module introduction

  • دو کلاس: کدام یک بهتر است؟ Two classes: Which is better? 

  • مدل دامنه چیست؟ What is a domain model?

  • مسیر ما در این دوره Where we’re headed in this course

طراحی مدل‌های دامنه با رفتارهای غنی Designing behavior-rich domain models

  • معرفی بخش Module introduction

  • مشکل: کیسه‌های ویژگی (Property Bags) و منطق پراکنده The problem: Property bags and scattered logic

  • کپسوله‌سازی به عنوان محافظت Encapsulation as protection

  • انتقال رفتار به جایگاه درست Moving behavior where it belongs

  • اختصاص مسئولیت به اشیاء Assigning responsibility to objects

  • مزایا: قبل و بعد The benefits: Before and after

ساخت اشیایی که همیشه معتبر هستند Creating objects that are always valid

  • معرفی بخش Module introduction

  • مشکل: اشیایی که در وضعیت نامعتبر ایجاد می‌شوند The problem: Objects created in an invalid state

  • سازنده‌ها به عنوان نگهبانان Constructors as gatekeepers

  • سازنده‌های متعدد، یک وضعیت معتبر Multiple constructors, one valid state

  • مقداردهنده‌های شیء: راحت اما نه همیشه ایمن Object initializers: Convenient, but not always safe

  • سازنده‌های اولیه (Primary Constructors) در محیط عملیاتی Primary constructors in context

  • زمانی که سازنده‌ها باعث ایجاد مشکل می‌شوند When constructors start to hurt

کپسوله‌سازی ایجاد اشیاء با متدهای کارخانه Encapsulating object creation with factory methods

  • معرفی بخش Module introduction

  • شناسایی نقاط ضعف سازنده‌ها Recognizing constructor pain points

  • معرفی متدهای کارخانه استاتیک Introducing static factory methods 

  • سازنده‌های خصوصی و ایجاد کنترل‌شده Private constructors and controlled creation 

  • نگاهی سریع به اشیاء کارخانه A quick look at factory objects

مدل‌سازی روابط با استفاده از ترکیب Modeling relationships with composition

  • معرفی بخش Module introduction

  • درک روابط بین اشیاء Understanding object relationships

  • مدل‌سازی روابط یک به یک Modeling one-to-one relationships 

  • مدل‌سازی روابط یک به چند Modeling one-to-many relationships 

  • تزریق سازنده: پاس دادن وابستگی‌ها Constructor injection: Passing dependencies 

  • ترکیب در مقابل ارث‌بری: انتخاب درست Composition vs. inheritance: Making the choice

جایگزینی دستورات شرطی با چندریختی (Polymorphism) Replacing conditionals with polymorphism

  • معرفی بخش Module introduction

  • مشکل: وجود دستورات شرطی در همه جا The problem: Conditionals everywhere 

  • معرفی انتزاع (Abstraction) Introducing abstraction

  • جایگزینی دستورات شرطی با چندریختی Replacing conditionals with polymorphism 

  • چندریختی در محل فراخوانی Polymorphism at the call site

  • محافظت از انتزاع با کلمه sealed Protecting your abstraction with sealed

تعریف قابلیت‌ها با استفاده از اینترفیس‌ها Defining capabilities with interfaces

  • معرفی بخش Module introduction

  • اینترفیس‌ها به عنوان قابلیت، نه قراردادهای داده Interfaces as capabilities, not data contracts

  • طراحی یک اینترفیس قابلیت Designing a capability interface

  • پیاده‌سازی قابلیت‌های متعدد Implementing multiple capabilities 

  • چندریختی از طریق اینترفیس‌ها Polymorphism through interfaces 

  • اینترفیس‌ها در مقابل کلاس‌های انتزاعی Interfaces vs. abstract classes

  • اینترفیس‌های داخلی به عنوان الهام‌بخش طراحی Built-in interfaces as design inspiration

استفاده دقیق و آگاهانه از ارث‌بری Using inheritance carefully and deliberately

  • معرفی بخش Module introduction

  • معنای واقعی ارث‌بری در یک دامنه What inheritance really means in a domain

  • ارث‌بری معتبر: هویت پایدار Valid inheritance: Stable identity

  • زمانی که ارث‌بری به یک بوی بد طراحی (Design Smell) تبدیل می‌شود When inheritance becomes a design smell

  • بازبینی ارث‌بری در مقابل ترکیب Inheritance vs. composition revisited

مدل‌سازی اشیاء مقدار (Value Objects) و تغییرناپذیری با رکوردها Modeling value objects and immutability with records

  • معرفی بخش Module introduction

  • موجودیت‌ها (Entities) در مقابل مقادیر (Values) Entities vs. values

  • هزینه پنهان مقادیر تغییرپذیر The hidden cost of mutable values 

  • طراحی اشیاء مقدار تغییرناپذیر Designing immutable value objects

  • برابری و معناشناسی مقدار Equality and value semantics

  • معرفی رکوردها برای اشیاء مقدار Introducing records for value objects 

  • به‌روزرسانی مقادیر تغییرناپذیر با عبارت‌های with Updating immutable values with "with" expressions 

  • زمانی که رکوردها مناسب هستند (و نیستند) When records are (and aren’t) a good fit

حفظ قابلیت نگهداری مدل‌های دامنه در طول زمان Keeping domain models maintainable over time

  • معرفی بخش Module introduction

  • دانستن اینکه رفتار متعلق به کجاست Knowing where behavior belongs

  • نرده‌های حفاظتی برای محافظت از مدل دامنه شما Guardrails that protect your domain model

  • تکامل مدل دامنه بدون شکستن آن Evolving a domain model without breaking it

  • متدهای توسعه (Extension Methods) به عنوان ابزار طراحی Extension methods as a design tool

  • جمع‌بندی دوره Course wrap-up

نمایش نظرات

آموزش برنامه‌نویسی شیءگرا در C# 14
جزییات دوره
4h 58m
71
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
3
از 5
دارد
دارد
دارد
Gill Cleeren
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Gill Cleeren Gill Cleeren

گیل کلیرن مدیر منطقه ای مایکروسافت ، نویسنده MVP و Pluralsight است. گیل یک معمار مستقل راه حل است که در بلژیک زندگی می کند. او روی توسعه وب و موبایل تمرکز دارد و عاشق Xamarin است. وی همچنین سخنران مکرر بسیاری از کنفرانس های بین المللی است. گیل همچنین بزرگترین کنفرانس IT در بلژیک و هلند را Techorama تأسیس کرد. می توانید وب سایت وی را به آدرس www.snowball.be بیابید.

C#