A Philosophy of Software Design | John Ousterhout | Talks at Google
Talks at GoogleYouTube ↗
Further reading 2
Is removing duplication worth another abstraction? →Metz weighs the cost of a wrong abstraction against repeated code. Ousterhout asks how much capability a module hides behind a simple interface.How much can a small interface hide? →A small API reduces the concepts callers must learn. A deep module makes that small surface useful by hiding substantial implementation behind it.
Caption notes
A deep module hides substantial complexity behind a small interface. Ousterhout argues for investing in simpler semantics rather than merely finishing the next feature.
Original passages · 6
everything someone has to have in their mind in order to use that class.redefine the semantics, so that unset makes a variable not exist.It's hundreds or thousands of mistakes made by many people over a period of time.You have to use a somewhat iterative approach.very simple interface with a very large amount of functionality underneath itthe number of places where people have to deal with exceptions