Intermediate
Low-Level Design
Classes, interfaces and the reasons for them.
SOLID as decisions, the design patterns a backend actually uses, modelling a domain in Java, and the classic LLD exercises — parking lot, rate limiter, cache, notification system — done with tests.
3 lessons written3 outlined1 modules~1h reading
After this course you can
- Apply SOLID to a real class and explain the trade-off each principle makes
- Use strategy, factory, builder, observer and state where they fit and nowhere else
- Design a domain model that expresses its invariants
Curriculum
6 lessons · outlined lessons show their plan01
SOLID as decisionsEach principle as the problem it prevents and the cost it adds, with the refactor that shows it.outlinedPatterns you already useDecorator, chain of responsibility, observer and template method — named in the JDK and Spring code you already rely on.12 minCreating objectsSingleton, factory, builder and prototype — and why Spring turned the first from a pattern into a scope.11 minWhen a pattern is the wrong answerAn abstraction costs a file, a name and a place for a bug to hide. The test is whether there is a second implementation today.11 minDomain modelling in JavaEntities, value objects, aggregates, invariants, and the anaemic model that pushes every rule into a service.outlinedLLD exercisesParking lot, rate limiter, LRU cache, notification service — walked through with the questions an interviewer asks.outlined