آموزش مبانی بازسازی

Refactoring Fundamentals

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: Refactoring یک مهارت توسعه‌دهنده حیاتی است که به جلوگیری از فروپاشی کد تحت وزن خود کمک می‌کند. بیاموزید که چگونه «بوی کد» را تشخیص دهید که ممکن است نشان دهنده نیاز به refactoring، فرآیند refactoring، و زمان و نحوه اعمال refactorings خاص در کد شما باشد.

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

معرفی Refactoring Introducing Refactoring

  • معرفی Introduction

  • Refactoring چیست؟ What is Refactoring?

  • چرا باید Refactor کرد؟ Why Should You Refactor?

  • بدهی فنی Technical Debt

  • چه زمانی باید Refactor کنید When Should You Refactor

  • اصول بازسازی Refactoring Principles

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

  • نسخه ی نمایشی: تست های شخصیت پردازی Demo: Characterization Tests

  • نکات بازسازی Refactoring Tips

  • ابزارهای بازسازی Refactoring Tools

  • بهینه سازی زودرس Premature Optimization

  • بازسازی و آزمایشات Refactoring and Tests

  • نسخه ی نمایشی: یک Refactoring ساده Demo: A Simple Refactoring

  • خلاصه Summary

کد نفخ بو می دهد Bloating Code Smells

  • معرفی Introduction

  • کد بو می دهد Code Smells

  • اصل کمترین غافلگیری Principle of Least Surprise

  • سازماندهی بوی کد Organizing Code Smells

  • بادکرده ها The Bloaters

  • روش طولانی Long Method

  • مثال های روش طولانی Long Method Examples

  • وسواس اولیه Primitive Obsession

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

  • مجموعه داده ها Data Clumps

  • انفجار ترکیبی Combinatorial Explosion

  • راه حل عجیب و غریب Oddball Solution

  • کلاس کار زیادی نمی کند Class Doesn't Do Much

  • کد راه اندازی/کاهش مورد نیاز Required Setup/Teardown Code

  • خلاصه Summary

بوهای کد مبهم Obfuscating Code Smells

  • معرفی Introduction

  • مبهم ها The Obfuscators

  • مناطق Regions

  • نظرات Comments

  • نام های ضعیف Poor Names

  • جداسازی عمودی Vertical Separation

  • ناهماهنگی Inconsistency

  • نیت مبهم Obscured Intent

  • خلاصه Summary

کد سوء استفاده کننده شی گرا بو می دهد Object Orientation Abuser Code Smells

  • معرفی Introduction

  • تغییر بیانیه ها Switch Statements

  • میدان موقت Temporary Field

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

  • کلاس به زیر کلاس بستگی دارد Class Depends on Subclass

  • استاتیک نامناسب Inappropriate Static

  • خلاصه Summary

بوی کد: پیشگیری کننده تغییر Code Smells: Change Preventer

  • معرفی Introduction

  • پیشگیری کننده های تغییر Change Preventers

  • تغییر واگرا Divergent Change

  • جراحی تفنگ ساچمه ای Shotgun Surgery

  • سلسله مراتب وراثت موازی Parallel Inheritance Hierarchies

  • سطوح انتزاع ناسازگار Inconsistent Abstraction Levels

  • پیچیدگی شرطی Conditional Complexity

  • تست های تالیفی ضعیف Poorly Written Tests

  • خلاصه Summary

کد بوی: قابل مصرف Code Smells: Dispensables

  • معرفی Introduction

  • غیر قابل مصرف ها The Dispensables

  • کلاس تنبل Lazy Class

  • کلاس داده Data Class

  • کد تکراری Duplicate Code

  • کد مرده Dead Code

  • عمومیت گمانه زنی Speculative Generality

  • خلاصه Summary

بوی کد: زوجین Code Smells: The Couplers

  • معرفی Introduction

  • جفت کننده ها The Couplers

  • ویژگی حسادت Feature Envy

  • صمیمیت نامناسب Inappropriate Intimacy

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

  • قرارگیری نامناسب در معرض بیماری Indecent Exposure

  • زنجیره پیام Message Chains

  • مرد میانه Middle Man

  • داده های ولگرد Tramp Data

  • کوپلینگ مصنوعی Artificial Coupling

  • جفت موقت پنهان Hidden Temporal Coupling

  • وابستگی های پنهان Hidden Dependencies

  • خلاصه Summary

محیط و تست کد بو می دهد Environment and Testing Code Smells

  • معرفی Introduction

  • محیط بو می دهد Environment Smells

  • تست بو Test Smells

  • تست های کافی نیست Not Enough Tests

  • DRY در مقابل DAMP DRY vs. DAMP

  • تردی Fragility

  • دروغگو The Liar

  • تنظیم بیش از حد Excessive Setup

  • غول The Giant

  • تمسخر The Mockery

  • بازرس The Inspector

  • باقی مانده های سخاوتمندانه Generous Leftovers

  • قهرمان محلی The Local Hero

  • Nitpicker The Nitpicker

  • راز گیر The Secret Catcher

  • لودموث The Loudmouth

  • شکارچی حریص The Greedy Catcher

  • ترتیب دهنده The Sequencer

  • وابستگی پنهان The Hidden Dependency

  • شمارشگر The Enumerator

  • غریبه The Stranger

  • مبشر سیستم عامل The OS Evangelist

  • موفقیت در برابر همه شانس Success Against All Odds

  • سواری رایگان The Free Ride

  • یکی از The One

  • تام در حال نگاه کردن The Peeping Tom

  • پوک آهسته The Slow Poke

  • تضاد The Contradiction

  • تاس بریزید Roll the Dice

  • تست های پنهان Hidden Tests

  • شهروندان درجه دو Second Class Citizens

  • صبر کن و ببین Wait and See

  • گروه آزمایشی نامناسب Inappropriate Test Group

  • خوشبین The Optimist

  • خواب آور The Sleeper

  • باطل The Void

  • خلاصه Summary

روش بازسازی Method Refactorings

  • معرفی Introduction

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

  • روش تغییر نام Rename Method

  • نسخه ی نمایشی: استخراج و تغییر نام روش Demo: Extract and Rename Method

  • روش درون خطی Inline Method

  • متغیر توضیح دهنده را معرفی کنید Introduce Explaining Variable

  • دمای درون خطی Inline Temp

  • Temp را با Query جایگزین کنید Replace Temp with Query

  • نسخه ی نمایشی: Temp را با Query جایگزین کنید Demo: Replace Temp with Query

  • Split Temporary Variable Split Temporary Variable

  • روش پارامترسازی Parameterize Method

  • پارامتر را با روش های واضح جایگزین کنید Replace Parameter with Explicit Methods

  • افزودن پارامتر Add Parameter

  • حذف پارامتر Remove Parameter

  • Query را از Modifier جدا کنید Separate Query from Modifier

  • خلاصه Summary

روشهای اصلاح مجدد More Method Refactorings

  • معرفی Introduction

  • حفظ کل شی Preserve Whole Object

  • پارامتر را با Method جایگزین کنید Replace Parameter with Method

  • Object پارامتر را معرفی کنید Introduce Parameter Object

  • روش تنظیم را حذف کنید Remove Setting Method

  • روش پنهان کردن Hide Method

  • Constructor را با Factory Method جایگزین کنید Replace Constructor with Factory Method

  • کد خطا را با استثنا جایگزین کنید Replace Error Code with Exception

  • حذف تخصیص به پارامترها Remove Assignments to Parameters

  • Exception را با Test جایگزین کنید Replace Exception with Test

  • روش را با Method Object جایگزین کنید Replace Method with Method Object

  • روش نوشتن Compose Method

  • الگوریتم جایگزین Substitute Algorithm

  • خلاصه Summary

بازسازی کلاس و شی Class and Object Refactorings

  • معرفی Introduction

  • کپسوله کردن فیلد Encapsulate Field

  • مجموعه کپسوله Encapsulate Collection

  • حرکت فیلد Move Field

  • روش حرکت Move Method

  • استخراج کلاس Extract Class

  • کلاس درون خطی Inline Class

  • استخراج رابط Extract Interface

  • استخراج زیر کلاس Extract Subclass

  • Superclass را استخراج کنید Extract Superclass

  • مخفی کردن نماینده Hide Delegate

  • مرد میانی را حذف کنید Remove Middle Man

  • خلاصه Summary

Refactorings سلسله مراتب کلاس Class Hierarchy Refactorings

  • معرفی Introduction

  • Pull Up Field Pull Up Field

  • میدان فشار به پایین Push Down Field

  • روش کشش بالا Pull Up Method

  • روش فشار پایین Push Down Method

  • فروپاشی سلسله مراتب Collapse Hierarchy

  • وراثت را با تفویض اختیار جایگزین کنید Replace Inheritance with Delegation

  • ارث را جایگزین تفویض کنید Replace Delegation with Inheritance

  • Type Code را با Class جایگزین کنید Replace Type Code with Class

  • Type Code را با Subclasses جایگزین کنید Replace Type Code with Subclasses

  • چند شکلی را جایگزین شرطی کنید Replace Conditional with Polymorphism

  • خلاصه Summary

بازسازی های مبتنی بر الگو Pattern-Based Refactorings

  • معرفی Introduction

  • کپسوله کردن کلاس ها با Factory Encapsulate Classes with Factory

  • روش قالب فرم Form Template Method

  • Null Object را معرفی کنید Introduce Null Object

  • انباشتگی را به Visitor منتقل کنید Move Accumulation to Visitor

  • تزئینات را به دکوراتور منتقل کنید Move Embellishment to Decorator

  • Dispatcher شرطی را با Command جایگزین کنید Replace Conditional Dispatcher with Command

  • منطق شرطی را با استراتژی جایگزین کنید Replace Conditional Logic with Strategy

  • وضعیت تغییر وضعیت را با حالت جایگزین کنید Replace State-Altering Conditionals with State

  • کد نوع را با حالت (یا استراتژی) جایگزین کنید Replace Type Code with State (or Strategy)

  • یکپارچه سازی رابط ها با آداپتور Unify Interfaces with Adapter

  • خلاصه Summary

رز کاتای طلاکاری شده Gilded Rose Kata

  • معرفی Introduction

  • راه اندازی کاتای رز طلاکاری شده Gilded Rose Kata Setup

  • شروع کاتا Beginning the Kata

  • اضافه کردن اولین تست ها Adding First Tests

  • تست Aged Brie Testing Aged Brie

  • آزمایش سولفوراها Testing Sulfuras

  • تست پاس های پشت صحنه Testing Backstage Passes

  • Refactoring با StoreItem Refactoring with StoreItem

  • تست استراتژی های فردی Testing Individual Strategies

  • اضافه کردن پشتیبانی از آیتم های Conjured Adding Conjured Item Support

  • خلاصه Summary

نمایش نظرات

آموزش مبانی بازسازی
جزییات دوره
8h 1m
190
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
374
- از 5
دارد
دارد
دارد
Steve Smith
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Steve Smith Steve Smith

هنرمند/طراح/دی جی

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