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

Software Architecture: Dependency Injection for C# Devs

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: تکنیک‌های تزریق وابستگی را همراه با یک چارچوب IoC (DI-Container) بیاموزید. Grow Architecture با استفاده از DI. درک عمیق مفاهیم تزریق وابستگی و وارونگی کنترل استفاده از اصل وارونگی وابستگی (DIP) در عمل درک مفهوم DI-Containers (IoC-Containers) ساختن یک IoC-Container بی اهمیت روی خود استفاده از Refactor IoC-Containers (چارچوب ها) کد خود را با استفاده از DI با پیشرفت قابل توجهی در معماری تست های واحد بنویسید (این دوره شامل مقدمه ای بر تست واحد است) تکنیک های AOP (برنامه نویسی جنبه گرا) را اعمال کنید

ایجاد یک پایه محکم در معماری نرم افزار با استفاده از تزریق وابستگی با IoC-Containers

در بسیاری از دوره‌هایم از تکنیک‌های تزریق وابستگی استفاده می‌کنم و هر بار دانش‌آموزان برای من پیام‌های خصوصی می‌نویسند و می‌گویند که آنچه را که هست نمی‌دانند و بنابراین نمی‌فهمند در دوره‌ای که تدریس می‌کنم چه خبر است. این از دیدگاه یادگیری بسیار مایه تاسف است.

تزریق وابستگی مجموعه تکنیک هایی است که امکان تامین وابستگی به اشیاء را فراهم می کند. در واقع، اگر تا به حال وابستگی ها را از طریق سازنده ها منتقل کرده اید، به اصطلاح تزریق سازنده را اعمال کرده اید. تزریق وابستگی (DI) ساده و در عین حال دشوار است. از یک طرف، DI از تکنیک های ساده تشکیل شده است و از سوی دیگر، زمانی که ما نیاز داریم DI را به سطح بعدی برسانیم، باید با استفاده از ظروف به اصطلاح DI یا IoC (Inversion of Control) کارها را پیچیده تر کنیم. اینها چارچوب هایی هستند که به طور خودکار تزریق وابستگی را انجام می دهند. شما فقط باید یکی را در ریشه برنامه راه اندازی کنید (مفهوم بسیار مهمی که در دوره آموزشی با آن آشنا خواهید شد) و پس از آن، تمام وابستگی هایی که در زمان اجرا می داند برطرف می کند.

اگر هنوز نمی‌دانید در مورد چه چیزی صحبت می‌کنم، فقط باور کنید، شما کاملاً باید در مورد تزریق وابستگی بدانید. این دوره به طرز چشمگیری درک شما را از نحوه ظهور معماری نرم افزار بهبود می بخشد. بنابراین، این دوره برای کسانی که هنوز نمی دانند DI و IoC-Containers چیست، "باید تماشا شود".

محتوا و نمای کلی

این دوره برای همه نوع توسعه دهندگان طراحی شده است. این پایه نظری محکمی را فراهم می کند که توسط مواد عملی تقویت شده است.

این دوره شامل موارد زیر است:

  • مقدمه ای بر وارونگی کنترل :
    اصل وابستگی وارونگی (DIP)، وارونگی کنترل (IoC)، تزریق وابستگی (DI)،
    وابستگی ها و انواع آنها، DI خالص و کانتینرهای IoC، مکان یاب خدمات

  • پیامدهای معماری تزریق وابستگی

  • بازسازي‌هاي ضد الگوي مربوط به DI:
    Control Freak، وابستگي‌هاي پنهان، جفت زماني،
    تزريق بيش از حد سازنده و نحوه اجتناب از آن،
    محيط محيط، سرويس نما، تزريق اموال در مقابل تزريق حرامزاده ، وابستگی های چرخه ای

  • Refactoring مثالی از یک پایه کد موجود با اعمال تزریق وابستگی

  • چگونه میوه های DI را درو کنیم

  • DI-Containers (IoC-Containers):
    نمای کلی، وحدت، اتصال دیرهنگام با یونیتی، برنامه نویسی جنبه گرا (AOP)، Interception در مقابل Pure DI در مقابل ابزارهای AOP،

  • راه اندازی بوت استرپر با Unity، Autofac و Castle.Windsor

  • مقدمه ای بر تست واحد

روش تدریس

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

این دوره را بگذرانید و راضی خواهید بود.


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

قبل از شرکت در دوره Before taking the Course

  • چگونه سوال بپرسیم How to Ask Questions

  • مقدمه ای بر تست واحد Introduction to Unit Testing

  • کد منبع و اسلایدها را دانلود کنید Download Source Code and Slides

  • زیرنویس انگلیسی English Subtitles

  • به انجمن دانشجویان دات نت بپیوندید Join .NET Community of Students

اصل وارونگی وابستگی و تزریق وابستگی Dependency Inversion Principle and Dependency Injection

  • طرح کلی Outline

  • تعریف DIP Definition of DIP

  • وابستگی ها Dependencies

  • وابستگی های فرار و پایدار Volatile and Stable Dependencies

  • تعاریف IoC و DI Definitions of IoC and DI

  • نسخه نمایشی نقض DIP DIP Violation Demo

  • Refactoring برای طراحی بهتر با استفاده از تزریق وابستگی Refactoring to a Better Design Applying Dependency Injection

  • تکنیک های تزریق وابستگی Dependency Injection Techniques

  • مفاهیم معماری Architectural Implications

  • بوی متداول نقض DIP Common Smells of DIP Violation

  • نتیجه Conclusion

مقدمه ای بر IoC-Containers (یا DI-Containers) Introduction to IoC-Containers (or DI-Containers)

  • طرح کلی Outline

  • Pure DI و IoC-Containers Pure DI and IoC-Containers

  • ساخت یک IoC-Container ساده Building a Simple IoC-Container

  • الگوی طراحی یاب سرویس Service Locator Design Pattern

  • نسخه ی نمایشی با یک کانتینر IoC Demo With an IoC-Container

  • نتیجه Conclusion

تزریق وابستگی - ضد الگوها و بازسازی های مرتبط Dependency Injection - Related Anti-Patterns & Refactorings

  • طرح کلی Outline

  • کنترل عجایب Control Freak

  • وابستگی های پنهان با سرویس یاب Hidden Dependencies with Service Locator

  • کوپلینگ زمانی و تزریق سازنده Temporal Coupling and Constructor Injection

  • تزریق بیش از حد سازنده Constructor Over-Injection

  • زمینه محیطی Ambient Context

  • سرویس نما Facade Service

  • Property Injection VS Bastard Injection Property Injection VS Bastard Injection

  • وابستگی های چرخه ای Cyclic Dependencies

  • نتیجه Conclusion

مثال دنیای واقعی تزریق وابستگی Dependency Injection Real-World Example

  • طرح کلی Outline

  • بررسی اجمالی برنامه Application Overview

  • دسترسی به داده ها و مدل ها Data Access and Models

  • UI-Side UI-Side

  • مشکل کوپلینگ محکم The Problem of Tight Coupling

  • فرآیند بازسازی Refactoring Process

  • ایزوله کردن Bootstrapper Isolating the Bootstrapper

  • عواقب Consequences

  • نتیجه Conclusion

درو کردن میوه های DI Reaping the Fruits of DI

  • طرح کلی Outline

  • افزودن DAL جدید Adding New DAL

  • نوشتن تست های واحد برای مدل های مشاهده Writing Unit Tests for View Models

  • نتیجه Conclusion

DI-Containers (IoC-Frameworks) DI-Containers (IoC-Frameworks)

  • طرح کلی Outline

  • نمای کلی DI-Containers Overview of DI-Containers

  • Unity DI-Framework Unity DI-Framework

  • دیر پیوند با وحدت Late Binding with Unity

  • برنامه نویسی جنبه گرا (AOP) Aspect-Oriented Programming (AOP)

  • نمایش مشکل کد دیگ بخار Demonstration of the Problem of Boilerplate Code

  • پیاده سازی AOP با رهگیری Implementing AOP by Intercepting

  • رهگیری در مقابل Pure DI در مقابل AOP Tooling Interception vs Pure DI vs AOP Tooling

  • Autofac و Castle.Windsor DI-Containers Autofac and Castle.Windsor DI-Containers

  • مشکلات مربوط به DI-Containers Problems Related to DI-Containers

  • نتیجه Conclusion

  • سخنرانی جایزه BONUS Lecture

ضمیمه. مقدمه ای بر تست واحد. شروع شدن Appendix. Intro to Unit Testing. Getting Started

  • طرح کلی Outline

  • تست واحد چیست؟ What is a Unit Test

  • چارچوب های تست واحد Unit Testing Frameworks

  • اولین آزمون واحد شما Your First Unit Test

  • کنوانسیون های نامگذاری Naming Conventions

  • اجرای و اشکال زدایی تست های واحد Running and Debugging Unit Tests

  • مزایای آزمون های واحد Benefits of Unit Tests

  • چه کسی و چه زمانی باید تست های واحد بنویسد Who Should Write Unit Tests and When

  • سوگند برنامه نویس Programmer's Oath

  • تمرین: مبدل مدرک Exercise: Degree Converter

  • راه حل: مبدل مدرک Solution: Degree Converter

  • نتیجه Conclusion

ضمیمه. مقدمه ای بر تست واحد. چارچوب NUnit Appendix. Intro to Unit Testing. NUnit Framework

  • طرح کلی Outline

  • ادعای معرفی Assert Intro

  • ادعای نسخه ی نمایشی Assert Demo

  • ترتیب - عمل - ادعا Arrange-Act-Assert

  • اجرای تست ها از کنسول Running Tests from the Console

  • SetUp و TearDown SetUp and TearDown

  • OneTimeSetUp و OneTimeTearDown OneTimeSetUp and OneTimeTearDown

  • تست های واحد پارامتری شده Parameterized Unit Tests

  • گروه بندی و نادیده گرفتن آزمون های واحد Grouping and Ignoring Unit Tests

  • پوشش کد Code Coverage

  • تمرین: FizzBuzz Exercise: FizzBuzz

  • راه حل: FizzBuzz Solution: FizzBuzz

  • تمرین: تجزیه اعداد رومی Exercise: Parsing Roman Numerals

  • راه حل: تجزیه اعداد رومی Solution: Parsing Roman Numerals

  • تمرین: پشته Exercise: Stack

  • راه حل: پشته Solution: Stack

  • نتیجه Conclusion

نمایش نظرات

Udemy (یودمی)

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

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

آموزش معماری نرم افزار: تزریق وابستگی برای توسعه دهندگان سی شارپ
جزییات دوره
5.5 hours
86
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
5,827
3.9 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Engineer Spock Engineer Spock

مهندس نرم افزار - بیش از 1000 نقد، میانگین امتیاز - 4.5