DEV Community

Iteration Podcast

Principles in Refactoring

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.

Legacy Code

Refactoring Tools for future episodes?

  • Writing Ruby Gems
  • Renovate Bot

Picks

  • JP: Free Event Tickets
  • John: Eero wifi router

Episode source