Парсер логов (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<
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (90)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Flexo Bending Unit #3370318
вчера, 15:35
Вторая задача из парсера, пройденная с первой попытки. В принципе, несложно, нужно просто чуть глубже поковырять регулярки
Анатолий
39 уровень
21 апреля, 15:25
Как говорил Сергей от 25 января: Читаем внимательно - "в период между датами [after] и [before]". Границы дат не включаются. Я читал не внимательно. Спасибо комментариям. Из-за этого не проходят 3 теста и можно убить много время на поиски. Но вся предыдущая логика была за включение граничных дат. Вопрос решается добавлением 2 проверок и 2 действий по результатам этих проверок в метод execute():
if (after != null) after = new Date(after.getTime() + 1L);
if (before != null) before = new Date(before.getTime() - 1L);
tbcarus
41 уровень, Москва
18 апреля, 13:15
Благодаря комментариям все решилось с первого раза. Интересна логика, почему сначала диапазон дат был [ ], а тут ( )/ Просто добавил проверку дополнительного условия в промежуточную выборку. Жаль, стримы почти не освоил в этой задаче, применял лишь изредка.
Артём
35 уровень, Гродно
27 марта, 11:49
Оригинальное решение 700 строк, мое решение 500. Приятно:) P.S в период между датами [after] и [before] т.е. дату не включаем!
Flexo Bending Unit #3370318
вчера, 15:36
>Оригинальное решение 700 строк, мое решение 500 Коллега)
Aleksandr
41 уровень
22 марта, 06:24
Если бы не зашел в комментарии, так бы и тр...лся с валидатором , притом из за не включения дат в границы ошибки валятся на трёх тестах.
Сергей
38 уровень
25 января, 16:02
Читаем внимательно - "в период между датами [after] и [before]". Границы дат не включаются. Я читал не внимательно. Спасибо комментариям.
Артём
35 уровень, Гродно
27 марта, 11:41
Спасибо вы мой спаситель. Плохо что концепция меняется, сначала требовали что бы входила дата теперь нет. Как же единообразие? Пришлось рефакторить метод который разбросан в коде повсюду.
Сергей Тугаенко
41 уровень, Киев
1 декабря 2020, 07:37
Отличная задача. Учит рефакторить, использовать stream API, использовать паттерны проектирования. Очень понравилась.
Artem K.
30 уровень, Москва
29 ноября 2020, 19:49
После решенной 6-й эта решается добавлением 3 строчек кода... Многие жалуются на даты, но я со второй задачи в датах ничего не менял и везде все проходило. Цикл задач очень интересный получился: рефакторинг начальной лапши, Stream'ы и продумывание архитектуры (ну если в этих масштабах можно так говорить)
Сабир Java Developer
7 октября 2020, 08:47
Вот это реальная жиза! Сначала надо создавать тупые не гибкие методы, а потом когда их становиться слишком много начинается процесс рефакторинга! И этот процесс преследует тебя почти до конца всех этих задач. В конце уже какие-то неожиданные конструкции появляются, какие-то предикаты, объединения предикатов, куча преобразований, куча стримов, которая потом вообще становиться стандартным решением всех(!) методов! И собственно до самого конца рефакторинг не останавливается. Прям как в старой цитате: "Разработка ПО это непрерывный процесс рефакторинга" не помню от куда это 😅
MezoneOrange
37 уровень, Екатеринбург
1 октября 2020, 14:00
Вот было бы здорово если бы авторы выкладывали список тест кейсов, по которым проверяет валидатор, чтобы не гадать на кофейной гуще. 🙄 Всю прелесть задачи и всё настроение портит сидеть 2 часа и гадать в чём ошибка, когда все условия задачи выполнены, а проходит только 2 последних теста. А потом оказывается, что даты в не включительно, дата может быть написана как угодно. Месяцы, дни и т.д как с предшествующим нулем, так и без. Написаные условия выполнить не сложно, а вот угадать что подразумевается или подтекстом (ну типа это и так понятно. НЕТ)... Спасибо всем комментариям, как некоторые находят эти ненаписанные "очевидные" дополнительные условия я не знаю. Поклон и звала вам. З.Ы. просто хотелось высказаться после 3 часов войны с валидатором. Пойду отдохну. Всем добра.