Глосарій
Словник веб-розробника
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
термінів
47
літер
M
Match expression (PHP 8)
Match expression — PHP 8.0 альтернатива switch із суворим порівнянням (===), без fall-through і з обов'язковим покриттям всіх випадків. Повертає значення, а не виконує інструкції.
Switch vs Match
// switch — нестрого, fall-through, не повертає
switch ($status) {
case 'active': $label = 'Active'; break;
case 'banned': $label = 'Banned'; break;
default: $label = 'Unknown';
}
// match — строго, без fall-through, повертає
$label = match($status) {
'active' => 'Active',
'banned' => 'Banned',
'pending', 'unverified' => 'Waiting', // кілька умов
default => 'Unknown',
};
Переваги
Суворе порівняння: match(0) ≠ match('foo')
Якщо немає збігу і немає default — кидається UnhandledMatchError
Компактніший, читабельніший код
Message Broker
Message Broker — посередник, що приймає повідомлення від продюсерів і доставляє їх консюмерам. Роз'єднує сервіси: відправник не знає про одержувача і не чекає відповіді. RabbitMQ, Kafka, Amazon SQS — популярні брокери.Exchange і Queue (RabbitMQ)Продюсер відправляє повідомлення в exchange. Exchange за правилами маршрутизує в одну або кілька queue. Консюмер читає з черги. Якщо консюмер недоступний — повідомлення чекає в черзі.Topic і Partition (Kafka)Kafka зберігає повідомлення в topics, розбитих на partitions. Повідомлення не видаляються після читання — можна перечитати. Ідеальний для event streaming і аудит-логів.Коли брокер, коли HTTPHTTP — синхронний запит з відповіддю. Брокер — асинхронна доставка з гарантіями. Брокер потрібен, коли: відправник не повинен чекати, консюмер може бути тимчасово недоступний, або одне повідомлення мають отримати кілька консюмерів.
Middleware
Middleware — проміжний обробник, який перехоплює HTTP-запит до того, як він потрапить до контролера (або відповідь — до того, як піде клієнту). Middleware утворюють ланцюжок: кожен може пропустити запит далі, змінити його або одразу повернути відповідь.Типові задачіАутентифікація та авторизація — перевірити токен до виконання діїRate limiting — обмежити кількість запитів від IPЛогування — записати деталі запиту/відповідіCORS — додати заголовки для cross-origin запитівСтиснення відповіді — gzip перед відправкоюПатерн «ланцюжок обробників»Кожен middleware реалізує один метод: отримай запит, зроби своє, передай далі. Якщо умова не виконана — поверни відповідь і перерви ланцюжок. Цей патерн незалежний від фреймворку і однаково реалізований у PHP, Python (WSGI), Node.js (Express) та Go.
Mocking (заглушки)
Mock — підробний об'єкт, що імітує поведінку реальної залежності в тестах. Замість справжнього email-сервісу, БД або зовнішнього API — mock, що повертає задані дані і дозволяє перевірити, що код поводиться правильно.Типи test doublesStub — повертає задані значення. Без перевірки викликівMock — додатково перевіряє, що певні методи були (або не були) викликаніSpy — записує виклики, але делегує до реальної реалізаціїFake — спрощена реальна реалізація (in-memory репозиторій)Dummy — об'єкт-заглушка, що передається але не використовуєтьсяКоли не мокатиМокати слід зовнішні залежності (email, S3, платіжна система), а не власний код. Якщо ви мокаєте свої ж класи — це сигнал, що архітектура потребує рефакторингу.
MVC
MVC (Model-View-Controller) — патерн архітектури, який розділяє застосунок на три шари з чіткими обов'язками. Завдяки цьому логіку, відображення і дані можна змінювати незалежно одне від одного.Три шариModel — дані та бізнес-логіка: робота з БД, валідація, обчислення. Не знає нічого про те, як дані будуть відображеніView — шаблон, що перетворює дані на HTML (або JSON). Не містить логіки — тільки відображенняController — приймає HTTP-запит, викликає потрібну модель, передає результат у view. Тонкий шар-диригентПравило «тонкого контролера»Контролер не повинен містити бізнес-логіку — лише оркестрацію. Якщо метод контролера перевищує 10–15 рядків, це сигнал перенести логіку у сервіс або модель.