Вернуться в видеотекуСобеседование PHP (2 из 2, Searchanise/Simtech Group)
Разбор реального PHP-собеседования с тремя задачами по SOLID: инверсия зависимостей, единственная ответственность и принцип подстановки Лисков. Интервьюер направляет кандидата к решениям через интерфейсы, разделение обязанностей и отказ от неподходящего наследования.
- Направление
- Backend
- Формат
- Техническое собеседование
- Компания
Searchanise- Длительность
- 24 мин
Коротко о видео
Запись технической части PHP-собеседования, где кандидату предлагают разобрать три архитектурные задачи по SOLID. Обсуждаются инверсия зависимостей в связке MailerService и логгера, разделение хранения данных и их представления по принципу единой ответственности, а также нарушение принципа подстановки Барбары Лисков в модели Rectangle/Square. В конце интервьюер возвращается к первой задаче и формулирует решение через зависимость от интерфейса Logger, а не от конкретной реализации DatabaseLogger.
Затронутые темы
Что взять на заметку
- Для инверсии зависимостей MailerService должен принимать абстракцию Logger в конструкторе, а не зависеть от конкретного DatabaseLogger.
- Сервис отправки писем не должен знать детали того, как именно логируются ошибки или события: это ответственность реализации логгера.
- Если BlogPost одновременно хранит данные и выводит их в HTML или другие представления, нарушается принцип единой ответственности; рендеринг следует вынести в отдельный класс или слой.
- Наследование Square от Rectangle может нарушить принцип подстановки Лисков, когда клиентский код ожидает независимое изменение ширины и высоты прямоугольника.
- Для расчёта площади геометрических фигур интервьюер предлагает отказаться от проблемного наследования и задать общий контракт через интерфейс, чтобы каждая фигура реализовывала расчёт площади самостоятельно.
- По словам автора в описании, техническая часть не была пройдена; он позиционирует запись как учебный разбор SOLID.