آموزش طراحی شی گرا در سی شارپ
برنامه نویسی شی گرا (Object Oriented Programming)

توضیحات
آموزش طراحی شی گرا در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، اصول طراحی شی گرا در سی شارپ است که با نام اصلی Object-oriented Design with C# 10 از شرکت Pluralsight منتشر شده است.
طراحی شیءگرا (Object-Oriented Design)
طراحی شی گرا (OOD) یک الگوی طراحی نرمافزار است که دور از مفهوم “اشیاء” میچرخد که داده و رفتار را در خود شامل میشود. در OOD، یک برنامه به عنوان مجموعهای از این اشیاء ساختاردهی میشود، که هر کدام توسط یک کلاس تعریف میشوند. کلاسها به عنوان الگوهای اجرایی برای اشیاء عمل میکنند، ویژگیها (داده) و متدها (رفتار) آنها را مشخص میکنند. این رویکرد ماژولاریته، قابل استفادهبودن مجدد، و درک روشن از ساختار نرمافزار را ترویج میدهد. این تاکید دارد که کد بر اساس موجودیتهای واقعی سازماندهی شود، ترویج میدهد و طراحی حداکثراً مفهومی و قابل نگهداریتری را ایجاد میکند.

برنامهنویسی شیءگرا (Object-Oriented Programming)
زبان برنامه نویسی سیشارپ یک زبان برنامهنویسی قدرتمند است که شامل مجموعهای از ویژگیها بوده و برای برنامهنویسی شیءگرا (OOP) ایدهآل است. یکی از ویژگیهای کلیدی آن، پشتیبانی از کلاسها و اشیاء است که به توسعهدهندگان امکان میدهد کد ماژولار و قابل استفاده مجدد ایجاد کنند. این زبان ارثبری را نیز فراهم میکند که امکان ایجاد سلسلهمراتب از کلاسها را میدهد، به طوری که یک زیرکلاس میتواند ویژگیها و متدها را از یک کلاس مادر به ارث ببرد. از دیگر جنبههای مهم، محافظت از اطلاعات است، زیرا سی شارپ امکان گروهبندی دادهها و متدها را درون یک کلاس فراهم کرده و از طریق محافظتکنندههای دسترسی، کنترل دسترسی را مدیریت میکند. چندریختی (Polymorphism) نیز از طریق رابطها و کلاسهای انتزاعی فراهم میشود که به اشیاء این امکان را میدهد بر اساس ویژگیهای مشترک به صورت یکنواخت عمل کنند. علاوه بر این، سی شارپ ویژگیهایی مانند خصوصیات (Properties)، رویدادها (Events) و نمایندگان (Delegates) را پشتیبانی میکند که به ایجاد طراحیهای شیءگرای منعطف و قابل گسترش کمک میکنند. به طور کلی، سی شارپ یک پایه قوی برای توسعه نرمافزارهای قابل مقیاس و قابل نگهداری بر اساس اصول برنامهنویسی شیءگرا ارائه میدهد.
طراحی شیءگرا (OOD) و برنامهنویسی شیءگرا (OOP)
طراحی شیءگرا (OOD) و برنامهنویسی شیءگرا (OOP) مفاهیم مرتبط در توسعه نرمافزار هستند، اما هر یک اهداف متفاوتی را خدمت میکنند. طراحی شیءگرا به طور اصلی بر روی ساختار و سازماندهی سطح بالا یک سیستم نرمافزاری تمرکز دارد. این شامل تصور و برنامهریزی سیستم با تعریف کلاسها، روابط آنها و معماری کلی است. در طراحی شیءگرا، تاکید بر انتزاع موجودیتهای واقعی به کلاسها و شناسایی تعاملات آنها است. از طرف دیگر، برنامهنویسی شیءگرا مرحله اجرایی است که پس از طراحی شیءگرا انجام میشود. این شامل ترجمه سیستم طراحی شده به کد قابل اجرا با استفاده از یک زبان برنامهنویسی است که اصول OOP را پشتیبانی میکند، مانند تجمع، ارثبری و چندریختی. در حالی که طراحی شیءگرا بیشتر با جنبههای مفهومی و معماری سیستم سروکار دارد، برنامهنویسی شیءگرا درباره نوشتن کد واقعی است که اصول طراحی را دنبال میکند. در جوهر، طراحی شیءگرا یک انتزاع سطح بالا است که بر ساختار سیستم تمرکز دارد، در حالی که برنامهنویسی شیءگرا برنامهنویسی عملی این اصول طراحی را در نوشتن نرمافزار اجرایی است.
سرفصل مطالب آموزش ویدئویی طراحی شی گرا در سی شارپ
فصل اول: مقدمه دوره آموزشی
- مقدمه دوره
فصل دوم: مقدمهای بر طراحی شیگرا
- مقدمه
- بررسی Mermaid
- بررسی Pillar ها و Principleها
- بررسی Coupling و Cohesion
- اسمها، افعال، صفتها و موجودیتها
- جمع بندی
فصل سوم: چهار Pillar اصلی
- مقدمه
- انتزاع و یا Abstraction
- کپسولهسازی و یا Encapsulation
- وراثت و یا Inheritance
- پلیمورفیسم و یا Polymorphism
- جمع بندی
فصل چهارم: اصول SOLID
- مقدمه
- اصل Single Responsibility Principle
- اصل Open-Closed Principle
- اصل Liskov Substitution Principle
- اصل Interface Segregation Principle
- اصل Dependency Inversion Principle
- جمع بندی
فصل پنجم: مقدمهای بر الگوهای طراحی
- مقدمه
- الگوی Singleton
- الگوی Builder
- الگوی Strategy
- جمع بندی
فصل ششم: قابلیت تهی بودن (Nullability)
- مقدمه
- قابلیت تهی بودن در .NET
- محافظت در برابر مقادیر تهی
- تنظیمات پروژه و Nullability Context ها
- جمع بندی
فصل هفتم: برابری، تغییرناپذیری و رکوردها
- مقدمه
- تغییرناپذیری و یا Immutability
- برابری و یا Equality
- رکوردها
- رکوردهای ساختاری و یا Record Struct ها
- جمع بندی
فصل هشتم: مثالهای شیگرا
- مقدمه
- پیاده سازی OffsetDateTime
- پیاده سازی الگوی Options
- جمع بندی
فصل نهم: جمعبندی
- مقدمه
- طراحی Solution
- پیادهسازی Domain
- دسترسی به دادهها
- منطق تجاری
- جمع بندی