Lectures
Lectures will be given live in Franz Hall 1178 each Monday and Wednesday from 4-5:50 PM. Lectures will not be recorded or live streamed.
Lecture presentation slides will be posted before lecture and will only be available to users logging in from their @g.ucla.edu accounts.
Any listed readings are entirely supplemental.
Table of contents
- Course overview / Development environments / Source control
- Testing
- Code Reviews and Web Servers
- Build Systems and Deployment
- Testing, Refactoring, Dependency Injection
- Tips for Testing
- Static Analysis
- Logging, Midterm review
- API Design
- API Design & Voting
- The Art of Readable Code
- Threading and Concurrency (remote, in place of postponed midterm)
- Web Server & Distributed System Architecture
- Performance
- Monitoring, Documentation
- Postmortems, Team Structure, AMA
- Deployments, Experiments, and Launches
Course overview / Development environments / Source control
- Lecture
- 1
- Date
- Monday, March 31
- Links
- Slides
Testing
- Lecture
- 2
- Date
- Wedneday, April 2
- Links
- Slides
Code Reviews and Web Servers
- Lecture
- 3
- Date
- Monday, April 7
- Links
- Slides
Build Systems and Deployment
- Lecture
- 4
- Date
- Wednesday, April 9
- Links
- Slides
- Reading
- Why Google Stores Billions of Lines of Code in a Single Repository
Testing, Refactoring, Dependency Injection
- Lecture
- 5
- Date
- Monday, April 14
- Links
- Slides
Tips for Testing
- Lecture
- 6
- Date
- Wednesday, April 16
- Links
- Slides
Static Analysis
- Lecture
- 7
- Date
- Monday, April 21
- Links
- Slides
- Reading
- A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World , Rubber Duck Responds
Logging, Midterm review
- Lecture
- 8
- Date
- Wednesday, April 23
- Links
- Slides
- Reading
- Kqueue: A generic and scalable event notification facility
API Design
- Lecture
- 9
- Date
- Monday, April 28
- Links
- Slides
API Design & Voting
- Lecture
- 10
- Date
- Monday, May 5
- Links
- Slides
The Art of Readable Code
- Lecture
- 11
- Date
- Wednesday, May 7
- Links
- Slides
Threading and Concurrency (remote, in place of postponed midterm)
- Lecture
- 12
- Date
- Monday, May 12
- Links
- Slides
- Reading
- Real-world Concurrency
Web Server & Distributed System Architecture
- Lecture
- 13
- Date
- Wednesday, May 14
- Links
- Slides
- Reading
- 2003 The Google File System , 2004 MapReduce: Simplified Data Processing on Large Clusters , 2006 Bigtable: A Distributed Storage System for Structured Data , 2010 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure , 2012 Spanner: Google’s Globally-Distributed Database
Performance
- Lecture
- 14
- Date
- Monday, May 19
- Links
- Slides
Monitoring, Documentation
- Lecture
- 15
- Date
- Wednesday, May 21
- Links
- Slides
Postmortems, Team Structure, AMA
- Lecture
- 16
- Date
- Wednesday, May 28
- Links
- Slides
Deployments, Experiments, and Launches
- Lecture
- 17
- Date
- Monday, June 2
- Links
- Slides