powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / кодилити литкод и прочее задачки
25 сообщений из 198, страница 1 из 8
кодилити литкод и прочее задачки
    #40038917
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто интересно у уважаемых мужей спросить. сколько у вас по времени занимает в среднем решение задачки литкода там кодилити и тп. на уровне изи?
спрашивал у разных люди говорят что типа 15 минут норм. ну ок. я прорешал с десяток задач. у меня уровень изи занял от 15ти минут и до трех часов. то есть 15 минут это совсем фигня типа определить полиндром не полиндром.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039709
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че никто не решает?
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039713
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,
На sql это не нужно писать на странном языке
findAllByPollChannelIdAndStatus
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039716
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,
Заболел? Я от тебя 2 года DDL не видел.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039717
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
но увы я вижу что хибер тупо круче
вот после этого - нет смысла продолжать разговор...
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039720
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
andreykaT
че никто не решает?

решаю на степике адаптивный курс JetBrains

так же бывает 1-2 минуты решение,бывает 2-3 дня,но там больше java функциональщина - спасибо ей начал активно reduce юзать на проде- очень смешно бывает ,когда седые сеньеры спрашивают белать что тут вообще происходит)
очень круто помогает заменить sql какашку - вместо шляпо запросов - .стрим и поехали веселиться)

ну да. выборка склом занимает 50 миллисекунд а твоим стримом 50 секунд а так норм да )

лан ясно тут никто задачки не решает.

я просто смотрю это тупорогий новый тренд пошел просить всех листы разворачивать да деревья вертеть в бейсике там джаве или пхп на собесах.

вот и хотел спросить как старые мужи с этим справляются вообще. легко или мозг напрягают.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039722
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Да простит меня бог SQL я вообще считаю что вся сикуэльщина давно должна уйти под капот,достаточно стримов и правильно прописанных отношений
я вот сегодня думал как сделать запрос такого типа и ответа не нашел ,а на стримах просто изи
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 public List<RespondentResponse> response(Long pollId
      , String value) {
    return pollChannelsRepository.findAllByPollIdAndDebugFalseOrderByIdAsc(pollId).stream()
        .map(x -> {
          RespondentResponse resp = new RespondentResponse();
          resp._id(x.getId().toString())
              .createdAt(x.getCreatedAt().getTime())
              .respondents(answerPollsRepository.findAllByPollChannelIdAndStatus(x.getId(), EAnswerPoll.AnswerPollStatus.NOT_STARTED).stream()
                  .map(y ->
                      new RespondentDto<>().email(y.getParameters().get("mail"))
                          .value(y.getParameters().get(value))
                  ).collect(Collectors.toList()));
          return resp;

        })
        .collect(Collectors.toList());
  }


что тут происходит- мы берем из базы запись часть полей мапим на дто,далее в репе по id этой записи находим другие записи и мапим их в список других дто

вот скажите как такое же можно на изи сделать в SQL?ну никак же


Запрос к БД в цикле (внутри map).
Про проблему N + 1 вы не слышали?)
Серьезно?)
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039724
borkes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zzz79,

Ох уж эти любители orm-ов. Вы это под нагрузкой бы по бэнчмарчили, любой орм фреймворк это доп абстракции, память..

А ваш код абсолютно нечитабелен=неподдерживаем.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039728
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch
пропущено...


Запрос к БД в цикле (внутри map).
Про проблему N + 1 вы не слышали?)
Серьезно?)

в чем проблема запроса к бд в цикле?я вам привел функциональный код- сможете такое повторить запросом давайте я не против- DDL дам

При чем тут "повторить запросом". Это легко можно сделать 2 запросами -
1) pollChannelsRepository.findAllByPollIdAndDebugFalseOrderByIdAsc(pollId);
2) answerPollsRepository.findAllByPollChannelIdInAndStatus(List of IDS, EAnswerPoll.AnswerPollStatus.NOT_STARTED)
Правда могу навскидку ошибаться в паттерне имен методов в spring.

А у вас в коде делается N запросов в "цикле" (при вызове map на каждый элемент).
Это называется "проблема N + 1".
Основная *опа в вашем коде - скорее всего он выстрелит на проде, где pollChannelsRepository.findAllByPollIdAndDebugFalseOrderByIdAsc вернет не 1-10 записей, а условные 100.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039729
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

уверен в этом?)это вроде не параелленый стрим то- откужа ты там 50 сек то насчитал
я те скажу чтобы ты не мучался - запрос с джоинами == этому коду +- какие то копейки на достоточно большой выборке

но 50 сек ты конечно угорел))


50 секунд в вашем коде - это реальность)
Как только findAllByPollIdAndDebugFalseOrderByIdAsc вернет условную 1000 элементов вы это и получите
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039733
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreykaT

лан ясно тут никто задачки не решает.

я просто смотрю это тупорогий новый тренд пошел просить всех листы разворачивать да деревья вертеть в бейсике там джаве или пхп на собесах.
вот и хотел спросить как старые мужи с этим справляются вообще. легко или мозг напрягают.

ИМХО практичнее просто просмотреть всего Кормена, и если алгоритм видишь впервые, то реализовать его. В книге хоть есть системность, и на собеса вряд ли сложнее понадобится. Если все эти алгоритмы сможешь написать, то вряд ли возникнут проблемы с leetcode-ом
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039753
borkes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zzz79,

Сразу видно, сынок, ты хайлоад не нюхал ;)
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039756
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch
пропущено...


50 секунд в вашем коде - это реальность)
Как только findAllByPollIdAndDebugFalseOrderByIdAsc вернет условную 1000 элементов вы это и получите

господи какая чушь)очнитесь дядя)


Милый джун (мидлом и не пахнет), замеряй пожалуйста время одного вызова findAllByPollChannelIdAndStatus, а потом пойми, что вызываешь ты его в цикле и эти 10-20 ms банально умножаются на количество записей, которые findAllByPollIdAndDebugFalseOrderByIdAsc возвращает)

Zzz79какая то безсоновательная ересь,изучайте хибер
И что же конкретно я должен в нем изучить, что меня переубедит?)
Каким магическим образом hibernate найдет записи без обращения в бд?)
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039767
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
P.S. хочу заметить, что я не выступаю против hibernate, и код, приведённый вами, является плохим совершенно не из-за применения ORM.
Даже если вдруг вы перепишете обращения к бд на pure Jdbc - лучше он не станет.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039775
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
andreykaT

лан ясно тут никто задачки не решает.

я просто смотрю это тупорогий новый тренд пошел просить всех листы разворачивать да деревья вертеть в бейсике там джаве или пхп на собесах.
вот и хотел спросить как старые мужи с этим справляются вообще. легко или мозг напрягают.

ИМХО практичнее просто просмотреть всего Кормена, и если алгоритм видишь впервые, то реализовать его. В книге хоть есть системность, и на собеса вряд ли сложнее понадобится. Если все эти алгоритмы сможешь написать, то вряд ли возникнут проблемы с leetcode-ом

ну я так понял на всё натаскиваешься и го. прорешал с пару десятков задачек. типа поверни строку посчитай матчи, разверни линкед лист, сложи два связных листа с сортировкой и т.п.
но потом пошли задачи с верчением матриц и поиском кратчайшего пути. ну мне кажется и это можно делать и сделать. но это как то совсем сильно и мозги напрягает и попахивает бесполезностью. ты вертишь матрицы узорами и листы разворачиваешь а на работе тебя просят разворачивать не лист а кубер с докером. ну епта. это какой то новый тренд в программинге. беспощадный и бесполезный.
раньше просили шарики с люками считать потом тз монструозные типа нпиши онлайн казино теперь вот это вот.

а по факту добро пожаловать в мир перетаскивания джейсонов из угла в угол.
тьфу.

и главное я беру очередную задачу и уже мозги остановиться не могут пока не решат. как наркота. бесполезная причем. потому что мои мозги в их временные рамки не укладываются и задрачивая их на эти задачи по факту профессионально ты так же никак не растёшь.

какой то бесполезный навык который помогает ровно нигде.

ну умеет вон ззх листы крутить а толку - сортирует миллион записей в стриме.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039778
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch
пропущено...


Запрос к БД в цикле (внутри map).
Про проблему N + 1 вы не слышали?)
Серьезно?)

в чем проблема запроса к бд в цикле?я вам привел функциональный код- сможете такое повторить запросом давайте я не против- DDL дам

я не знаю что ты вкладываешь в функциональный. колбасный это точно это да. в твоем коде ты в цикле лезешь в базу делая по 1 запросу. это не уверен что н+1, н+1 - это побочка хибера когда люди не совсем понимают как им пользоваться. а ты этот н+1 сам себе рисуешь прям кодом ))

тебе в идеале надо делать один запрос с джойном (это то что под капотом хибера), чтоб тебе одним запросом прилетели все данные которые маппер потом на пожо и нанесет.

твой код конечно же работает. он просто бесполезно много запросов генерит в бд. если твоя нагрузка тебе позволяет - то забей.
когда перестанет позволять - просто бд перенесешь на более быстрые диски и проц )))
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039780
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borkes
Zzz79,

Ох уж эти любители orm-ов. Вы это под нагрузкой бы по бэнчмарчили, любой орм фреймворк это доп абстракции, память..

А ваш код абсолютно нечитабелен=неподдерживаем.

да норм код и код. вот жпа критерии - вот там да там начинается трэш и угар. но если постоянно с ними работаешь то тоже становится похер.
с другой стороны там даже не хибер а спринговая оболочка с идиотскими методнеймингами типа public Entity findAllByUidWhereNameEqualOrPhoneGreaterThanOrEqualAndDateBeforeAndAddressNotLikeOrderById(param,param,param,param,param,param) - вот это ублюдство не имеет отношения к хиберу

а да, ты еще слик не видел. это к теме ублюдочных ормов и недоормов.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039789
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
andreykaT
че никто не решает?

решаю на степике адаптивный курс JetBrains

так же бывает 1-2 минуты решение,бывает 2-3 дня,но там больше java функциональщина - спасибо ей начал активно reduce юзать на проде- очень смешно бывает ,когда седые сеньеры спрашивают белать что тут вообще происходит)
очень круто помогает заменить sql какашку - вместо шляпо запросов - .стрим и поехали веселиться)

Не спеши. Синьор может спросить тебя про ... монады.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039790
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
PetroNotC Sharp
Zzz79,
На sql это не нужно писать на странном языке
findAllByPollChannelIdAndStatus

дядь это будущее для тебя,которое давно наступило

пс.и да я прохожу сцка платные курсы psql за свой счет и мне тоже хочется везде вкинуть native query ,но увы я вижу что хибер тупо круче ,а чего не хватает - можно функциональщиной добить

Ну эт замечательно. Когда по работе возникнет задача - заюзать оконные или аналитические функции
или группировки по cube - сможешь красиво решить задачу. Не вынимая сигареты изо рта...
Может дадут погоны сеньора-помидора.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039792
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОдин из папских посланцев прибыл в город Флоренцию к художнику Джотто ди Бондоне, пообщался с ним и попросил несколько рисунков для демонстрации мастерства. Джотто улыбнулся, взял лист бумаги, макнул кисть в красную краску и одним движением нарисовал абсолютно правильный идеально ровный круг.

- Вот рисунок, отвезите это Его Святейшеству – сказал художник...

Придворного посланника круг не впечатлил. Более того, он решил, что над ним издеваются и насмехаются.

Ему хотелось получить нормальный, классический рисунок, желательно на библейскую тему. Поэтому он стал спорить и требовать что-нибудь посолиднее, чем простой ровный круг. И тогда Джотто сказал:

- Этого достаточно. Пошлите его с остальными рисунками, и вы увидите, заметят ли его. Если Папа разбирается в живописи, то он поймёт.

Папа Римский всё понял. И пригласил Джотто участвовать в украшении собора Святого Петра. После чего художник стал знаменит, богат и получил множество заказов на фрески и мозаики в других храмах Италии.

Умение решать задачи с литкода это сродни круга Джотто ди Бондоне
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039845
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Zzz79
но увы я вижу что хибер тупо круче
вот после этого - нет смысла продолжать разговор...


"Они сошлись. Волна и камень" -

зззз79 - хибер круто
вадя за сердце хватается как увидит new ArrayList<>().
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039853
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch


Милый джун (мидлом и не пахнет), замеряй пожалуйста время одного вызова findAllByPollChannelIdAndStatus, а потом пойми, что вызываешь ты его в цикле и эти 10-20 ms банально умножаются на количество записей, которые findAllByPollIdAndDebugFalseOrderByIdAsc возвращает)

пропущено...

И что же конкретно я должен в нем изучить, что меня переубедит?)
Каким магическим образом hibernate найдет записи без обращения в бд?)

милый стажер( джуном тут и не пахнет),а вы не подумали что делая выборку из базы целиком ваши коллекции могут оказаться а пару десятков млн элементов ,давай замерим что будет быстрей ковырять такую коллекцию целиком или же сделать выборку циклом

а изучить ты должен что такое вот такое findAllByPollChannelIdAndStatus(Long id,Pageble page)
думаю тебе станет понятно что к чему ,но это не точно)


Zzz79,
Zzz791) давай замерим что будет быстрей ковырять такую коллекцию целиком или же сделать выборку циклом
С превеликим удовольствием) Давай backup базы и код репозиториев/сущностей.
Хотя о чем я, ты же сольешься, даже DDL Петро прислать не можешь


Zzz79findAllByPollChannelIdAndStatus(Long id,Pageble page) - только у тебя в вызове второй параметр явно не pageable

P.S. По коду похоже, что ищешь пользователей, которые не участвовали в опросе.
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039857
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пролистал общение в топике, напомнило -
YouTube Video
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039859
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Lelouch



пропущено...
- только у тебя в вызове второй параметр явно не pageable

P.S. По коду похоже, что ищешь пользователей, которые не участвовали в опросе.

а кто сказал,что я его туда не дабавлю? конечно никто не будет выгружать все и целиком- там по 2-3 млн записей в среднем

вот я сделал как ты предлагал,выбрать все сразу и потом произвести фильтрацию и маппинг и если в моем случае мы в базу ходим- то тут сношаем коллекцию с парой млн элементов - и просто нет времени сейчас проверять что быстрей - но вангую что в бд сходить циклом будет точно не медленней,а может и быстрей

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
 public List<RespondentResponse> responseList(Long pollId, String value) {
    var pollChannelList = pollChannelsRepository.findAllByPollIdAndDebugFalseOrderByIdAsc(pollId);
    var answerPollList = answerPollsRepository.findAllByPollChannelIdInaAndStatus(pollChannelList.stream()
        .map(EPollChannel::getId)
        .collect(Collectors.toList()), EAnswerPoll.AnswerPollStatus.NOT_STARTED);
    return pollChannelList.stream()
        .map(x -> {
          RespondentResponse resp = new RespondentResponse();
          resp._id(x.getId().toString())
              .createdAt(x.getCreatedAt().getTime())
              .respondents(answerPollList.stream()
                  .filter(y -> x.getId().equals(y.getPollChannelId()))
                  .map(y ->
                      new RespondentDto<>().email(y.getParameters().get("mail"))
                          .value(y.getParameters().get(value)))
                  .collect(Collectors.toList()))
          ;
          return resp;

        })
        .collect(Collectors.toList());

  }



1) Ты не вангуй, а замеры покажи
2) Ищи не в answerPollList а в
Код: java
1.
2.
3.
var pollChannedlIdToAnswerMap = answerPollList.stream().collect(Collectors.groupingBy(y -> y.getPollChannelId());
....
   . respondents(pollChannedlIdToAnswerMap.getOrDefault(x.getId(), List.of()).stream().map(...).collect(..))



Это даст поиск за O(1) в лучшем случае
...
Рейтинг: 0 / 0
кодилити литкод и прочее задачки
    #40039860
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch

2) Ищи не в answerPollList а в
Код: java
1.
2.
3.
var pollChannedlIdToAnswerMap = answerPollList.stream().collect(Collectors.groupingBy(y -> y.getPollChannelId());
....
   . respondents(pollChannedlIdToAnswerMap.getOrDefault(x.getId(), List.of()).stream().map(...).collect(..))



Это даст поиск за O(1) в лучшем случае


ну ты что такое советуешь, это не позволит показать что поход в БД выполняется быстрее
...
Рейтинг: 0 / 0
25 сообщений из 198, страница 1 из 8
Форумы / Java [игнор отключен] [закрыт для гостей] / кодилити литкод и прочее задачки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]