آموزش تسلط بر هنر نوشتن کدهای پاک در سی شارپ

Master the Art of Writing Clean Code in C#

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: یاد بگیرید که چگونه کدهای تمیز و قابل نگهداری در سی شارپ بنویسید که توسط عمو باب وصیت شده است. نحوه انجام refactoring در سی شارپ را بیاموزید. بهترین نام ها را برای توابع، متغیرها و سایر اعضای API انتخاب کنید و به فرااصول برنامه نویسی مانند DRY، YAGNI، KISS و موارد دیگر تکیه کنید. بوهای مرتبط نوشتن تست های واحد تمیز تمرین توسعه تست محور پیش نیازها: از قبل باید با اصول سی شارپ آشنا باشید

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

دانش خود را در برنامه نویسی شی گرا در زمینه کدنویسی تمیز و ساخت انواع با کیفیت بالا بهبود بخشید.

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

مبانی ساخت زیرساخت های شی گرا

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

احتمالاً قبلاً عبارت معروف زیر را شنیده‌اید: اکثر کدها بد است. خوب، این دوره درباره نحوه تولید کدی است که بد نیست.

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

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

این دوره برای همه توسعه دهندگان سی شارپ، از مبتدی تا ارشد، در نظر گرفته شده است. موضوعاتی که در این دوره پوشش داده می‌شوند برای همه نوع توسعه‌دهندگان C# مرتبط هستند، زیرا همه توسعه‌دهندگان API را طراحی و پیاده‌سازی می‌کنند. پیچیدگی موضوعات بسیار متفاوت است. بسیاری از موضوعات بسیار ساده وجود دارد، و در عین حال، موضوعاتی وجود دارد که از شما نیاز به یک پس زمینه قوی C# دارد. نمونه‌های کد زیادی در طول این دوره وجود دارد، بنابراین شما هم مطالب تئوری و هم عملی را یاد خواهید گرفت.

دوره آموزشی موضوعات زیر را پوشش می دهد:

  • اصول متا: DRY، KISS، YAGNI، SoC، CQS، PoLA، Encapsulation
  • چگونه نام‌های بهتری برای اعضای API بگذاریم و چه قراردادهای نام‌گذاری در پلتفرم دات‌نت وجود دارد و برای C# مناسب است
  • مشکلات رایجی که توسعه‌دهندگان سی شارپ در فرآیند طراحی و پیاده‌سازی API با آن مواجه می‌شوند: کلاس‌ها در مقابل ساختارها، الگوهای خلاقانه در مقابل سازنده‌ها،  نام‌گذاری ضعیف، روش‌های بسیار طولانی، پارامترهای خروجی و غیره.
  • طراحی معماری رایج بویی مانند وسواس اولیه، وابستگی های پنهان، نقض قانون دمتر و موارد دیگر را می دهد.
  • برنامه نویسی عملکردی: تغییر ناپذیری، جفت موقت، خط لوله، توسعه IDdisposable، الگوی طراحی سازنده، سوء استفاده از روش های توسعه، مقابله با خطاها
  • ضد الگوهای مرتبط با DI: کنترل عجیب و غریب، وابستگی های پنهان، جفت موقت، زمینه محیطی، سرویس نما، تزریق حرامزاده، وابستگی های چرخه ای
  • تست‌های واحد پاک: تک‌تون‌ها و کلاس‌های استاتیک، تعداد بیش از حد رابط‌ها، آزمایش کدهای بی‌اهمیت، آزمایش یک نگرانی واحد، بهترین شیوه‌های مختلف
  • تمرین TDD: تعریف، 3 قانون، تجزیه اعداد رومی، آزمایش مداوم، اجرای Tic-Tac-Toe

لیست تا کامل شدن فاصله زیادی دارد. این دوره تعداد زیادی از موضوعات را پوشش می دهد. ثبت نام کنید و شروع به تسلط بر هنر نوشتن کدهای پاک در سی شارپ کنید!

---------------------------------------------- -------------

کلمات کلیدی مرتبط با دوره:

  • C# Clean Code
  • بهترین روش های سی شارپ
  • API در C#
  • ایجاد API در سی شارپ
  • پاک کردن کد در آموزش C#
  • Refactoring

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

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

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

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

  • کد منبع را دانلود کنید Download Source Code

  • کد منبع را دانلود کنید Download Source Code

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

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

  • انگیزه برای نوشتن کد پاک Motivation for Writing Clean Code

  • انگیزه برای نوشتن کد پاک Motivation for Writing Clean Code

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

فرااصول برنامه نویسی Programming Metaprinciples

  • طرح کلی Outline

  • DRY - خودتان را تکرار نکنید DRY - Don't Repeat Yourself

  • DRY - خودتان را تکرار نکنید DRY - Don't Repeat Yourself

  • KISS - آن را ساده نگه دار، احمقانه KISS - Keep it Simple, Stupid

  • یاگنی - تو به آن نیاز نخواهی داشت YAGNI - You Ain't Gonna Need It

  • جداسازی نگرانی ها (SoC) Separation of Concerns (SoC)

  • اصل جداسازی پرس و جوی فرمان (CQS) Command-Query Separation Principle (CQS)

  • اصل کمترین حیرت Principle of Least Astonishment

  • کپسوله سازی و پنهان کردن اطلاعات Encapsulation and Information Hiding

  • کپسوله سازی و پنهان کردن اطلاعات Encapsulation and Information Hiding

  • نتیجه Conclusion

فرااصول برنامه نویسی Programming Metaprinciples

  • طرح کلی Outline

  • KISS - آن را ساده نگه دار، احمقانه KISS - Keep it Simple, Stupid

  • یاگنی - تو به آن نیاز نخواهی داشت YAGNI - You Ain't Gonna Need It

  • جداسازی نگرانی ها (SoC) Separation of Concerns (SoC)

  • اصل جداسازی پرس و جوی فرمان (CQS) Command-Query Separation Principle (CQS)

  • اصل کمترین حیرت Principle of Least Astonishment

  • نتیجه Conclusion

نامگذاری اعضای API Naming API Members

  • طرح کلی Outline

  • اصول کلی نامگذاری General Principles of Naming

  • اصول کلی نامگذاری General Principles of Naming

  • درباره نامگذاری یک بار دیگر About Naming Once Again

  • درباره نامگذاری یک بار دیگر About Naming Once Again

  • قراردادهای نامگذاری در دات نت Naming Conventions in .NET

  • نتیجه Conclusion

نامگذاری اعضای API Naming API Members

  • طرح کلی Outline

  • قراردادهای نامگذاری در دات نت Naming Conventions in .NET

  • نتیجه Conclusion

نوشتن توابع پاک Writing Clean Functions

  • طرح کلی Outline

  • اعلامیه متغیر در بالا Variable Declaration on the Top

  • اعلامیه متغیر در بالا Variable Declaration on the Top

  • اعداد جادویی Magic Numbers

  • بوی تایپ شده "رشته ای". "Stringly" Typed Smell

  • روش Property VS Property VS Method

  • روش Property VS Property VS Method

  • پارامترهای پیاده سازی Implementing Parameters

  • پارامترهای پیاده سازی Implementing Parameters

  • پارامترهای خیلی زیاد Too Many Parameters

  • پارامترهای خیلی زیاد Too Many Parameters

  • روش های خیلی طولانی Too Long Methods

  • الگوهای خلاقانه در مقابل سازندگان Creational Patterns VS Constructors

  • "روش استخراج" Refactoring "Extract Method" Refactoring

  • "روش استخراج" Refactoring "Extract Method" Refactoring

  • ساده سازی منطق پیچیده Simplifying Complex Logic

  • دنباله استدلال Sequence of Arguments

  • بندهای نگهبانی و بازگشت زودهنگام Guard Clauses and Early Returns

  • بندهای شرطی ضعیف Poor Conditional Clauses

  • بندهای شرطی ضعیف Poor Conditional Clauses

  • پارامترهای خروجی Output Parameters

  • پارامترهای خروجی Output Parameters

  • نظرات Comments

  • بیانیه های اگر مثبت را ترجیح دهید Prefer Positive if-Statements

  • بیانیه های اگر مثبت را ترجیح دهید Prefer Positive if-Statements

  • نتیجه Conclusion

نوشتن توابع پاک Writing Clean Functions

  • طرح کلی Outline

  • اعداد جادویی Magic Numbers

  • بوی تایپ شده "رشته ای". "Stringly" Typed Smell

  • روش های خیلی طولانی Too Long Methods

  • الگوهای خلاقانه در مقابل سازندگان Creational Patterns VS Constructors

  • ساده سازی منطق پیچیده Simplifying Complex Logic

  • دنباله استدلال Sequence of Arguments

  • بندهای نگهبانی و بازگشت زودهنگام Guard Clauses and Early Returns

  • نظرات Comments

  • نتیجه Conclusion

بوی طراحی معماری رایج Common Architectural Design Smells

  • طرح کلی Outline

  • وسواس بدوی Primitives Obsession

  • نقض قانون دمتر Violation of Law of Demeter

  • جفت زمانی Temporal Coupling

  • جفت زمانی Temporal Coupling

  • بازسازی به الگوی طراحی "روش الگو". Refactoring to "Template Method" Design Pattern

  • بازسازی به الگوی طراحی "روش الگو". Refactoring to "Template Method" Design Pattern

  • بازسازی به الگوی طراحی "استراتژی". Refactoring to "Strategy" Design Pattern

  • بازسازی به الگوی طراحی "استراتژی". Refactoring to "Strategy" Design Pattern

  • بازسازی به الگوی طراحی "دولت". Refactoring to "State" Design Pattern

  • بازسازی به الگوی طراحی "دولت". Refactoring to "State" Design Pattern

  • نتیجه Conclusion

  • نتیجه Conclusion

بوی طراحی معماری رایج Common Architectural Design Smells

  • طرح کلی Outline

  • وسواس بدوی Primitives Obsession

  • نقض قانون دمتر Violation of Law of Demeter

  • نتیجه Conclusion

برنامه نویسی تابعی: توسعه پذیری و تغییرناپذیری Functional Programming: Extendibility and Immutability

  • طرح کلی Outline

  • پارادایم های برنامه نویسی Programming Paradigms

  • تعریف برنامه نویسی تابعی Defining Functional Programming

  • توابع، توابع، و دوباره توابع Functions, Functions, and Functions Again

  • توابع، توابع، و دوباره توابع Functions, Functions, and Functions Again

  • چرا برنامه نویسی کاربردی؟ Why Functional Programming?

  • چرا برنامه نویسی کاربردی؟ Why Functional Programming?

  • تغییرناپذیری مقدمه Immutability. Intro

  • تغییرناپذیری مقدمه Immutability. Intro

  • تغییرناپذیری سازه ها Immutability of Structures

  • تغییرناپذیری سازه ها Immutability of Structures

  • جفت شدن زمانی و تغییرناپذیری Temporal Coupling and Immutability

  • لوله کشی Pipelining

  • لوله کشی Pipelining

  • گسترش IDdisposable Extending IDisposable

  • گسترش IDdisposable Extending IDisposable

  • برنامه های افزودنی عمومی General Extensions

  • گسترش StringBuilder Extending StringBuilder

  • گسترش StringBuilder Extending StringBuilder

  • سوء استفاده از روش های گسترش Abusing Extension Methods

  • الگوی طراحی سازنده تغییرناپذیری و آزمون پذیری Builder Design Pattern. Immutability and Testability

  • خطاها و برنامه ریزی کاربردی Errors and Functional Programming

  • رسیدگی به خطاها: لوله گذاری با روش زنجیرزنی Errors Handling: Pipelining by Method Chaining

  • رسیدگی به خطاها: لوله گذاری با روش زنجیرزنی Errors Handling: Pipelining by Method Chaining

  • نتیجه Conclusion

برنامه نویسی تابعی: توسعه پذیری و تغییرناپذیری Functional Programming: Extendibility and Immutability

  • طرح کلی Outline

  • پارادایم های برنامه نویسی Programming Paradigms

  • تعریف برنامه نویسی تابعی Defining Functional Programming

  • جفت شدن زمانی و تغییرناپذیری Temporal Coupling and Immutability

  • برنامه های افزودنی عمومی General Extensions

  • سوء استفاده از روش های گسترش Abusing Extension Methods

  • الگوی طراحی سازنده تغییرناپذیری و آزمون پذیری Builder Design Pattern. Immutability and Testability

  • خطاها و برنامه ریزی کاربردی Errors and Functional Programming

  • نتیجه Conclusion

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

  • طرح کلی Outline

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

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

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

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

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

  • سرویس نما Facade Service

  • تزریق اموال یعنی تزریق حرامزاده؟ Property Injection Means Bastard Injection?

  • تزریق اموال یعنی تزریق حرامزاده؟ Property Injection Means Bastard Injection?

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

  • نتیجه Conclusion

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

  • طرح کلی Outline

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

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

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

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

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

  • سرویس نما Facade Service

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

  • نتیجه Conclusion

تست های واحد تمیز Clean Unit Tests

  • طرح کلی Outline

  • کلاس های تک تن و استاتیک Singletons and Static Classes

  • رابط های بسیار زیاد Too Many Interfaces

  • حذف رابط ها Removing Interfaces

  • تست کدهای بی اهمیت Testing Trivial Code

  • آزمایش تک نگرانی Test Single Concern

  • بهترین روش‌های تست واحد بیشتر More Unit Testing Best Practices

  • نتیجه Conclusion

تست های واحد تمیز Clean Unit Tests

  • طرح کلی Outline

  • کلاس های تک تن و استاتیک Singletons and Static Classes

  • رابط های بسیار زیاد Too Many Interfaces

  • حذف رابط ها Removing Interfaces

  • تست کدهای بی اهمیت Testing Trivial Code

  • آزمایش تک نگرانی Test Single Concern

  • بهترین روش‌های تست واحد بیشتر More Unit Testing Best Practices

  • نتیجه Conclusion

کد پاک و TDD Clean Code and TDD

  • طرح کلی Outline

  • طرح کلی Outline

  • TDD چیست؟ What is TDD?

  • قرمز/سبز/Refactor Red / Green / Refactor

  • سه قانون TDD Three Laws of TDD

  • سه قانون TDD Three Laws of TDD

  • خواندن اعداد رومی Reading Roman Numerals

  • تست مداوم Continuous Testing

  • تیک تاک پا (صلیب ها و نوت ها) Tic-Tac-Toe (Crosses and Noughts)

  • نتیجه Conclusion

  • نتیجه Conclusion

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

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

کد پاک و TDD Clean Code and TDD

  • TDD چیست؟ What is TDD?

  • قرمز/سبز/Refactor Red / Green / Refactor

  • خواندن اعداد رومی Reading Roman Numerals

  • تست مداوم Continuous Testing

  • تیک تاک پا (صلیب ها و نوت ها) Tic-Tac-Toe (Crosses and Noughts)

  • نتیجه Conclusion

نمایش نظرات

آموزش تسلط بر هنر نوشتن کدهای پاک در سی شارپ
جزییات دوره
7 hours
88
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
5,107
- از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Engineer Spock Engineer Spock

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