Browse · A Philosophy of Software Design

Code CraftArchitecture

A Philosophy of Software Design

John Ousterhout

2nd ed.

Complexity is the root of all software evil. Deep modules are the cure.

About the book

Stanford professor John Ousterhout argues that the greatest limitation in writing software is our ability to understand the systems we create. His answer: deep modules with simple interfaces, deliberate information hiding, and strategic — not tactical — programming. Less dogmatic than Clean Code, more broadly useful.

Best used for

  • Reviewing whether your abstractions are actually hiding complexity
  • Deciding how to split (or not split) a class or function
  • Writing comments that capture design intent, not just mechanics

Less dogmatic than Clean Code, but more fundamental. I read it twice in a month and still think about it daily.

r/programming

Install this skill

Run this command in your terminal. The skill will be available in all your Claude Code projects.

wondelai/skills

View on GitHub →

Covers all six key principles with a scoring rubric and common mistake catalogue.

mkdir -p ~/.claude/skills/software-design-philosophy && curl -fsSL "https://raw.githubusercontent.com/wondelai/skills/main/software-design-philosophy/SKILL.md" -o ~/.claude/skills/software-design-philosophy/SKILL.md

luoling8192/software-design-philosophy-skill

View on GitHub →

Concise, opinionated distillation — great for fast adoption.

mkdir -p ~/.claude/skills/software-design-philosophy && curl -fsSL "https://raw.githubusercontent.com/luoling8192/software-design-philosophy-skill/main/SKILL.md" -o ~/.claude/skills/software-design-philosophy/SKILL.md

markduan/a-philosophy-of-software-design-skills

View on GitHub →

Multi-file skill with separate chapters for complexity, deep modules, error handling, naming, comments, and design process.

mkdir -p ~/.claude/skills/software-design-philosophy && curl -fsSL "https://raw.githubusercontent.com/markduan/a-philosophy-of-software-design-skills/main/SKILL.md" -o ~/.claude/skills/software-design-philosophy/SKILL.md

Once installed, invoke with /software-design-philosophy in Claude Code, or let Claude load it automatically when relevant.

Skill by wondelai/skills, licensed MIT.

Skill by luoling8192/software-design-philosophy-skill, licensed MIT.

Skill by markduan/a-philosophy-of-software-design-skills, licensed MIT.