Собеседование PHP, весна 2024, Алгоритмика
Техническое PHP-собеседование с разбором опыта кандидата, MySQL, Yii/Laravel, очередей RabbitMQ и микросервисов. В финале интервьюер раскрывает устройство команды и условия работы в Алгоритмике.
PHP собеседования
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 6,6 тыс.
- Лайки на YouTube: 147
Таймлайн
Коротко о видео
Запись PHP-собеседования в Алгоритмику: кандидат рассказывает о предыдущей работе с PHP, Yii/Laravel, внутренними сервисами и обработкой изображений через RabbitMQ. Интервьюер подробно проверяет знания MySQL, оптимизации запросов, миграций нагруженных таблиц, N+1 и проектирования сервисов. В конце он описывает процессы и инфраструктуру своей команды: около 1 000 RPS, монолит на Yii2, несколько Laravel-сервисов, отдельное тестирование и географические инстансы. По описанию автора, после интервью кандидата не позвали.
Затронутые темы
Что взять на заметку
- Кандидат работал с PHP 5/7, Yii 1/2 и Laravel; в прежнем проекте автоматических тестов практически не было, что, по его словам, усложняло безопасный переход монолита на PHP 8.
- Для медленных MySQL-запросов обсуждаются EXPLAIN, индексы и расхождение плана со фактическим выполнением из-за устаревшей статистики на часто меняющихся таблицах; интервьюер упоминает OPTIMIZE TABLE и подсказки индексов как возможные меры.
- Для добавления колонки в активно используемую таблицу интервьюер предлагает схему с копией таблицы, синхронизацией изменений триггерами и атомарным переименованием; ручное доливание записей признано ненадёжным.
- Проблему N+1 в Yii связывают с ленивой загрузкой relations; для заранее известных связей нужна жадная загрузка.
- В задаче «записать в БД и отправить событие в RabbitMQ» собеседники приходят к отдельной таблице задач в БД: её вычитывает процесс и публикует события в очередь, что даёт гарантированную отложенную обработку.
- RabbitMQ рассматривается не как обязательная замена таблице задач, а как средство развязки сервисов, распределения сообщений между consumer’ами и горизонтального масштабирования.
- У интервьюера двухнедельные спринты с грумингом и планированием; разработчики пишут unit и функциональные тесты, а автотесты поддерживает отдельная QA-команда.