آموزش کد پاک

Clean Code

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

به عنوان یک توسعه دهنده، باید بتوانید کدی بنویسید که کار می کند - البته!

متاسفانه، بسیاری از توسعه دهندگان با این وجود کد بد می نویسند - حتی اگر کد کار می کند. زیرا "کد کاری" با "کد پاک" یکی نیست!

این دوره به شما یاد می دهد که چگونه کدهای تمیز بنویسید - کدهایی که خواندن و درک آن برای انسان ها و نه فقط رایانه ها آسان است!

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

زیرا این فقط رایانه نیست که باید کد شما را درک کند - همکاران شما و خود آینده شما نیز باید بتوانند آن را درک کنند!

در این دوره، ما به تمام "نقاط دردناک" اصلی مربوط به کد تمیز (یا کد بد - بسته به نوع نگاه شما به آن) می پردازیم و شما نه تنها یاد خواهید گرفت که چه چیزی کد بد را تشکیل می دهد، بلکه البته همچنین نحوه تبدیل آن به کد تمیز.

به طور خاص، شما در مورد:

یاد خواهید گرفت
  • نام‌گذاری "چیزها" (متغیرها، ویژگی‌ها، کلاس‌ها، توابع، ...) به درستی و به روشی تمیز

  • تله‌ها و اشتباهات رایجی که باید هنگام نام‌گذاری چیزها اجتناب کنید

  • نظرات و اینکه اکثر آنها بد هستند

  • نظرات خوبی که می‌توانید به کد خود اضافه کنید

  • قالب‌بندی کد - قالب‌بندی افقی و عمودی

  • توابع و نحوه محدود کردن تعداد پارامترهای تابع

  • نحوه نوشتن توابع تمیز با تمرکز بر "یک چیز"

  • چگونه سطوح انتزاع به شما کمک می‌کند توابع را تقسیم کرده و کوچک نگه دارید

  • نحوه نوشتن توابع DRY و جلوگیری از عوارض جانبی غیرمنتظره

  • اجتناب از ساختارهای کنترلی عمیق تو در تو با حفاظ ها و با استخراج عملکرد در توابع

  • خطاها و رسیدگی به خطا به عنوان جایگزینی برای if-statements

  • محفظه های داده اشیاء/ساختارهای داده و اینکه چرا این تمایز می تواند مهم باشد

  • انسجام و نحوه نوشتن کلاسهای خوب (کوچک!)

  • قانون دمتر و چرایی اهمیت آن برای کد پاک

  • اصول SOLID چیست و چرا هنگام نوشتن کد تمیز اهمیت دارد

  • خیلی بیشتر!

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

در این دوره آموزشی، شما با طیف گسترده ای از مفاهیم، ​​قوانین، ایده ها، افکار و اصول آشنا خواهید شد و البته در پایان، ایده خوبی خواهید داشت که هنگام نوشتن چه چیزی را باید در ذهن داشته باشید. کد تمیز.

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

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

این دوره از پایتون، جاوا اسکریپت و تایپ اسکریپت برای نمونه کد استفاده می کند، اما برای دنبال کردن و بهره مندی زیاد از دوره، نیازی به دانستن این زبان ها ندارید. علاوه بر این، این دوره بر روی یک سبک یا پارادایم برنامه نویسی خاص (مانند برنامه نویسی تابعی، برنامه نویسی شی گرا و غیره) تمرکز نمی کند، بلکه مفاهیم و تکنیک های کلی را پوشش می دهد که همیشه کاربرد دارند.

پیش نیازهای دوره چیست؟

  • دانش برنامه نویسی اولیه (بدون توجه به زبان) مورد نیاز است!

  • برای دنبال کردن، نیازی به دانستن زبان برنامه نویسی یا الگوی برنامه نویسی خاصی ندارید

  • تجربه قبلی با نوشتن کد تمیز لازم نیست


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

شروع شدن Getting Started

  • به دوره خوش آمدید! Welcome to the Course!

  • "کد پاک" چیست؟ What is "Clean Code"?

  • کد پاک - نکات کلیدی درد و نحوه نوشتن کد پاک Clean Code - Key Pain Points & How To Write Clean Code

  • ساختار این دوره چگونه است؟ How Is This Course Structured?

  • پیش نیازهای دوره Course Prerequisites

  • کد پاک و زبان های تایپ شده قوی Clean Code & Strongly Typed Languages

  • درباره نمونه های کد دوره About The Course Code Examples

  • به انجمن آموزشی ما بپیوندید! Join Our Learning Community!

  • عملکردی، OOP، رویه ای: مفاهیم دوره همیشه کاربرد دارند! Functional, OOP, Procedural: The Course Concepts Always Apply!

  • کد پاک، اصول و الگوها و معماری پاک Clean Code, Principles & Patterns & Clean Architecture

  • کد پاک در مقابل کد سریع Clean Code vs Quick Code

  • منابع ماژول و دوره Module & Course Resources

نام گذاری - اختصاص نام به متغیرها، توابع، کلاس ها و موارد دیگر Naming - Assigning Names to Variables, Functions, Classes & More

  • معرفی ماژول Module Introduction

  • چرا نام های خوب مهم است Why Good Names Matter

  • انتخاب نام های خوب Choosing Good Names

  • قراردادها و زبان های برنامه نویسی Casing Conventions & Programming Languages

  • نام گذاری متغیرها و ویژگی ها - نظریه Naming Variables & Properties - Theory

  • نام گذاری متغیرها و ویژگی ها - مثال ها Naming Variables & Properties - Examples

  • توابع و روشهای نامگذاری - نظریه Naming Functions & Methods - Theory

  • توابع و روشهای نامگذاری - مثالها Naming Functions & Methods - Examples

  • کلاسهای نامگذاری - تئوری Naming Classes - Theory

  • نام گذاری کلاس ها - مثال ها Naming Classes - Examples

  • استثناهایی که باید از آنها آگاه باشید Exceptions You Should Be Aware Of

  • خطاها و مشکلات رایج Common Errors & Pitfalls

  • زمان نمایش! Demo Time!

  • چالش شما - مشکل Your Challenge - Problem

  • چالش شما - راه حل Your Challenge - Solution

  • منابع ماژول Module Resources

ساختار کد، نظرات و قالب بندی Code Structure, Comments & Formatting

  • معرفی ماژول Module Introduction

  • نظرات بد Bad Comments

  • نظرات خوب Good Comments

  • "قالب‌بندی کد" واقعاً درباره چیست؟ What is "Code Formatting" Really About?

  • قالب بندی عمودی Vertical Formatting

  • قالب بندی: ملاحظات خاص زبان Formatting: Language-specific Considerations

  • قالب بندی افقی Horizontal Formatting

  • چالش شما - مشکل Your Challenge - Problem

  • چالش شما - راه حل Your Challenge - Solution

  • منابع ماژول Module Resources

توابع و روش ها Functions & Methods

  • معرفی ماژول Module Introduction

  • تجزیه و تحلیل قطعات عملکرد کلیدی Analyzing Key Function Parts

  • تعداد پارامترها را پایین نگه دارید! Keep The Number Of Parameters Low!

  • پارامترهای تابع Refactoring - ایده ها و مفاهیم Refactoring Function Parameters - Ideas & Concepts

  • وقتی یک پارامتر درست است When One Parameter Is Just Right

  • دو پارامتر و زمان Refactor Two Parameters & When To Refactor

  • برخورد با ارزش های بیش از حد Dealing With Too Many Values

  • توابع با تعداد پویا از پارامترها Functions With A Dynamic Number Of Parameters

  • مراقب "پارامترهای خروجی" باشید Beware Of "Output Parameters"

  • توابع باید کوچک باشند و یک کار را انجام دهند! Functions Should Be Small & Do One Thing!

  • چرا «سطوح انتزاع» اهمیت دارد؟ Why "Levels of Abstraction" Matter

  • چه زمانی باید جدا شوید؟ When Should You Split?

  • نسخه ی نمایشی و چالش Demo & Challenge

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

  • تقسیم توابع برای خشک ماندن Splitting Functions To Stay DRY

  • زیاده روی نکنید - از استخراج بی فایده خودداری کنید Don't Overdo It - Avoid Useless Extractions

  • درک و اجتناب از عوارض جانبی (غیر منتظره). Understanding & Avoiding (Unexpected) Side Effects

  • عوارض جانبی - یک چالش Side Effects - A Challenge

  • چرا تست های واحد اهمیت و کمک زیادی می کنند! Why Unit Tests Matter & Help A Lot!

  • منابع ماژول Module Resources

ساختارهای کنترل و خطاها Control Structures & Errors

  • معرفی ماژول Module Introduction

  • مفاهیم مفید - یک مرور کلی Useful Concepts - An Overview

  • معرفی "نگهبانان" Introducing "Guards"

  • نگهبانان در عمل Guards In Action

  • استخراج ساختارهای کنترلی و ترجیح عبارت‌های مثبت Extracting Control Structures & Preferring Positive Phrasing

  • استخراج ساختارهای کنترل به توابع Extracting Control Structures Into Functions

  • نوشتن توابع پاک با ساختارهای کنترلی Writing Clean Functions With Control Structures

  • معکوس کردن منطق شرطی Inverting Conditional Logic

  • در آغوش گرفتن خطاها و مدیریت خطا Embrace Errors & Error Handling

  • ایجاد گاردهای خطای بیشتر Creating More Error Guards

  • استخراج کد اعتبارسنجی Extracting Validation Code

  • رسیدگی به خطا یک چیز است! Error Handling Is One Thing!

  • استفاده از توابع کارخانه و چند شکلی Using Factory Functions & Polymorphism

  • کار با پارامترهای پیش فرض Working with Default Parameters

  • اجتناب از "اعداد و رشته های جادویی" Avoid "Magic Numbers & Strings"

  • خلاصه ماژول Module Summary

  • منابع ماژول Module Resources

اشیاء، کلاس ها و ظروف داده ها/ساختارها Objects, Classes & Data Containers / Structures

  • معرفی ماژول Module Introduction

  • مهم: این یک دوره OOP یا "الگوها و اصول" نیست! Important: This is NOT an OOP or "Patterns & Principles" Course!

  • اشیاء در مقابل ظروف داده/ساختارهای داده Objects vs Data Containers / Data Structures

  • چرا تمایز مهم است Why The Differentiation Matters

  • طبقات و چند شکلی Classes & Polymorphism

  • کلاس ها باید کوچک باشند! Classes Should Be Small!

  • درک "انسجام" Understanding "Cohesion"

  • "قانون دمتر" و چرا باید "بگویی، نه بپرسی" The "Law Of Demeter" And Why You Should "Tell, Not Ask"

  • اصول جامد The SOLID Principles

  • اصل مسئولیت واحد (SRP) و چرا اهمیت دارد The Single-Responsibility-Principle (SRP) & Why It Matters

  • اصل باز-بسته (OCP) و چرا مهم است The Open-Closed Principle (OCP) & Why It Matters

  • اصل جایگزینی لیسکوف The Liskov Substitution Principle

  • اصل جداسازی رابط The Interface Segregation Principle

  • اصل وارونگی وابستگی The Dependency Inversion Principle

  • منابع ماژول Module Resources

خلاصه و چک لیست Summary & Checklist

  • خلاصه مفاهیم و چک لیست Concepts Summary & Checklist

خلاصه دوره Course Roundup

  • پاک ماندن! Staying Clean!

  • مراحل بعدی احتمالی Possible Next Steps

  • خلاصه دوره Course Roundup

  • جایزه! Bonus!

نمایش نظرات

آموزش کد پاک
جزییات دوره
6.5 hours
95
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
50,458
4.6 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Maximilian Schwarzmüller Maximilian Schwarzmüller

دارای گواهینامه AWS، توسعه دهنده وب و مدرس حرفه ای

Academind by Maximilian Schwarzmüller Academind by Maximilian Schwarzmüller

آموزش آنلاین