Lectures
Lectures will be given live in Young CS 76 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.
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
- Threading and Concurrency (remote, in place of postponed midterm)
- API Design & Voting
- Web Server & Distributed System Architecture Anti-patterns
- The Art of Readable Code
- Performance
- Monitoring, Documentation
- Postmortems, Team Structure, AMA
- Deployments, Experiments, and Launches
Course overview / Development environments / Source control
Testing
Code Reviews and Web Servers
Build Systems and Deployment
- Lecture
- 4
- Date
- Wednesday, April 10
- Links
- Slides , Check-in
- Reading
- Why Google Stores Billions of Lines of Code in a Single Repository
Testing, Refactoring, Dependency Injection
Tips for Testing
Static Analysis
- Lecture
- 7
- Date
- Monday, April 22
- Links
- Slides , Check-in
- Reading
- A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World
Logging, Midterm review
- Lecture
- 8
- Date
- Wednesday, April 24
- Links
- Slides , Check-in
- Reading
- Kqueue: A generic and scalable event notification facility
API Design
Threading and Concurrency (remote, in place of postponed midterm)
- Lecture
- 10
- Date
- Wednesday, May 1
- Links
- Slides , Check-in
- Reading
- Real-world Concurrency
API Design & Voting
Web Server & Distributed System Architecture Anti-patterns
- Lecture
- 12
- Date
- Wednesday, May 8
- Links
- Slides , Check-in
- 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