Software Design Book

In July of 2021 I released the Second Edition of A Philosophy of Software Design. This edition is available on Amazon in both paperback and electronic form. There are only a few significant changes from the First Edition:

  • There is a new chapter "Deciding What Matters" that talks about how good software design is about separating what's important from what's not important and focusing on what's important.
  • Since the First Edition was published, the importance of choosing general-purpose approaches has become even more clear to me. I have reworked and expanded Chapter 6 ("General-Purpose Modules are Deeper") to reflect this, and I've moved some material from other chapters to Chapter 6.
  • I have added subsections in two chapters to compare the book's design philosophy with that of Robert Martin's Clean Code (we have significant differences of opinion on topics such as the length of methods and the role of comments).

For the benefit of people who already purchased the First Edition, I have made copies of the two new chapters available in a book extract. It may not be worth buying the Second Edition if you already own the First Edition.