1 Car1 100.1 1
2 Car2 200.2 2
3 Car3 300.3 3
4 Car4 400.4 4
5 Car5 500.5 5
6 Car6 600.6 6
7 Car7 700.7 7
8 Car8 800.8 8
9 Car9 900.9 9
dionisis2010
1 уровень
что я упускаю?
Решен
Комментарии (27)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
JustinianJudge в Mega City OneMaster
5 августа 2019, 19:06
необходимый минимум комментариев для кода должен быть равен 0.
По коду итак видно что метод readFile читает файл, а base.putElement(new Element(s)); добавляет как новый элемент, вольнохудожественное пересказывание содержимого кода значительно ухудшает восприятие последнего.
Когда я разбираю чей-то код, первое что я делаю, удаляю все комментарии.
Кто целевая аудитория комментария? Кому может быть непонятно что происходит в этой строке?
кому-то в голову придет, что этот код может отправлять письмо? Или печатать парные числа?
Суть написания кода в джава что он читается как книга. Отдельный вопрос документирование и джава доки.
У тебя хорошие имена файлов, хорошая структура, код говорит сам за себя, не нужно портить его такими вещами. Комментарии в джава коде не приняты.
Если код нуждается в комментариях - значит он написан плохо и его нужно переписать. Твой код в них не нуждается, аж обидно за код, первый раз в Вопросах человеческий дизайн под эту задачу, ну прям придраться не к чему. Почти :) Все классно, но комментарии...брр, как будто Мерседес тюнинговали за 30 рублей с базара. Бросай эту вредную привычку.
А по самой задаче,
Из того что я вижу- два момента, первый, твой код не имеет защиты от перелимита форматирования, например для валидного айдишника
-u 19847 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 123456.789 1234567
Второй момент - если апдейтится последняя строка, твой код добавляет пустую строку.
Влияет это на валидацию или нет - я без понятия.
Где-то что-то есть, прошерсти секцию Обсуждение и Вопросы по этой задачи в поисках кейсов для тестов. Я не вижу проблемы и в таком гармоничном коде даже искать не хочется ) Молодец.
0
dionisis2010 Backend Developer
5 августа 2019, 23:54
добавил я защиту от преполнения в main (обрезает параметры до допустимой длины), а так же добавил проверку на наличие введенного id в базе, (если такого нет, то ничего не делать)
так же пробовал поверять id "обрезая его с другой стороны", или ничего не делать если он длиннее 8 символов
убрал пустую строку в конце файла, а именно убрал перенос строки из toString класса Element и модифицировал метод writeToFile у класса Base таким образом
но валидатор не изменил своего мнения
0
dionisis2010 Backend Developer
6 августа 2019, 00:24
Хотел отредактировать коммент, но "промахнулся" и жмакнул "пометить как решений", теперь хз как изменить статус вопроса (если это вообще возможно)
0
JustinianJudge в Mega City OneMaster
6 августа 2019, 00:47
думаю лучше перезалить вопрос, статус Решенный мало кто будет смотреть.
Остается только листать Обсуждение и секцию Вопросы по задаче, ищи что может поломать твой код
0
kto_toExpert
6 августа 2019, 00:50
У вас в конце строки, после последней цифры есть пробелы
1 Car1 100.1 1
В примере их нету
+1
JustinianJudge в Mega City OneMaster
6 августа 2019, 00:54
да кстати, вот такое валидатору точно не должно нравится, пробелов быть не должно в конце строки
0
dionisis2010 Backend Developer
6 августа 2019, 01:05
уже тестил такой вариант, не помогло
у меня пригорело немного и я решил сделать все просто чтобы валидатор схавал без всяких понтов типа извлечения базы
0
kto_toExpert
6 августа 2019, 01:11
между делом
Можно было
0
kto_toExpert
6 августа 2019, 01:17
Когда тестируете так как выше:
Всё ок. Но. Аргументы же не так принимаются. Разделитель аргументов это пробел. По этому если ввести как в примере "-u 19847 Шорты пляжные синие ..." то тут:
args[0] - -u
args[1] - 19847
args[2] - Шорты
args[3] - пляжные
args[4] - синие
args[5...] - ...
0
kto_toExpert
6 августа 2019, 01:17
Стоило ввести в аргументы "-u 5 Dog and Cat 1000 5"
И вот какая строка попала в базу:
5 Dog and Cat
0
kto_toExpert
6 августа 2019, 01:19
Если что, в IDEA сверху справа название класса с методом main, нажимаете туда, там будет Edit Configurations, потом слева выбираете какой класс настраивать, если классов с main несколько и там справа будет графа Program arguments
0
dionisis2010 Backend Developer
6 августа 2019, 01:20
Спасибо, сейчас попробую
0
kto_toExpert
6 августа 2019, 01:26
Если что оно быстро лечится если перед самым первым if'ом в main вставить этот код:
0
kto_toExpert
6 августа 2019, 01:27
но это не точно
0
kto_toExpert
6 августа 2019, 01:28
нет, это не работает
0
kto_toExpert
6 августа 2019, 01:31
А это работает
0
dionisis2010 Backend Developer
6 августа 2019, 01:34
сделал так
это было важное замечание
но ведь это актуально только для параметра -u
валидатор же ругается и на параметр -d
0
kto_toExpert
6 августа 2019, 01:40
Настройте аргументы через идею, потестите. Всё нормально работает?
0
kto_toExpert
6 августа 2019, 01:42
И сейчас тоже не проходит? А пробелы в конце убрали? Валидатор это загадка природы и он часто не поддаётся логике
0
dionisis2010 Backend Developer
6 августа 2019, 01:44
пробелы убрал
я не совсем понял где параметры запуска настраивать
0
kto_toExpert
6 августа 2019, 01:47
Я не могу сделать скрин и показать, т.к. я с телефона сижу. Сделайте вы, я скажу куда нажимать. Там возле кнопки выполнить код, зелёный треугольник, есть выподающее меню , с названием класса в котором метод main, а дальше по инструкции что выше писал
0
kto_toExpert
6 августа 2019, 01:49
Ну или просто загуглите))
0
dionisis2010 Backend Developer
6 августа 2019, 01:55
уже в глазах рябит от этого, что про гугл забыл))
выглядит работоспособно, но валидатор все так же не принимает
0
dionisis2010 Backend Developer
6 августа 2019, 03:58
если вдруг вам интересно, то реализовал так
0
dionisis2010 Backend Developer
6 августа 2019, 03:59
0
dionisis2010 Backend Developer
6 августа 2019, 04:11
что я выяснил по поводу валидации
1. дописывать пробелы в конце строки нужно
2. если нет совпадающего id не нужно добавлять новую строку
0
JustinianJudge в Mega City OneMaster
6 августа 2019, 08:10
Дописывать пробелы в конце строки не нужно, разве что не поменяли тесты, но насколько знаю - не меняли, у меня и у большинства других по этой задаче - без пробелов. Не специально, просто так получилось.
А вот если нет совпадающего айди то конечно же добавлять не нужно если речь о методе апдейт.
В любом случае, я бы оставил два вариант, прямо в пакете с задачей оставил бы Солюшн который прошел валидацию, а также в том пакете в других классах - первоначальный вариант.
0