Открытое собеседование PHP Middle
Вставка
- Опубліковано 8 чер 2024
- Мой телеграм про IT и программирование: t.me/mir_ait
00:00 Начало
00:50 Даниил - PHP разработчик.
01:06 Опыт работы год.
01:30 Работа в университете.
02:55 Создание мобильного приложения.
03:38 Переезд в Таиланд.
04:33 Опыт собеседований.
05:38 Работа с самописным фреймворком.
06:21 Масштаб данных монолит.
07:16 Монолит vs микросервисы.
10:55 Примитивные типы данных.
11:36 Передача по значению.
12:07 Структура данных.
12:52 Роль интерфейсов.
14:10 Инкремент и декремент.
14:56 Опасность рекурсии.
15:45 Модификаторы видимости.
16:11 Абстрактные классы.
17:23 Трейты и инкапсуляция.
18:46 Пример паттерна стратегия.
24:03 Синглтон и его преимущества.
24:32 Синглтон и настройки приложения.
26:11 Отличие PRIMARY KEY и UNIQUE.
28:18 Внешние ключи и их роль.
30:17 Средняя зарплата и аргументы.
31:19 Тяжелый SQL запрос.
32:29 Избегание кэш-сброса.
37:33 Как сообщить клиенту.
38:58 Реализация интерфейса.
42:42 Вертикальное и горизонтальное масштабирование базы данных.
43:55 Партицирование данных.
44:51 Репликация базы данных.
46:45 Поисковые движки.
47:27 RabbitMQ в больших нагрузках.
49:20 Практиковаться и учиться.
50:00 Тестовые задания и обратная связь.
52:05 Ментор и практические задачи. - Розваги
Очень интересно, подчерпнул для себя много нового. Спасибо!
38:05 всё проще, это же laravel. Крон и проверка кэша, если пустой, наполнить его.
Собеседующий тоже ленивый, если кандидат не ответил - нужно отвечать на вопрос. На вопрос с тяжелым запросом, можно было бы создать materialized view например и обновлять по крону или как там в пыхе делается
Спасибо огромное!
Спасибо огромное за видео. Ждём больше собесов по пыхе и хотелось бы на Джуна)
поищу джуна )
@@senior_ruslan Интересно, какие вопросы джуну...
Бесит что вопросы идут не по блокам, а рандомно. Это очень сбивает настрой на определенную тему
Вы когда-то использовали HAVING?
Просто интересно, как часто его применяют.
У меня таких кейсов небыло
ну наверное 3-4 раза за 10 лет )
1 раз юзал за все время)
Зависит от уровня говнокодства.
Даже составные запросы - нужны агрегатные функции, те же айдишники вытащить для запроса. Вытащить какие-то строки группируя по статусам - having нужен.
Просто на пхп проекты достаточно простые, особенно всякие ларавельные с их орм-кой, но я рекомендовал бы все равно пользоваться сложными запросами и почаще сырые запросы использовать)
@@forest_alf А почему бы ты рекомендовал почаще делать сырые запросы?
Зачем говорить "пометь себе"? Не ответил - ответь сам. Для кого интервью? Иначе непонятно, правильно ли респондент отвечал на предыдущие вопросы, а ведь его ответы будут запоминать другие.
Ты путаешь интервью и бесплатные онлайн-курсы. Если собеседуемый чего-то не знает - никто не обязан ему тут же устраивать ликбез.
@@Loutistic ты путаешь собеседование и интервью - при устройстве на работу кандидат имеет полное право узнать уровень и вменяемость компании. Это не экзамен на получение прав, не сдача зачета, не допрос с пристрастием. Более того, если собеседующий включает режим экзаменатора и отказывается отвечать на вопросы, то компания идет нафиг - с таким тимлидом или ведущим спецом работать не стоит.
Кстати, здесь виден еще один маркер плохого собеседующего - он ставит оценки, поощряет похвалой. Не надо так, ты не ментор, и собеседуемый не твой ученик, он не за твоими оценками пришел.
@@dolotube советую купить словарик, чтобы не морозить глупости.
@@Loutistic Советую тебе прогуляться, чтобы пропало желание ляпать глупости.
@@dolotube можешь нахуй вернуться и не возращаться оттуда
Здрайствуйте Сеньор Руслан! у меня вопрос относительно "тяжелого SQL запроса", по вам видно было что вы ожидали ответ "создать промежуточную таблицу с результатми запроса который висит на демонах (CRON) и выполняется каждые x минут", но мне интересно как решить проблему когда SQL запрос от пользователя собирается по сотню фильтрам, ведь в таком случае мы не знаем какой sql запрос повесить на демон, точнее знаем но комбинаций слишком много, как решить проблему в этом случае? Мне решение в принципе приходит на голову но конечно хочется услышать от вас истинное (не велосипедное) решение этой проблемы
Огромное спасибо за интервью и за то что выкладываете это, помогает готовиться к собеседованиям
здравствуйте. похожу задачу мы решали через elasticsearch, есть sphinx еще аналогичное решение.
@@senior_ruslan ну хотелось бы больше информации, ведь вы назвали инструмент а как использовать инструмент в нашем случае не сказали
нужно больше контекста, вероятно надо продуктово это обойти и не дать позволять делать юзерам такие запросы
Ну для начала проверить корректно ли вообще составлен запрос, может его можно выполнить по другому. Потом пройтись EXPLAIN и посмотреть, возможно навесить индексы или изменить их, если не корректны. Далее это что то из денормализованные данные в другой таблице(продумать механизм попадания в другую таблицу), другого типа БД как вам ответил Руслан(продумать тот же вопрос). Есть еще варианты из категории Шардирования, но это сложновато.
@@senior_ruslan Не подходит решение с использованием более быстрых инструментов вроде сфинкса или эластика - в условиях задачи оптимизировать и ускорять уже нечего, нельзя.
Таймкодов бы … )
добавил
Тяжелый SQL-запрос: у меня есть одна идея, если у меня такая ситуация, я решу проблему таким образом, во-первых, мне нужно проверить, есть ли у этого табличного запроса индекс, если нет, мне нужно его создать, и во-вторых , мне нужно создать view table представления, чтобы ответить на этот запрос
индекс лишь часть оптимизации тяжелых запросов, я знаю минимум 5 способов как можно решать тяжелые способы, и надо смотреть в зависимости от задачи, погружаться и проводить тесты.
Самые конченые собеседования, где в прямом эфире просят кодить.
Человек находится не в обычной обстановке, нервничает, а тут ему говорят - давай пиши и я буду смотреть на тебя.
От таких компаний нужно убегать.
имхо
Любой бигтех среди этапов собеседований имеет лайвкодинг
@@alekseyalekseev1700 бигтех, с зарплатой 5-10тыщ$, им позволительно. На видео явно не бигтех))
@@alekseyalekseev1700 ни один нормальный человек не может раскрыться, когда за ним смотрят, дышат над ним.
@@snikitin32 штош
@@snikitin32в чем проблема закодить простую задачу? Тестовое задание это слишком долго
Явно интервьюируемый знал вопросы заранее, хотя и спотыкался об простые вещи
Знания хорошие как по вашему почему он не нашел еще работу. Непонятно совсем
собеседование это отдельный навык, который просто нужно прокачивать, то есть проходить-проходить-проходить. второй момент это психологический, он просто может бояться подавать резюме в разные компании, может где то считает себя недостойным, где то считает, что мало знаний и не пройдет, и в итоге голова и тормозит же нас.
В итоге взяли бы его и если да, то на какую зп? )
Я бы взял, начали бы со 130к
@@senior_ruslan Мидл 130к.......
@@senior_ruslan это кринж
@@senior_ruslan палата..
слишком мало?@@MAREVICH
ответ про микросервисы просто смех, монолит так же скейлиться в горизонт как и микросервисы и раскатывается на кластере почти так же
Совершенно верно, мне надо было сказать, что при монолите единая база данных быстро становится узким место с ростом нагрузки. Безусловно, stateless приложения можно масштабировать без проблем.
Смысл мидла с опытом 1 год спрашивать про паттерны и архитектуру? 😂
Про что бы Вы спрашивали миддла?
Неужели это вопросы для мидла?
Я бы где +- на 100к его взял. Годик бы погонял его по проектам и от этого уже отталкивался о дальнейшей ЗП
Да можно сразу в рабство за 40 тысяч. Зачем 100 платить.