ABCDEFGHIJKLMNOPQRST
1
Title One Weird Trick
2
Act 1
3
SettingAn IDE
4
RoleA developer writing the code for a distributed system
5
Point ACall to ActionPoint B
6
Distributed systems are complex because concurrency is complex, abstractions leak, and bugs are inevitableWRITE FUCKING TESTSUpfront design, good languages, performance and stress testing are all valuable to writing high-quality systems but testing is key and painfully overlooked
7
8
9
Act 2
10
Key Point (5 minutes)Explanation (15 minutes)Detail (45 minutes)
11
The lifecycle of a piece of DS infrastructureDesign, possibly TLA+!Formally, what are you expecting?
12
Lamport
13
14
Coding, testing, ensuring it does what you expect of it for your set of requirementsPerformance testingGiving it to users
15
Stress testing
16
Human QA
17
Maintenance, growth, usage in the wildThe long tail80% of the cost of software is maintenance, Kay
18
Bugs happen, how do you fix them?
19
Adding new features!
20
How do you think about writing tests as you're coding?TDDIt's not about test coverage, and never was
21
learning how to think, deconstruct complexity and anticipate problems
22
23
If there's a bug, write a test before you fix it
24
25
26
The challenges of testing code that was written without thinking about testsThis is where those sleep statements come from
27
It's ok to leak a bit if you can get a great test out of it!
28
What to do if it's impossible
29
Examples in the wildZooKeeper
30
31
32
Other OSS
33
34
35
Inside of Google, etc
36
37
38
Act 3
39
Point ACall to ActionPoint B
40
You want to be a great developer, you want to write DSs that will stand the test of timeWRITE TESTSYour code is a living organism, and tests are your immune system. Don't write your code in a bubble.
41
42
43
44
(go to File / Make a Copy to save this to your own Google Drive account)
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100