Вернуться в каталог собеседований

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

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

PHP собеседования
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 2,1 тыс.
  • Лайки на YouTube: 48
Открыть на YouTube

Таймлайн

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

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

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

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

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

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