Глоссарий
Словарь веб-разработчика
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
терминов
46
букв
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 строк, это сигнал вынести логику в сервис или модель.