Principles in Refactoring
This week we cover Chapter 2 of Refactoring by Martin Fowler. Some awesome high level stuff including Why should we refactor? Getting clients to go along with refactors, and when not to refactor.
Chapter 2 Principles in Refactoring
A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter.
- Define Refactoring
- “If someone says their code is broken for a couple days while they are refactoring =, you can be pretty sure they aren’t refactoring.
- Adding Features Vs Refactoring
Why should we refactor?
- Code rot - overtime the code decays - rushed or poorly executed changes
- Regular refactoring helps keep things in shape
- Makes things easier to understand
- (Delegating issues in clean codebase vs rough)
- Refactoring helps find bugs
- Refactoring helps us work faster long term - cleaning your workspace
- Over time adding new features is easier
Getting buy in for refactors:
- Don’t tell your manager / client
- Build it into your estimates
- You are being paid for your expertise
- be confident in somewhat hiding the implementation. (Depends on your role)
When to refactor:
- Prepatory Refactoring
- Comprehension refactoring
- Long term refactor - Ech small change leaves everything is a still working state, not just “up to date”
- In code reviews
When to not refactor:
- If the code is working fine and it doesn’t need to be changed
- If it works like an API
- When it will slow down an essential new feature.
Refactoring Tools for future episodes?
- Writing Ruby Gems
- Renovate Bot
- JP: Free Event Tickets
- John: Eero wifi router