Useful Links
Computer Science
Programming
By Language
Python Refactoring and Code Quality
1. Foundations of Code Quality and Refactoring
2. Python Style Guidelines and Principles
3. Code Quality Tools and Automation
4. Basic Refactoring Techniques
5. Object-Oriented Refactoring
6. Module and Package Refactoring
7. Testing and Refactoring Integration
8. Advanced Refactoring Strategies
9. Database and External System Refactoring
10. Establishing Refactoring Culture and Practices
Object-Oriented Refactoring
Feature Movement Between Objects
Move Method Between Classes
Identifying Appropriate Method Homes
Maintaining Object Relationships
Preserving Encapsulation
Move Field Between Classes
Data Ownership Principles
Maintaining Data Integrity
Extract Class
Identifying Separate Responsibilities
Creating Cohesive Classes
Managing Class Relationships
Inline Class
Removing Unnecessary Class Abstractions
Simplifying Object Hierarchies
Hide Delegate
Encapsulating Object Relationships
Reducing Client Dependencies
Remove Middle Man
Eliminating Unnecessary Delegation
Direct Access Patterns
Data Organization Refactoring
Self Encapsulate Field
Using Property Decorators
Getter and Setter Implementation
Data Access Control
Replace Data Value with Object
Encapsulating Primitive Data
Adding Behavior to Data
Type Safety Improvements
Replace Array with Object
Creating Specialized Collections
Adding Collection Behavior
Type-Safe Data Structures
Change Value to Reference
Managing Shared Object State
Identity vs Equality Considerations
Change Reference to Value
Creating Immutable Objects
Value Object Patterns
Inheritance and Polymorphism Refactoring
Pull Up Method
Moving Common Methods to Superclass
Reducing Code Duplication
Template Method Pattern
Pull Up Field
Sharing Common Data in Superclass
Inheritance Hierarchy Optimization
Push Down Method
Specializing Methods in Subclasses
Removing Unused Abstractions
Push Down Field
Moving Specialized Data to Subclasses
Extract Superclass
Creating Abstract Base Classes
Factoring Common Behavior
Extract Subclass
Specializing Object Behavior
Conditional Logic Elimination
Extract Interface
Defining Protocols and ABCs
Contract-Based Programming
Collapse Hierarchy
Simplifying Inheritance Trees
Removing Unnecessary Abstractions
Replace Inheritance with Delegation
Favoring Composition over Inheritance
Flexible Object Relationships
Replace Delegation with Inheritance
Simplifying Object Relationships
When Inheritance is Appropriate
Previous
4. Basic Refactoring Techniques
Go to top
Next
6. Module and Package Refactoring