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

Собеседование PHP (2 из 2, Searchanise/Simtech Group)

Разбор реального PHP-собеседования с тремя задачами по SOLID: инверсия зависимостей, единственная ответственность и принцип подстановки Лисков. Интервьюер направляет кандидата к решениям через интерфейсы, разделение обязанностей и отказ от неподходящего наследования.

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

Открыть на YouTube

Таймлайн

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

Запись технической части PHP-собеседования, где кандидату предлагают разобрать три архитектурные задачи по SOLID. Обсуждаются инверсия зависимостей в связке MailerService и логгера, разделение хранения данных и их представления по принципу единой ответственности, а также нарушение принципа подстановки Барбары Лисков в модели Rectangle/Square. В конце интервьюер возвращается к первой задаче и формулирует решение через зависимость от интерфейса Logger, а не от конкретной реализации DatabaseLogger.

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

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

  • Для инверсии зависимостей MailerService должен принимать абстракцию Logger в конструкторе, а не зависеть от конкретного DatabaseLogger.
  • Сервис отправки писем не должен знать детали того, как именно логируются ошибки или события: это ответственность реализации логгера.
  • Если BlogPost одновременно хранит данные и выводит их в HTML или другие представления, нарушается принцип единой ответственности; рендеринг следует вынести в отдельный класс или слой.
  • Наследование Square от Rectangle может нарушить принцип подстановки Лисков, когда клиентский код ожидает независимое изменение ширины и высоты прямоугольника.
  • Для расчёта площади геометрических фигур интервьюер предлагает отказаться от проблемного наследования и задать общий контракт через интерфейс, чтобы каждая фигура реализовывала расчёт площади самостоятельно.
  • По словам автора в описании, техническая часть не была пройдена; он позиционирует запись как учебный разбор SOLID.

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

1 ч 2 мин
BackendMiddle

РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ НА BACKEND РАЗРАБОТЧИКА ПОЛУЧИЛ ЗП 280К ЗАВАЛИВ ПОЛОВИНУ ТЕХНИЧЕСКИХ ВОПРОСОВ

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

2 ч 1 мин
BackendSenior

Senior в 14 лет?! Это вообще законно? / Думали будет джун... / Техсобес Senior Python Developer

Развёрнутое мок-собеседование с 14-летним Python-разработчиком: разбор Telegram-бота, конкурентности, БД и архитектуры учебного проекта заметок. В конце — технический фидбек и рекомендации по развитию.

2 ч 8 мин
BackendSenior

Собеседование Senior Go-разработчика / Даниил Подольский, Владимир Балун - Антон Зиновьев

Открытое показательное собеседование Senior Go-разработчика: теория Go и Linux, затем практический разбор PostgreSQL, конкурентного кэша и диагностики прод-инцидентов.