Skip to content
all Code of Architecture books
Code of Architecture · book series

A Philosophy of Software Design

John Ousterhout

A review of John Ousterhout's approach to complexity, deep modules, interfaces, decomposition, and code that is easier to change.

4 episodesApril 3, 2023 — April 25, 2023
sequential review

All episodes in this series

4 episodes
  1. #011:07:46

    A Philosophy of Software Design — Episode 1

    The first episode introduces the book's central theme—software complexity—and how design can keep it under control.

  2. #021:06:53

    A Philosophy of Software Design — Episode 2

    Part two develops the ideas of deep modules, simple interfaces, and hiding complexity behind durable abstractions.

  3. #031:03:08

    A Philosophy of Software Design — Episode 3

    The third episode discusses decomposition, information hiding, and warning signs of designs that push complexity onto module users.

  4. #041:12:31

    A Philosophy of Software Design — Episode 4

    The final part connects the book's principles with everyday engineering work: naming, comments, change, and resisting tactical complexity.