

Episode 520: John Ousterhout on A Philosophy of Software Design
20 snips Jul 12, 2022
Chapters
Transcript
Episode notes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Introduction
00:00 • 2min
When Do You Design?
02:24 • 3min
How Long Does It Take to Design a System?
04:57 • 2min
The One Principle to Rule Them All Is Complexity
07:11 • 3min
How Much Can You Afford to Invest?
10:14 • 2min
Is There a Quality Problem in Your Product?
12:09 • 2min
Pulling Complexity Downwards
14:01 • 2min
Embracing the Complexity Yourself
15:53 • 2min
Defining Errors in Special Cases Out of Existence
17:25 • 4min
Defining Errors
21:18 • 3min
Exceptional Condition in a Tickle?
24:06 • 2min
Insited Experience
25:42 • 2min
Modules and Layers - What Do They Mean?
27:28 • 2min
Is the Front End Controlling the Complexity of the Web Application?
29:19 • 2min
Module Architecture - Layers and Dependencies
31:01 • 2min
Layering Is a Great Example of a Deep Module
32:48 • 1min
Modules and Layers - What's the Inner Face?
34:17 • 2min
Is There a Complexity in Complexity?
35:55 • 2min
Using Spread Sheets to Reduce Table Scanning
37:41 • 2min
Code Reviews Should Be Design Reviews
39:39 • 2min
Do You Have to Touch Five Modules Every Time?
41:10 • 2min
Working Code Isn't Enough
42:54 • 2min
Is There a Tactic Tornado?
45:15 • 2min
Is There a Cultural Ethic in Unit Testing?
47:23 • 2min
The Indicators of Softer Development Should Be Abstractions, Not Features
49:26 • 2min
Test Driven Development
51:37 • 2min
How to Avoid Coupling Your Tests to the Implementation
53:10 • 2min
Testability Is Another Hallmark
54:49 • 2min
Is Every Comment a Failure?
56:22 • 3min
How to Keep Your Comments Up to Date
59:15 • 3min
Is There a Google Group for a Design Book?
01:01:51 • 3min