Вернуться в видеотеку

Собеседование PHP, весна 2024, АО Тривио

Техническое PHP-собеседование с разбором языка, MySQL, алгоритмических основ и опыта кандидата. В конце интервьюер рассказывает о нагрузке и устройстве команды, а кандидат уточняет условия работы.

Источник: PHP собеседования

Открыть на YouTube

Таймлайн

Коротко о видео

Запись технического собеседования на позицию PHP-разработчика в АО «Тривио»: после знакомства кандидат рассказывает о логировании метрик производительности страниц в ClickHouse, затем отвечает на вопросы по PHP, SQL, структурам данных и инфраструктуре. Интервьюеры обсуждают интерфейсы, абстрактные классы, фабрику, copy-on-write, замыкания, ArrayAccess, Reflection, тестирование, обновление миллионов записей и индексы MySQL. В финале кандидат задаёт вопросы о нагрузке, Kubernetes/Docker, команде, формате работы и офисе.

Затронутые темы

Что взять на заметку

  • Подготовьте короткий рассказ о проекте с технической задачей, решением и ограничениями: здесь кандидат описывал запись метрик производительности в ClickHouse PHP-скриптом с пакетной вставкой в таблицу Buffer.
  • Повторите точную семантику PHP: объекты передаются с возможностью менять состояние того же экземпляра, массивы используют copy-on-write, для отдельной копии объекта нужен clone; в нестатическом замыкании $this доступен из контекста метода.
  • Нужно уверенно различать интерфейс и абстрактный класс, а также объяснять Factory как способ выбрать и создать нужную реализацию по внешнему признаку.
  • Стоит знать ArrayAccess для доступа к объекту через квадратные скобки, назначение __destruct и практические применения Reflection: кодогенерация, тестовые и вспомогательные инструменты.
  • Для вопросов о тестировании подготовьте различие unit, integration и end-to-end тестов, а также примеры браузерной автоматизации вроде Selenium; кандидат сообщил, что на работе тесты не писал из-за отсутствия времени.
  • Для задачи массового обновления данных полезно обсуждать обработку пачками, один установленный connection к БД, контроль времени выполнения, сохранение прогресса и безопасный перезапуск после падения скрипта.
  • Повторите SQL: первичные, уникальные и внешние ключи, нормализацию и денормализацию, составные и покрывающие индексы, GROUP BY/HAVING и LEFT JOIN.

Рекомендуем посмотреть