Собеседующий тоже ленивый, если кандидат не ответил - нужно отвечать на вопрос. На вопрос с тяжелым запросом, можно было бы создать materialized view например и обновлять по крону или как там в пыхе делается
23:28 как это все? где сама стратегия? как мне сказать "хочу тар архив"? само стратегирование будет в сервис провайдере в момент бинда контейнера? ну это бред же а не стратегия, нет?
или нам ручками нужно каждый раз создавать инстанс необходимой стратегии и прокидывать ее в process()? тогда это обычный полиморфизм а не стратегия может я не понял чего?
ознакомился на рефакторинг гуру, там тоже самое "Другие объекты содержат ссылку на объект-стратегию и делегируют ей работу. Программа может подменить этот объект другим, если требуется иной способ решения задачи." не пойму тогда смысл этого паттерна если это базовая реализация полимофризма подмена конкретики на основе интерфейса :\
@@prod.wembley3816 Стратегия это не когда ты решаешь какой объект получит метод силами DI контейнера(laravel привет), это когда ты в коде решаешь в зависимости от обстоятельств какой класс использовать и сам создаёшь объект этой стратегии и передаёшь её, при этом все стратегии реализуют общий интерфейс, дабы гарантировать что у переданного класса(ожидается стратегия) будет нужный метод... По сути, это аналог условий if, только реализованный согласно ООП
Когда заходил посмотреть собес на мидла, ожидал услышать вопросы про брокеров побольше, SOLID, разговор про построение архитектуры, обсуждение паттернов более менее часто используемых по типу абстрактной фабрики, адаптеры, эвент диспетчер, слушатели/наблюдатели... А в итоге услышал только про плюсы синглтона и ни одного упоминания проблем с этим паттерном. Совсем базовые вопросы про абстрактный класс и интерфейсы. Хотя бы про RabbitMQ поговорили) Неужто сейчас так легко пойти на мидла?)
Зачем говорить "пометь себе"? Не ответил - ответь сам. Для кого интервью? Иначе непонятно, правильно ли респондент отвечал на предыдущие вопросы, а ведь его ответы будут запоминать другие.
@@Loutistic ты путаешь собеседование и интервью - при устройстве на работу кандидат имеет полное право узнать уровень и вменяемость компании. Это не экзамен на получение прав, не сдача зачета, не допрос с пристрастием. Более того, если собеседующий включает режим экзаменатора и отказывается отвечать на вопросы, то компания идет нафиг - с таким тимлидом или ведущим спецом работать не стоит. Кстати, здесь виден еще один маркер плохого собеседующего - он ставит оценки, поощряет похвалой. Не надо так, ты не ментор, и собеседуемый не твой ученик, он не за твоими оценками пришел.
Самые конченые собеседования, где в прямом эфире просят кодить. Человек находится не в обычной обстановке, нервничает, а тут ему говорят - давай пиши и я буду смотреть на тебя. От таких компаний нужно убегать. имхо
Тяжелый SQL-запрос: у меня есть одна идея, если у меня такая ситуация, я решу проблему таким образом, во-первых, мне нужно проверить, есть ли у этого табличного запроса индекс, если нет, мне нужно его создать, и во-вторых , мне нужно создать view table представления, чтобы ответить на этот запрос
индекс лишь часть оптимизации тяжелых запросов, я знаю минимум 5 способов как можно решать тяжелые способы, и надо смотреть в зависимости от задачи, погружаться и проводить тесты.
а причем тут индексы? в тз сказано что оптимизировать уже нельзя, подразумевается, что индексы есть, джоины все правильные, лишних данных не выгребается и тд и тп, или я не понял суть написанного в ТЗ?))
Зависит от уровня говнокодства. Даже составные запросы - нужны агрегатные функции, те же айдишники вытащить для запроса. Вытащить какие-то строки группируя по статусам - having нужен. Просто на пхп проекты достаточно простые, особенно всякие ларавельные с их орм-кой, но я рекомендовал бы все равно пользоваться сложными запросами и почаще сырые запросы использовать)
Здрайствуйте Сеньор Руслан! у меня вопрос относительно "тяжелого SQL запроса", по вам видно было что вы ожидали ответ "создать промежуточную таблицу с результатми запроса который висит на демонах (CRON) и выполняется каждые x минут", но мне интересно как решить проблему когда SQL запрос от пользователя собирается по сотню фильтрам, ведь в таком случае мы не знаем какой sql запрос повесить на демон, точнее знаем но комбинаций слишком много, как решить проблему в этом случае? Мне решение в принципе приходит на голову но конечно хочется услышать от вас истинное (не велосипедное) решение этой проблемы Огромное спасибо за интервью и за то что выкладываете это, помогает готовиться к собеседованиям
Ну для начала проверить корректно ли вообще составлен запрос, может его можно выполнить по другому. Потом пройтись EXPLAIN и посмотреть, возможно навесить индексы или изменить их, если не корректны. Далее это что то из денормализованные данные в другой таблице(продумать механизм попадания в другую таблицу), другого типа БД как вам ответил Руслан(продумать тот же вопрос). Есть еще варианты из категории Шардирования, но это сложновато.
@@senior_ruslan Не подходит решение с использованием более быстрых инструментов вроде сфинкса или эластика - в условиях задачи оптимизировать и ускорять уже нечего, нельзя.
собеседование это отдельный навык, который просто нужно прокачивать, то есть проходить-проходить-проходить. второй момент это психологический, он просто может бояться подавать резюме в разные компании, может где то считает себя недостойным, где то считает, что мало знаний и не пройдет, и в итоге голова и тормозит же нас.
У меня другое мнение сложилось. Парень толковый, поэтому он на эти все вопросы(которые были рутинные) просто научился отвечать. Может он 50 собесов уже прошел, да и достаточно подсказок что там могут спросить. Поэтому ты как студент, готовишься отвечать на вопросы. Но реального опыта, умения программировать, там, скорее всего, еще очень мало.
Спасибо огромное!
Очень интересно, подчерпнул для себя много нового. Спасибо!
38:05 всё проще, это же laravel. Крон и проверка кэша, если пустой, наполнить его.
Спасибо огромное за видео. Ждём больше собесов по пыхе и хотелось бы на Джуна)
поищу джуна )
@@senior_ruslan Интересно, какие вопросы джуну...
Собеседующий тоже ленивый, если кандидат не ответил - нужно отвечать на вопрос. На вопрос с тяжелым запросом, можно было бы создать materialized view например и обновлять по крону или как там в пыхе делается
23:28 как это все? где сама стратегия? как мне сказать "хочу тар архив"? само стратегирование будет в сервис провайдере в момент бинда контейнера? ну это бред же а не стратегия, нет?
или нам ручками нужно каждый раз создавать инстанс необходимой стратегии и прокидывать ее в process()?
тогда это обычный полиморфизм а не стратегия
может я не понял чего?
ознакомился на рефакторинг гуру, там тоже самое
"Другие объекты содержат ссылку на объект-стратегию и делегируют ей работу. Программа может подменить этот объект другим, если требуется иной способ решения задачи."
не пойму тогда смысл этого паттерна если это базовая реализация полимофризма
подмена конкретики на основе интерфейса :\
@@prod.wembley3816 Стратегия это не когда ты решаешь какой объект получит метод силами DI контейнера(laravel привет), это когда ты в коде решаешь в зависимости от обстоятельств какой класс использовать и сам создаёшь объект этой стратегии и передаёшь её, при этом все стратегии реализуют общий интерфейс, дабы гарантировать что у переданного класса(ожидается стратегия) будет нужный метод... По сути, это аналог условий if, только реализованный согласно ООП
Когда заходил посмотреть собес на мидла, ожидал услышать вопросы про брокеров побольше, SOLID, разговор про построение архитектуры, обсуждение паттернов более менее часто используемых по типу абстрактной фабрики, адаптеры, эвент диспетчер, слушатели/наблюдатели... А в итоге услышал только про плюсы синглтона и ни одного упоминания проблем с этим паттерном. Совсем базовые вопросы про абстрактный класс и интерфейсы. Хотя бы про RabbitMQ поговорили) Неужто сейчас так легко пойти на мидла?)
Зачем говорить "пометь себе"? Не ответил - ответь сам. Для кого интервью? Иначе непонятно, правильно ли респондент отвечал на предыдущие вопросы, а ведь его ответы будут запоминать другие.
Ты путаешь интервью и бесплатные онлайн-курсы. Если собеседуемый чего-то не знает - никто не обязан ему тут же устраивать ликбез.
@@Loutistic ты путаешь собеседование и интервью - при устройстве на работу кандидат имеет полное право узнать уровень и вменяемость компании. Это не экзамен на получение прав, не сдача зачета, не допрос с пристрастием. Более того, если собеседующий включает режим экзаменатора и отказывается отвечать на вопросы, то компания идет нафиг - с таким тимлидом или ведущим спецом работать не стоит.
Кстати, здесь виден еще один маркер плохого собеседующего - он ставит оценки, поощряет похвалой. Не надо так, ты не ментор, и собеседуемый не твой ученик, он не за твоими оценками пришел.
@@dolotube советую купить словарик, чтобы не морозить глупости.
@@Loutistic Советую тебе прогуляться, чтобы пропало желание ляпать глупости.
@@dolotube можешь нахуй вернуться и не возращаться оттуда
Самые конченые собеседования, где в прямом эфире просят кодить.
Человек находится не в обычной обстановке, нервничает, а тут ему говорят - давай пиши и я буду смотреть на тебя.
От таких компаний нужно убегать.
имхо
Любой бигтех среди этапов собеседований имеет лайвкодинг
@@alekseyalekseev1700 бигтех, с зарплатой 5-10тыщ$, им позволительно. На видео явно не бигтех))
@@alekseyalekseev1700 ни один нормальный человек не может раскрыться, когда за ним смотрят, дышат над ним.
@@snikitin32 штош
@@snikitin32в чем проблема закодить простую задачу? Тестовое задание это слишком долго
Таймкодов бы … )
добавил
Бесит что вопросы идут не по блокам, а рандомно. Это очень сбивает настрой на определенную тему
Тяжелый SQL-запрос: у меня есть одна идея, если у меня такая ситуация, я решу проблему таким образом, во-первых, мне нужно проверить, есть ли у этого табличного запроса индекс, если нет, мне нужно его создать, и во-вторых , мне нужно создать view table представления, чтобы ответить на этот запрос
индекс лишь часть оптимизации тяжелых запросов, я знаю минимум 5 способов как можно решать тяжелые способы, и надо смотреть в зависимости от задачи, погружаться и проводить тесты.
а причем тут индексы? в тз сказано что оптимизировать уже нельзя, подразумевается, что индексы есть, джоины все правильные, лишних данных не выгребается и тд и тп, или я не понял суть написанного в ТЗ?))
Вы когда-то использовали HAVING?
Просто интересно, как часто его применяют.
У меня таких кейсов небыло
ну наверное 3-4 раза за 10 лет )
1 раз юзал за все время)
Зависит от уровня говнокодства.
Даже составные запросы - нужны агрегатные функции, те же айдишники вытащить для запроса. Вытащить какие-то строки группируя по статусам - having нужен.
Просто на пхп проекты достаточно простые, особенно всякие ларавельные с их орм-кой, но я рекомендовал бы все равно пользоваться сложными запросами и почаще сырые запросы использовать)
@@forest_alf А почему бы ты рекомендовал почаще делать сырые запросы?
регулярно пользуюсь. очень часто нужно для получения сводных данных и статистики
Явно интервьюируемый знал вопросы заранее, хотя и спотыкался об простые вещи
primary key может быть составным, но это плохая практика. Как минимум на движке InnoDB
В итоге взяли бы его и если да, то на какую зп? )
Я бы взял, начали бы со 130к
@@senior_ruslan Мидл 130к.......
@@senior_ruslan это кринж
@@senior_ruslan палата..
слишком мало?@@MAREVICH
Здрайствуйте Сеньор Руслан! у меня вопрос относительно "тяжелого SQL запроса", по вам видно было что вы ожидали ответ "создать промежуточную таблицу с результатми запроса который висит на демонах (CRON) и выполняется каждые x минут", но мне интересно как решить проблему когда SQL запрос от пользователя собирается по сотню фильтрам, ведь в таком случае мы не знаем какой sql запрос повесить на демон, точнее знаем но комбинаций слишком много, как решить проблему в этом случае? Мне решение в принципе приходит на голову но конечно хочется услышать от вас истинное (не велосипедное) решение этой проблемы
Огромное спасибо за интервью и за то что выкладываете это, помогает готовиться к собеседованиям
здравствуйте. похожу задачу мы решали через elasticsearch, есть sphinx еще аналогичное решение.
@@senior_ruslan ну хотелось бы больше информации, ведь вы назвали инструмент а как использовать инструмент в нашем случае не сказали
нужно больше контекста, вероятно надо продуктово это обойти и не дать позволять делать юзерам такие запросы
Ну для начала проверить корректно ли вообще составлен запрос, может его можно выполнить по другому. Потом пройтись EXPLAIN и посмотреть, возможно навесить индексы или изменить их, если не корректны. Далее это что то из денормализованные данные в другой таблице(продумать механизм попадания в другую таблицу), другого типа БД как вам ответил Руслан(продумать тот же вопрос). Есть еще варианты из категории Шардирования, но это сложновато.
@@senior_ruslan Не подходит решение с использованием более быстрых инструментов вроде сфинкса или эластика - в условиях задачи оптимизировать и ускорять уже нечего, нельзя.
Интересное интервью. Но мои коллеги сказали бы что с Middle с натяжечкой
Знания хорошие как по вашему почему он не нашел еще работу. Непонятно совсем
собеседование это отдельный навык, который просто нужно прокачивать, то есть проходить-проходить-проходить. второй момент это психологический, он просто может бояться подавать резюме в разные компании, может где то считает себя недостойным, где то считает, что мало знаний и не пройдет, и в итоге голова и тормозит же нас.
У меня другое мнение сложилось.
Парень толковый, поэтому он на эти все вопросы(которые были рутинные) просто научился отвечать.
Может он 50 собесов уже прошел, да и достаточно подсказок что там могут спросить.
Поэтому ты как студент, готовишься отвечать на вопросы.
Но реального опыта, умения программировать, там, скорее всего, еще очень мало.
ответ про микросервисы просто смех, монолит так же скейлиться в горизонт как и микросервисы и раскатывается на кластере почти так же
Смысл мидла с опытом 1 год спрашивать про паттерны и архитектуру? 😂
Про что бы Вы спрашивали миддла?
Неужели это вопросы для мидла?
Я бы где +- на 100к его взял. Годик бы погонял его по проектам и от этого уже отталкивался о дальнейшей ЗП
Да можно сразу в рабство за 40 тысяч. Зачем 100 платить.