ousterhout-software-design
Knowledge base from "A Philosophy of Software Design" by John Ousterhout. Use when designing or reviewing code for complexity, module depth, information hiding, interface design, error handling, comments, naming, or performance — or when a design decision needs a rationale beyond taste.
Pinned to revision f83c3a170aa6, so it is the text this page describes rather than whatever the author pushed since.
Files
- skills/ousterhout-software-design/SKILL.md
- skills/ousterhout-software-design/chapters/ch01-introduction-complexity.md
- skills/ousterhout-software-design/chapters/ch02-nature-of-complexity.md
- skills/ousterhout-software-design/chapters/ch03-working-code-isnt-enough.md
- skills/ousterhout-software-design/chapters/ch04-modules-should-be-deep.md
- skills/ousterhout-software-design/chapters/ch05-information-hiding.md
- skills/ousterhout-software-design/chapters/ch06-general-purpose-modules.md
- skills/ousterhout-software-design/chapters/ch07-different-layer-different-abstraction.md
- skills/ousterhout-software-design/chapters/ch08-pull-complexity-downwards.md
- skills/ousterhout-software-design/chapters/ch09-better-together-or-apart.md
- skills/ousterhout-software-design/chapters/ch10-define-errors-out-of-existence.md
- skills/ousterhout-software-design/chapters/ch11-design-it-twice.md
- skills/ousterhout-software-design/chapters/ch12-why-write-comments.md
- skills/ousterhout-software-design/chapters/ch13-comments-describe-nonobvious.md
- skills/ousterhout-software-design/chapters/ch14-choosing-names.md
- skills/ousterhout-software-design/chapters/ch15-write-comments-first.md
- skills/ousterhout-software-design/chapters/ch16-modifying-existing-code.md
- skills/ousterhout-software-design/chapters/ch17-consistency.md
- skills/ousterhout-software-design/chapters/ch18-code-should-be-obvious.md
- skills/ousterhout-software-design/chapters/ch19-software-trends.md
- skills/ousterhout-software-design/chapters/ch20-designing-for-performance.md
- skills/ousterhout-software-design/chapters/ch21-conclusion.md
- skills/ousterhout-software-design/cheatsheet.md
- skills/ousterhout-software-design/glossary.md
- skills/ousterhout-software-design/patterns.md
Every link opens the file at its source, pinned to the revision this page describes.