Три шари
- Model — дані та бізнес-логіка: робота з БД, валідація, обчислення. Не знає нічого про те, як дані будуть відображені
- View — шаблон, що перетворює дані на HTML (або JSON). Не містить логіки — тільки відображення
- Controller — приймає HTTP-запит, викликає потрібну модель, передає результат у view. Тонкий шар-диригент
Правило «тонкого контролера»
Контролер не повинен містити бізнес-логіку — лише оркестрацію. Якщо метод контролера перевищує 10–15 рядків, це сигнал перенести логіку у сервіс або модель.