Глоссарий

Словарь веб-разработчика

Визначення технічних термінів з 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 строк, это сигнал вынести логику в сервис или модель.