با گذشت زمان، طراحی نرم افزار تمایل به ضعیف شدن دارد و نگهداری سیستمها به طور فزاینده ای دشوار میشوند. Refactoring یک مهارت مهم برای هر توسعه دهنده ای است که به جلوگیری از از بین رفتن کد در زیر وزن خود کمک میکند. در دوره ویدیویی Refactoring for C# Developers موسسه Pluralsight که توسط Steve Smith تدریس شده است، شما یاد میگیرید که چگونه نقصهای احتمالی در طراحی سیستم خود را که با نام «بوهای کد» شناخته میشوند را تشخیص دهید و ارزیابی کنید.
در این دوره، شما با بوهای کد در برنامههای سی شارپ در سطوح عبارت، متد و کلاس آشنا میشوید. همچنین شما درباره روند ریفکتور کردن کدتان برای از بین بردن نقصهای طراحی و بهبود قابلیت نگهداری آن خواهید آموخت. سرانجام، یاد میگیرید که چگونه میتوانید دهها refactoring خاص را برای مشکلات رایج و شناخته شده در برنامههای #C اعمال کنید. وقتی که این دوره را به پایان برسانید، مهارتها و دانش لازم را برای شناسایی مشکلات کیفیت کد و تصحیح آنها با تکنیکهای ریفکتور کردن سریع و قابل اعتماد در اختیار خواهید داشت.
فیلم آموزشی «ریفکتور کردن برای توسعه دهندگان سی شارپ» موسسه پلورال سایت که توسط Steve Smith تدریس شده است، دارای زیرنویس انگلیسی است.
Table of Contents:
Course Overview
- Course Overview
Introducing Refactoring and Code Smells
- Objectives
- What is Refactoring?
- When Should You Refactor?
- When Not to Refactor?
- The Refactoring Process
- Writing Characterization Tests
- Refactoring Toward Cleaner Code
- What Are Code Smells?
- Classifying Code Smells
- Key Takeaways
Statement Code Smells
- Objectives
- Smell: Primitive Obsession
- Smell: Vertical Separation
- Smell: Inconsistency
- Smell: Poor Names
- Smell: Switch Statements
- Smell: Duplicate Code
- Smell: Dead Code
- Smell: Hidden Temporal Coupling
- Key Takeaways
Method Code Smells
- Objectives
- Smell: Long Method
- Smell: Conditional Complexity
- Smell: Inconsistent Abstraction Level
- Specific Method Refactorings
- Extract Method
- Rename Method
- Inline Method
- Introduce Explaining Variable
- Inline Temp
- Replace Temp With Query
- Split Temporary Variable
- Parameterize Methods
- Replace Parameter with Explicit Methods
- Add Parameter
- Remove Parameter
- Separate Query from Modifier
- Key Takeaways
Class Code Smells
- Objectives
- Smell: Large Class
- Smell: Class Doesn't Do Much
- Smell: Temporary Field
- Smell: Alternative Classes with Different Interfaces
- Smell: Parallel Inheritance Hierarchies
- Smell: Data Class
- Smell: Feature Envy
- Smell: Hidden Dependencies
- Specific Class Refactorings
- Encapsulate Field
- Encapsulate Collection
- Move Method
- Extract Class
- Replace Inheritance with Delegation
- Replace Conditional with Polymorphism
- Key Takeaways