← Library
Course · by Yash Tiwari
Low Level Design: Classes, patterns and concurrency
How to design the classes, interfaces and relationships of a self-contained system: a delivery framework, design principles, OOP and patterns, concurrency, and worked breakdowns.
0 of 26 lessons published0%
0 of 6 modules complete · 0 in progress · 6 to come
Locked. These lessons are not open to the public yet.
-
01
Introduction
What low level design is, how it differs from system design, and how to run the interview.
0 / 2- 1.1IntroductionSoon
- 1.2The delivery frameworkSoon
-
02
Design principles
The rules of thumb behind a design that is easy to change.
0 / 2- 2.1KISS, DRY, YAGNI, separation of concerns, Law of DemeterSoon
- 2.2SOLIDSoon
-
03
OOP concepts
The four ideas every class design is built from.
0 / 1- 3.1Encapsulation, abstraction, polymorphism and inheritanceSoon
-
04
Design patterns
The few patterns that earn their place in an interview.
0 / 8- 4.1Factory methodSoon
- 4.2BuilderSoon
- 4.3SingletonSoon
- 4.4DecoratorSoon
- 4.5FacadeSoon
- 4.6StrategySoon
- 4.7ObserverSoon
- 4.8State machineSoon
-
05
Concurrency
What changes when several threads share one process.
0 / 4- 5.1Concurrency: the toolboxSoon
- 5.2CorrectnessSoon
- 5.3CoordinationSoon
- 5.4ScarcitySoon
-
06
Breakdowns
Putting principles, patterns and concurrency together.
0 / 9- 6.1Design Connect FourSoon
- 6.2Design Amazon LockerSoon
- 6.3Design an elevatorSoon
- 6.4Design a parking lotSoon
- 6.5Design a file systemSoon
- 6.6Design movie ticket bookingSoon
- 6.7Design a logging serviceSoon
- 6.8Design a rate limiterSoon
- 6.9Design inventory managementSoon