|
Stream API
|
|||
---|---|---|---|
#18+
Так и я говорю что в стримах по дизайну не должно быть исключений. Исключение разрывает конвейер. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Что делать с двузначной датой? Отдать на откуп техническому заданию и разработчику. Можно логгировать. Можно игнорить. Можно считать дефектом данных. Но не прерывать процессинг стрима. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 20:40 |
|
Stream API
|
|||
---|---|---|---|
#18+
mayton Код: java 1. 2. 3. 4. 5. 6. 7.
Согласен. Так и получается, что исключения гасить в самом зародыше. Чтобы наружу ни в потоках, ни в стримах не выползали. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 22:40 |
|
Stream API
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton Код: java 1. 2. 3. 4. 5. 6. 7.
Согласен. Так и получается, что исключения гасить в самом зародыше. Чтобы наружу ни в потоках, ни в стримах не выползали. Да. Большинство языков которые создавались после Java (GoLang) отказались от декларации checked exceptions и вообще постарались не вовлекать программиста в формальный протокол обработки до тех пор пока ОН САМ не решит это сделать явно. Да и вообще. Если есть возможность например парсить дату просто возвращая boolean признак - лучше сделать так. Это будет дешевле с точки зрения накладных расходов на процессинг. Представте что вы парсите CSV-файл из миллиарда строк и в нем в каждой строке идет генерация DateTimeParseException и внутренняя механика каждый раз (!) формирует полный стектрейс (Java объект представляющий стектрейс) независимо от того нужен он нам или нет. По сабжу - не нужен но бох его знает какая механика под капотом уже работает. Софистический пример с парсингом дат - для меня был самый настоящий. И я фиксил перформанс дефект как раз для такого случая когда формат даты был задан неверно но деградация производительности (для JDK 1.6) в то время была так ужасна что выгоднее было сделать строковые проверки и выйти из процедуры раньше чем отработает метод ::parse(). Вобщем Exception - должен быть редким. Исключительным. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 23:25 |
|
Stream API
|
|||
---|---|---|---|
#18+
mayton Вобщем Exception - должен быть редким. Исключительным. mayton Представте что вы парсите CSV-файл из миллиарда строк и в нем в каждой строке идет генерация DateTimeParseException и внутренняя механика каждый раз (!) формирует полный стектрейс (Java объект представляющий стектрейс) независимо от того нужен он нам или нет. Я при исключении выхожу из стека, на самый верх в ГУИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 09:07 |
|
Stream API
|
|||
---|---|---|---|
#18+
Главное чтоб для пользователя это не выглядело как "циклическое" модальное окно. Типа выскакиевает лопух с собщением "Unable to parse date XXXX at position Y", пользователь его внимательно читает. Соглашается. Нажимает ОК. А потом - херак - следующее окно точно такое-же текстом только дата другая. Далее - у пользователя должен быть сердечный приступ... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 13:13 |
|
Stream API
|
|||
---|---|---|---|
#18+
забыл ник На этот раз поддержу Петро, кидать исключения в стриме - противоречит самой концепции стримов. Такое случается когда смузеры начинают осваивать новую технологию не разобравшись для чего она. никто не бросает исключение в стриме List -stream- filtr-findfirst-orElseThrow вот конструкция примерная и все тут ок но мне дали задачу сделать похожую концепцию,но исключение должно выброситься в случае если стрим пустой,Причем сделать это в общей концепции -без ифов и без создания доп.объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 19:32 |
|
Stream API
|
|||
---|---|---|---|
#18+
asv79 никто не бросает исключение в стриме asv79 List -stream- filtr-findfirst-orElseThrow вот конструкция примерная и все тут ок ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 20:16 |
|
Stream API
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79 никто не бросает исключение в стриме asv79 List -stream- filtr-findfirst-orElseThrow вот конструкция примерная и все тут ок аргументы на уровне школьника 3 класса аргументируй ,чем он говно ,очень хочется экспертное мнение услышать) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 00:59 |
|
Stream API
|
|||
---|---|---|---|
#18+
asv79, Аргументы тебе школьник, будут когда юз кейс для вопроса по коду будут. Или научишься Модель представлять для вопросов про архитектуру. А на приеме у врача градусник держать под мышкой. https://www.google.com/search?q=use case это&oq=use case&aqs=chrome.3.69i57j0l3.4238j0j8&client=tablet-android-huawei&sourceid=chrome-mobile&ie=UTF-8 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 07:20 |
|
Stream API
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, ты назвал данный флоу -говном ,при этом ничего не обосновав) Как это не по программистски) но раз тебе нужен юзкейс ,ок это валидатор с сайта прилетает заявка-в джейсоне ,что то валидируется bean validation что то должны проверить мы в данном конкретном случае я должен проверить код страны фактический и регистрации и если код этот не РФ ,то должен кинуть наш кастомный exeption задача не трививиальная- тоесть возьми с джейсона этот лист -пройдись по нему циклом и удали оттуда все что не похоже на код РФ -далее сверь размер-если 2 - то ок,не 2 - кидаем ошибку,которая приатачится к ответу и оператор сможет это увидеть и либо поправить ,либо отказать заемщику-как то так. вот моя задача была стилистически все это сделать в таком флоу как выше-ибо весь валидатор построен в таком плане. без ифов и создания новых обьектов . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 09:22 |
|
Stream API
|
|||
---|---|---|---|
#18+
asv79 ты назвал данный флоу -говном ,при этом ничего не обосновав) Как это не по программистски) asv79 это валидатор ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 10:14 |
|
Stream API
|
|||
---|---|---|---|
#18+
asv79, Ну а фраза "мне нужно райзе" не катит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 10:15 |
|
Stream API
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79 ты назвал данный флоу -говном ,при этом ничего не обосновав) Как это не по программистски) asv79 это валидатор зачем мне давать тебе код,который находится в закрытом контуре) тем более давно уже решили задачку,пока ты щеки тут надувал))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 10:29 |
|
Stream API
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79, 22095724 петро закусывай) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 10:51 |
|
Stream API
|
|||
---|---|---|---|
#18+
Девочки - не ссорьтесь. Вот подумайте лучше можно ли все SQL-опции (агрегирующие GROUP BY и аналитические OVER.. PARTITION BY) заменить на Stream::collect/reduce? Я над этим периодически думаю и вижу что на SQL - красиво а на stream - говнецо выходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 11:01 |
|
Stream API
|
|||
---|---|---|---|
#18+
mayton Девочки - не ссорьтесь. Вот подумайте лучше можно ли все SQL-опции (агрегирующие GROUP BY и аналитические OVER.. PARTITION BY) заменить на Stream::collect/reduce? Я над этим периодически думаю и вижу что на SQL - красиво а на stream - говнецо выходит. вопрос в том что ты хочешь получить в конечном результате если производительность- я думаю сейчас это уже неактуально - все в облаках,мощностей хватает сделать групинг в сервис слое ну и вообще хибер из коробки это умеет -поэтому если ты пользуешь хибер - то такой вопрос не возникнет если ты юзаешь чистый жидибиси ,то наверно логичней этот функционал оставить на стороне базы ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 11:52 |
|
Stream API
|
|||
---|---|---|---|
#18+
asv79 мощностей хватает сделать групинг в сервис слое ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:01 |
|
Stream API
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79, Ну и с точки зрения архитектуры, стрим это постоянно текущая река. Поэтому вопрос твой странный или из категории кунсткамера. Про терминальные операторы не слышал? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:06 |
|
Stream API
|
|||
---|---|---|---|
#18+
SpringMan В операциях по стримам можно сохранить/передать состояние только через общую переменну, reduce или collect. Если надо сделать на стримах, то подходит вроде только collect. Сделать через него можно, но это то еще извращение. По доке все компоненты в стримах должны быть stateless ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:08 |
|
Stream API
|
|||
---|---|---|---|
#18+
забыл ник На этот раз поддержу Петро, кидать исключения в стриме - противоречит самой концепции стримов. Такое случается когда смузеры начинают осваивать новую технологию не разобравшись для чего она. https://dzone.com/articles/exception-handling-in-java-streams ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:15 |
|
Stream API
|
|||
---|---|---|---|
#18+
questioner PetroNotC Sharp asv79, Ну и с точки зрения архитектуры, стрим это постоянно текущая река. Поэтому вопрос твой странный или из категории кунсткамера. Про терминальные операторы не слышал? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:16 |
|
Stream API
|
|||
---|---|---|---|
#18+
asv79 mayton Девочки - не ссорьтесь. Вот подумайте лучше можно ли все SQL-опции (агрегирующие GROUP BY и аналитические OVER.. PARTITION BY) заменить на Stream::collect/reduce? Я над этим периодически думаю и вижу что на SQL - красиво а на stream - говнецо выходит. вопрос в том что ты хочешь получить в конечном результате если производительность- я думаю сейчас это уже неактуально - все в облаках,мощностей хватает сделать групинг в сервис слое ну и вообще хибер из коробки это умеет -поэтому если ты пользуешь хибер - то такой вопрос не возникнет если ты юзаешь чистый жидибиси ,то наверно логичней этот функционал оставить на стороне базы Мой вопрос звучит пока так. Можно ли? А дальше уже пойдем от перформанса. Я как-то написал запрос с оконной функцией от чего у одного йуного джава юниора полезли глаза на лоб. Он не знал что в SQL есть такие возможности вообще. Вот такие вот неграмотные бородачи будут двигать индустрию через 10 лет. Это знаете. Как эпоха средневековья после античности. Вроде время и идет вперед а люди знания теряют. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 12:38 |
|
|
start [/forum/topic.php?fid=59&msg=39935719&tid=2120851]: |
0ms |
get settings: |
15ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
445ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 813ms |
0 / 0 |