آموزش نوشتن کد تمیز: ۲۰ بوی کد (Code Smells) و روش‌های اجتناب از آن‌ها - آخرین آپدیت

دانلود Writing Clean Code: 20 Code Smells & How to Avoid Them

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره دارای قابلیت Coursera Coach است! روشی هوشمندانه برای یادگیری از طریق گفتگوهای تعاملی و آنی که به شما کمک می‌کند دانش خود را بسنجید، پیش‌فرض‌ها را به چالش بکشید و در حین پیشرفت در دوره، درک خود را عمیق‌تر کنید. در این دوره، شما خواهید آموخت که چگونه «بوی کد» یا Code Smells رایج را که می‌توانند کیفیت و قابلیت نگهداری نرم‌افزار شما را کاهش دهند، شناسایی و حذف کنید. شما استراتژی‌های عملی برای بهبود کدبیس خود، از شناسایی حلقه‌های ناکارآمد تا حذف استثناهای (Exceptions) غیرضروری را فرا خواهید گرفت. هر درس بر یک بوی کد خاص تمرکز دارد و شما را از طریق بهترین روش‌ها برای بازسازی (Refactor) و بهینه‌سازی کد جهت سلامت بلندمدت سیستم راهنمایی می‌کند. دوره با بررسی اصول بنیادی طراحی نرم‌افزار تمیز آغاز می‌شود و شما را با مفاهیم کلیدی مانند اصول SOLID و طراحی ماژولار آشنا می‌کند. در ادامه، به بررسی عمیق بوی‌های کد خاصی مانند «وسواس اولیه» (Primitive Obsession)، «حسادت به ویژگی» (Feature Envy) و «ماژول‌های کم‌عمق» (Shallow Modules) خواهید پرداخت که هر کدام با مثال‌های واقعی و راهکارهای عملی همراه است. در پایان این دوره، شما قادر خواهید بود با اطمینان یک کدبیس را تحلیل، بازسازی و بهبود ببخشید تا خوانایی، عملکرد و قابلیت نگهداری آن افزایش یابد. چه یک توسعه‌دهنده تازه‌کار باشید و چه یک مهندس نرم‌افزار با تجربه، این دوره به شما کمک می‌کند مهارت‌های خود را صیقل داده و کدی تمیزتر و پایدارتر بنویسید. این دوره برای توسعه‌دهندگان و مهندسان نرم‌افزاری که به دنبال بهبود شیوه‌های کدنویسی، ارتقای قابلیت نگهداری پروژه‌های خود و تسلط بر هنر نوشتن کد تمیز و کارآمد هستند، ایده‌آل است. داشتن درک اولیه از اصول برنامه‌نویسی توصیه می‌شود.

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

شروع دوره Getting Started with the Course

  • خوش‌آمدگویی و معرفی Welcome and Introduction!

مبانی طراحی نرم‌افزار و اصول SOLID Software Design Fundamentals and SOLID Principles

  • اصول کلیدی طراحی موثر نرم‌افزار Key Principles of Effective Software Design

  • نوشتن ماژول‌های عمیق و با ساختار مناسب Writing Deep, Well-Structured Modules

  • اصول SOLID: اصل تک مسئولیتی SOLID Principles: The Single Responsibility Principle

  • اصول SOLID: اصل باز-بسته SOLID Principles: The Open/Closed Principle

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

  • اصول SOLID: اصل تفکیک رابط‌ها SOLID Principles: The Interface Segregation Principle

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

درک و پیمایش کدبیس Understanding and Navigating the Code Base

  • پیمایش و درک کدبیس Navigating and Understanding the Code Base

سوئیچ‌های تکراری (Repeated Switches) Repeated Switches

  • سوئیچ‌های تکراری چیستند؟ What Are Repeated Switches?

  • شناسایی دستورات سوئیچ تکراری در کد Identifying Repeated Switch Statements in Code

  • بازسازی و بهبود دستورات سوئیچ Refactoring and Improving Switch Statements

وسواس اولیه (Primitive Obsession) Primitive Obsession

  • وسواس اولیه چیست؟ What Is Primitive Obsession?

  • شناسایی استفاده بیش از حد از انواع اولیه در کد Identifying Overuse of Primitives in Code

  • بازسازی وسواس اولیه برای انتزاع بهتر Refactoring Primitive Obsession for Better Abstraction

حلقه‌ها Loops

  • حلقه‌های ناکارآمد چیستند؟ What Are Inefficient Loops?

  • بوی‌های رایج کد در حلقه‌ها و دام‌های آن‌ها Common Loop Code Smells and Their Pitfalls

  • بازسازی حلقه‌ها Refactoring Loops

لیست پارامترهای طولانی Long Parameter List

  • لیست پارامترهای طولانی چیستند؟ What Are Long Parameter Lists?

  • شناسایی لیست‌های طولانی پارامتر در کد Identifying Long Parameter Lists in Code

  • کاهش و ساده‌سازی پارامترها Reducing and Simplifying Parameters

تکرار دانش (Knowledge Duplication) Knowledge Duplication

  • تکرار دانش چیست؟ What Is Knowledge Duplication?

  • شناسایی دانش تکراری و پیامدهای آن Identifying Repeated Knowledge and Its Consequences

  • حذف افزونگی برای کد قابل نگهداری‌تر Eliminating Redundancy for More Maintainable Code

کامنت‌های غیرمفید Uninformative Comments

  • کامنت‌های غیرمفید چیستند؟ What Are Uninformative Comments?

  • شناسایی بوی کد در کامنت‌های کدبیس Identifying Comment Code Smells in a Codebase

  • نوشتن کامنت‌های معنادار و حذف موارد زائد Writing Meaningful Comments and Removing Redundant Ones

جراحی شاتگان (Shotgun Surgery) Shotgun Surgery

  • جراحی شاتگان چیست؟ What Is Shotgun Surgery?

  • شناسایی کدی که نیاز به تغییرات پراکنده دارد Identifying Code That Requires Scattered Changes

  • بازسازی برای کاهش جراحی شاتگان Refactoring to Reduce Shotgun Surgery

کلاس‌های جایگزین با رابط‌های متفاوت Alternative Classes with Different Interfaces

  • کلاس‌های جایگزین با رابط‌های ناسازگار چیستند؟ What Are Alternative Classes with Inconsistent Interfaces?

  • شناسایی مشکلات طراحی کلاس در کد Identifying Class Design Issues in Code

  • بازسازی برای تضمین رابط‌های سازگار Refactoring to Ensure Consistent Interfaces

میراث رد شده (Refused Bequest) Refused Bequest

  • میراث رد شده چیست؟ What Is Refused Bequest?

  • شناسایی استفاده نادرست از ارث‌بری در کد Identifying Misuse of Inheritance in Code

  • بازسازی برای بهبود ارث‌بری کد Refactoring to Improve Code Inheritance

تجمعات داده‌ای (Data Clumps) Data Clumps

  • تجمعات داده‌ای چیستند؟ What Are Data Clumps?

  • شناسایی داده‌های با ساختار ضعیف در کد Identifying Poorly Structured Data in Code

  • بازسازی تجمعات داده‌ای برای قابلیت نگهداری بهتر Refactoring Data Clumps for Better Maintainability

میانجی (Middle Man) Middle-Man

  • بوی کد میانجی (Middle Man) چیست؟ What Is the Middle-Man Code Smell?

  • شناسایی انتزاع‌های غیرضروری در کد Identifying Unnecessary Abstractions in Code

  • ساده‌سازی کد با حذف کلاس‌های میانجی Simplifying Code by Removing Middle-Man Classes

داده‌های تغییرپذیر (Mutable Data) Mutable Data

  • داده‌های تغییرپذیر چیستند؟ What Is Mutable Data?

  • شناسایی وضعیت‌های تغییرپذیر و دام‌های آن‌ها Identifying Mutable State and Its Pitfalls

  • پیاده‌سازی رویکردهای ایمن‌تر در مدیریت داده‌ها Implementing Safer Approaches to Data Management

حسادت به ویژگی (Feature Envy) Feature Envy

  • حسادت به ویژگی چیست؟ What Is Feature Envy?

  • شناسایی مرزهای ضعیف اشیاء در کد Identifying Poor Object Boundaries in Code

  • بازسازی برای کاهش حسادت به ویژگی Refactoring to Reduce Feature Envy

تغییر واگرا (Divergent Change) Divergent Change

  • تغییر واگرا چیست؟ What Is Divergent Change?

  • شناسایی کدی که نیاز به اصلاحات مکرر دارد Identifying Code That Requires Frequent Modifications

  • بازسازی برای کاهش تغییر واگرا Refactoring to Reduce Divergent Change

رابط‌های بزرگ (Large Interfaces) Large Interfaces

  • رابط‌های بزرگ چیستند؟ What Are Large Interfaces?

  • شناسایی رابط‌های متورم در کد Identifying Bloated Interfaces in Code

  • بازسازی برای کاهش پیچیدگی رابط‌ها Refactoring to Reduce Interface Complexity

چندمنظوره ها (Multitaskers) Multitaskers

  • چندمنظوره ها چیستند؟ What Are Multitaskers?

  • شناسایی کلاس‌ها و توابع بیش از حد بارگذاری شده Identifying Overloaded Classes and Functions

  • بازسازی برای بهبود تک مسئولیتی Refactoring to Improve Single Responsibility

نام‌های نامفهوم یا گیج‌کننده Unclear / Confusing Names

  • نام‌های نامفهوم و گیج‌کننده چیستند؟ What Are Unclear and Confusing Names?

  • شناسایی نام‌گذاری‌های نامفهوم در کد Identifying Unclear Naming in Code

  • استراتژی‌های نوشتن نام‌های بصری و خود-توضیح‌دهنده Strategies for Writing Intuitive and Self-Explanatory Names

تعمیم حدسی (Speculative Generality) Speculative Generality

  • تعمیم حدسی چیست؟ What Is Speculative Generality?

  • شناسایی کدهای بیش از حد مهندسی شده (Over Engineering) Identifying Over-Engineered Code

  • ساده‌سازی کد با حذف تعمیم‌های غیرضروری Simplifying Code by Removing Unnecessary Generalization

استثناهای غیرضروری Unnecessary Exceptions

  • استثناهای غیرضروری چیستند؟ What Are Unnecessary Exceptions?

  • شناسایی استفاده بیش از حد از Exceptionها در کد Identifying Overuse of Exceptions in Code

  • بازسازی برای ساده‌سازی مدیریت استثناها Refactoring to Simplify Exception Handling

ماژول‌های کم‌عمق (Shallow Modules) Shallow Modules

  • ماژول‌های کم‌عمق چیستند؟ What Are Shallow Modules?

  • شناسایی ماژول‌های با کپسوله‌سازی ضعیف Identifying Weakly Encapsulated Modules

  • بهبود عمق ماژول برای قابلیت بازاستفاده بهتر Improving Module Depth for Better Reusability

جمع‌بندی نهایی و پایان دوره Final Thoughts and Course Wrap-Up

  • جمع‌بندی دوره و نکات نهایی Course Wrap-Up and Final Thoughts

نمایش نظرات

آموزش نوشتن کد تمیز: ۲۰ بوی کد (Code Smells) و روش‌های اجتناب از آن‌ها
جزییات دوره
12h 53m
70
(آخرین آپدیت)
327
- از 5
دارد
دارد
دارد
Chris Croft
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Chris Croft Chris Croft

مربی مدیریت، سخنران، نویسنده