High-level design vs low-level design?
Options
- High-level: components; low-level: internal classes (Correct option)
- They are the same thing under two different names
- High-level design means a more expensive system
- Low-level design means writing assembly code only
Answer
High-level: the big components and how they interact (services, databases, queues); low-level: what happens inside one component (classes, methods, data models)
Why
High-level design (HLD): boxes and arrows. Which services exist? Where is the data stored? Where is a cache or a queue used?
Low-level design (LLD): inside a box. Which classes and interfaces? What methods and fields? Which design patterns?
'Design a URL shortener' is usually HLD. 'Design a parking lot' is usually LLD (object-oriented design).
Remember
HLD = components. LLD = classes and methods.