Парсер логов (7)

  • 36
  • Недоступна
Теперь добавим поддержку дополнительного параметра запроса в наш QL. Дополнительный параметр будет отвечать за диапазон дат, которые нас интересуют. Пример запроса: get ip for user = "Eduard Petrovich Morozko" and date between "11.12.2013 0:00:00" and "03.01.2014 23:59:59". Ожидаемый результат: Set<
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (83)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Сергей 38 уровень
вчера, 16:02
Читаем внимательно - "в период между датами [after] и [before]". Границы дат не включаются. Я читал не внимательно. Спасибо комментариям.
Сергей Тугаенко 41 уровень, Киев
1 декабря 2020, 07:37
Отличная задача. Учит рефакторить, использовать stream API, использовать паттерны проектирования. Очень понравилась.
Artem K. 30 уровень, Москва
29 ноября 2020, 19:49
После решенной 6-й эта решается добавлением 3 строчек кода... Многие жалуются на даты, но я со второй задачи в датах ничего не менял и везде все проходило. Цикл задач очень интересный получился: рефакторинг начальной лапши, Stream'ы и продумывание архитектуры (ну если в этих масштабах можно так говорить)
Сабир 41 уровень
7 октября 2020, 08:47
Вот это реальная жиза! Сначала надо создавать тупые не гибкие методы, а потом когда их становиться слишком много начинается процесс рефакторинга! И этот процесс преследует тебя почти до конца всех этих задач. В конце уже какие-то неожиданные конструкции появляются, какие-то предикаты, объединения предикатов, куча преобразований, куча стримов, которая потом вообще становиться стандартным решением всех(!) методов! И собственно до самого конца рефакторинг не останавливается. Прям как в старой цитате: "Разработка ПО это непрерывный процесс рефакторинга" не помню от куда это 😅
MezoneOrange 37 уровень, Екатеринбург
1 октября 2020, 14:00
Вот было бы здорово если бы авторы выкладывали список тест кейсов, по которым проверяет валидатор, чтобы не гадать на кофейной гуще. 🙄 Всю прелесть задачи и всё настроение портит сидеть 2 часа и гадать в чём ошибка, когда все условия задачи выполнены, а проходит только 2 последних теста. А потом оказывается, что даты в не включительно, дата может быть написана как угодно. Месяцы, дни и т.д как с предшествующим нулем, так и без. Написаные условия выполнить не сложно, а вот угадать что подразумевается или подтекстом (ну типа это и так понятно. НЕТ)... Спасибо всем комментариям, как некоторые находят эти ненаписанные "очевидные" дополнительные условия я не знаю. Поклон и звала вам. З.Ы. просто хотелось высказаться после 3 часов войны с валидатором. Пойду отдохну. Всем добра.
Leftover 39 уровень, Москва
25 сентября 2020, 11:27
*#$, границы дат должны быть исключены! :) В предыдущих этапах было явно указано, что границы включены, На этом же этапе нет никаких указаний, что это условие изменилось. Любопытно, это сделано злонамеренно или же просто небрежность в составлении задания? )
Айдар 35 уровень, Казань
27 сентября 2020, 19:32
Огромное спасибо.
Artem K. 30 уровень, Москва
29 ноября 2020, 19:50
Не пойму, ничего в датах не менял со второй задачи, все проходило везде и на этой задаче тоже.
Leftover 39 уровень, Москва
30 ноября 2020, 11:34
Может исправили тесты )
Андрей Шевченко 29 уровень, Москва
16 января, 21:34
Спасибо мил человек, у меня из-за старого метода, фильтрующего даты 2 рандомных теста валидатора не проходилось
Ihor 41 уровень, Киев
25 сентября 2020, 10:07
885, спасибо задаче, что немного лямбды и стримы начал юзать, последние 2 задачи решал через свичи в свичах, код конечно получился дебильноватый, ну а последнее что реально вызвало нервный смех это то что даты не включая!!!! были ошибки по трем пунктам(((
Евгений 41 уровень, Санкт-Петербург
29 августа 2020, 14:47
Минус одна попытка на том, что даты подразумеваются не включительно и час времени медитировал над кодом в поисках ошибки до захода в комменты, так как не было ни одной идеи, почему ломаются только 3 пункта.
Александр Backend Developer
12 августа 2020, 22:36
Все шаги с языком запросов решал с первой попытки. Через регулярки с группами решается достаточно просто. Ну и Stream API рулит.
Евгений 41 уровень, Нижний Новгород Expert
17 июля 2020, 18:02
Ну да, 3,4,11, как и у всех :) Просто скопировал свой старый метод, который парсил строки, исправил в этом методе >= и <= на > и < соответственно, исправил после этого одну строку кода.
Виктор 41 уровень, Москва
9 сентября 2020, 13:46
спасибо! никогда бы не догадался
Александр один Эс 38 уровень, Минск
20 января, 22:21
Лучше вариант заранее подготовить даты. К дате after добавить секунду, а с даты before вычесть секунду, а потом значения after и before использовать в "старом" методе. Так не придется копипастить и иметь 2 одинаковых кода.