Refactoring: Improving the Design of Existing Code (2nd Edition) Cover Book cover copyright Martin Fowler

Why an Asynchronous Book Group?

As a team bonding and educational process I try to get the programming teams I’m part of to read a book together every quarter. As I’m currently a team of one, this process has been more difficult. I thought I would take this process to the Internet so at the very least I would have to think critically about the book and write up my thoughts and the things I found most interesting.

Why This Book?

I’m a follower of Martin Fowler and his work and if you’re not already a follower of his blog (https://martinfowler.com/) you should be. I’ve been slowly working my way through his books but a couple months ago he posted that the 2nd Edition of Refactoring: Improving the Design of Existing Code (Amazon Link) had been finalized and would be available soon. I immediately ordered the book and was happy to see it arrive just before Christmas. I’ve been slowly working my way through the book (the holidays and small children make it a slow process sometimes :-)) and it’s been enjoyable and full of helpful information so far.

How is This Going to Work?

The book contains 12 chapter so for the next twelve weeks I’m going to post a new post on Friday. I will write down the one thing I found most interesting/helpful and then anyone who wants to can add a comment with something they’ve found interesting. The plan is to complete the following chapters on the following dates.

  1. January 11th - Chapter 1: Refactoring: A First Example
  2. January 18th - Chapter 2: Principals in Refactoring
  3. January 25th - Chapter 3: Bad Smells in Code
  4. February 1st - Chapter 4: Building Tests
  5. February 8th - Chapter 5: Introducing the Catalog
  6. February 15th - Chapter 6: A First Set of Refactorings
  7. February 22nd - Chapter 7: Encapsulation
  8. March 1st - Chapter 8: Moving Features
  9. March 8th - Chapter 9: Organizing Data
  10. March 15th - Chapter 10: Simplifying Conditional Logic
  11. March 22nd - Chapter 11: Refactoring APIs
  12. March 29th - Chapter 12: Dealing with Inheritance

I hope you’ll join me in this process.