tgoop.com/ebanoePHP/839
Last Update:
Продолжаю рассказывать про не самые удачные собесы
На днях был самый печальный собес за последние годы. Пришлось программировать прикладную задачу, а не решать херню с литкода. Последний раз я так позорился году в 2017 наверно, когда искал свою первую работу в Москве. Выходил в 7 утра, садился в метро на станции Бульвар Рокосовского и ебашил на 4 собеса в день, в разных концах города. Хорошие были деньки!
Задача была такая - дан огромный json c хреновой структурой, который надо скачать по урлу. Три массива следующих объектов с кучей свойств - Чемпионат, Матч, Игрок(которое на самом деле не игрок, а связка Игрок+Матч). Почему-то именно каждый игрок содержит поле События - в котором в формате G23, R55 - содержится массив событий связанных с этим игроком, где буква это код события(красная карточка, гол и т.д) а цифра минута когда это произошло. Если вам кажется, что вы что-то не так поняли, то скорей всего вы поняли все верно и структура объектов именно такая.
В итоге нужно было сделать код, который бы из этого json вытаскивал инфу на разные OLAP запросы. По типу:
⁃ Кто из игроков забивал больше всего голов во втором тайме в сумме чемпионатов 2018 и 2014 года?
⁃ Сколько голов было забито в матчах, где больше 3 игроков гостевой команды получили красную карточку?
И т.д
Я начал описывать интерфейсы и прочую хуйню, репозитории, сторадаж, создал объект фильтра и т.д потратил минут 10. Короче начал думать сверху вниз от того, как мы будем формировать запрос на получение данных А потом начал писать код методов извлечения данных из JSON и до меня дошло что с такой ебучей стурктурой ничего не вытащить нормально без какой-то квадратично-кубической сложности и нужно было просто на стадии загрузки файла, как-то иначе организовать хранение данных по разным структурам, вероятно потребовалось бы дублирование и некоторый аналог индексирования. К сожалению было уже поздно и я нихуя не успел, на задачу отводилось всего 30 минут. На мой взгляд это перебор, конечно, я даже сейчас, зная что и как делать, не справился бы за 30 минут. Но может полного решения и не ждали, нужно было просто продвинуться чуть дальше чем я.
Ещё кринж в том, что собес на видео записывали(но обещали удалить через месяц, надеюсь не обманут)
Что думаете, на счет задачи? Реально ли за полчаса это сделать с нуля? Или на самом деле всё изи и просто я туговат?
BY ebanoePHP
Share with your friend now:
tgoop.com/ebanoePHP/839