DEV Community

Iteration Podcast

Refactoring - In Practice

In this episode we dive deep into some specific refactors from Refactoring 's Chapter 1. We talk about renaming things, extracting functions, functions, replacing a temp with query and some other hot tips and tricks you can put into your code today.

This episode walks through specific code examples from Chapter 1 of Martin Fowler's Refactoring...

Some of the refactors

Change Function Declaration

  • Rename things
  • Names are hard
  • A few general categories of things you can name
    • predicate? - Should only return true / false - Javascript start with is - ruby question mark - so isValidPhone(number)
    • In Ruby - ! For destructive / dangerous actions - update_recent_activity! - name destructive actions or actions with side effects really well.
    • Formatting? - use - as - number_as_phone(number) or to to_bmi(user.weight, user.height)

Extract Function

Replace temp w/ query

  • Extending this example:

Instead of:

accounts = get_accounts(user)
transactions = get_transactions(accounts)

we can just do:

transactions = get_transactions(get_accounts(user))

Replace conditional with polymorphism

Notification.deliver! example

Picks

  • JP: Thanos JS - https://thanosjs.org/
  • John: Loom https://www.loom.com/ - and http://www.telestream.net/screenflow/overview.htm

Episode source