Software Engineering Radio - the podcast for professional software developers

Episode 520: John Ousterhout on A Philosophy of Software Design

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