Software Design Book

A German translation of APOSD was published by O'Reilly in October of 2021: Prinzipien des Softwaredesigns.

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 "Decide 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 the two new chapters and the comparisons with Clean Code available in a book extract. It may not be worth buying the Second Edition if you already own the First Edition.

People sometimes ask me if there are other books on design that I would recommend. Unfortunately, I haven't seen very many publications that I like, but one book I do like is The Art of Readable Code by Dustin Boswell and Trevor Foucher. It's written at a lower level than APOSD (more about coding than design), but it is compatible with APOSD in philosophy has a bunch of good ideas.