Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
 Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Ребят нужна ваща помощь.
как мне кинуть исключение ,если в stream 1 элемент ,при этом я не могу использовать ни коллекцию ни if
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
может можно и как то по другому
у меня там вообще стояло так - filtr-findfirst()-orElseThrow но при таком раскладе кидает исключение если не найдет ни 1 элемента


list.stream
.filter()

????
()->throw new Exeption
5 мар 20, 14:06    [22093481]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
Опять теория?
Фильтруем в пустоту?
Обычно фильтруют в конечную переменную.
Потом ее и проверяй.
То есть добавь сюда код БЛ, а не пример из книги или снов.
5 мар 20, 14:59    [22093538]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
andreykaT
Member

Откуда:
Сообщений: 2720
можно иф добавить внутрь фильтра ))) и кинуть там эксепшн. правда вроде в жаве были какие то особенности на эту тему.

в скале я б сделал матч кейс. что впрочем, та же хрень.
5 мар 20, 15:00    [22093542]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5183
asv79
Ребят нужна ваща помощь.
как мне кинуть исключение ,если в stream 1 элемент ,при этом я не могу использовать ни коллекцию ни if
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
может можно и как то по другому
у меня там вообще стояло так - filtr-findfirst()-orElseThrow но при таком раскладе кидает исключение если не найдет ни 1 элемента


list.stream
.filter()

????
()->throw new Exeption


Например так <:o)

public class StreamApiException {
    private List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5);

    public void test() {
        assert(list.stream().filter(i -> i == 1).count() != 1L);
    }
}
5 мар 20, 15:10    [22093557]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mad_nazgul,
+1
В чем проблема у ТС я не увидел.
5 мар 20, 16:43    [22093688]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mad_nazgul
count() != 1L)
щаз скажет что буква L лишняя.
5 мар 20, 16:44    [22093691]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mad_nazgul
asv79
Ребят нужна ваща помощь.
как мне кинуть исключение ,если в stream 1 элемент ,при этом я не могу использовать ни коллекцию ни if
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
может можно и как то по другому
у меня там вообще стояло так - filtr-findfirst()-orElseThrow но при таком раскладе кидает исключение если не найдет ни 1 элемента


list.stream
.filter()

????
()->throw new Exeption


Например так <:o)

public class StreamApiException {
    private List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5);

    public void test() {
        assert(list.stream().filter(i -> i == 1).count() != 1L);
    }
}

и где тут экспешн кидается если стрим больше 1?
и условие читай - лист всего 1 ,второй раз из стрима в лист нельзя и ифы нелья
так то я бы сделал filtr-collect(Collections.Singltone).orElstThrow(()->retrun Exeption)
5 мар 20, 16:47    [22093695]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
andreykaT
можно иф добавить внутрь фильтра ))) и кинуть там эксепшн. правда вроде в жаве были какие то особенности на эту тему.

в скале я б сделал матч кейс. что впрочем, та же хрень.

иф нельзя я же написал,как будто я сам не знаю что ифом проверить и все кек)
но вот нельзя
5 мар 20, 16:48    [22093697]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
второй раз из стрима в лист нельзя
он замерил Результат стрима.
Такого условия не было.
5 мар 20, 16:58    [22093714]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
Ну и с точки зрения архитектуры, стрим это постоянно текущая река.
Поэтому вопрос твой странный или из категории кунсткамера.
5 мар 20, 17:06    [22093728]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79,
Ну и с точки зрения архитектуры, стрим это постоянно текущая река.
Поэтому вопрос твой странный или из категории кунсткамера.

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

лист-stream-filtr-findFirst-orElseThrow

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

в кейсе это идет проверка кода страны двух адресов заемщика - фактического и регистрации
тоесть если какой то из этих кодов не 643 я должен записать в лог ошибку и кинуть эксепшн
5 мар 20, 17:16    [22093746]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
там все просто нас заставляют придерживаться общей стилистики кода
это хорошо
asv79
например если в валидаторе нет ифов ,а все обренутов в опшиналы,значит надо делать так же
этот пример какое отношение к стримам?
Напиши - "перед едой мыть руки".

asv79
фильтруем лист по какому то условию и бац - два элемента у одного проходит условие у другого нет
пример где? Реальный?
Ты выше сказал нечто странное.
Пример mad_nazgul видем?
Сделай такой же!
5 мар 20, 17:27    [22093757]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
Зы.
Я твой лично код давно не видел. В основном разговоры про чужой код.
Ждем.
5 мар 20, 17:28    [22093760]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3531
asv79

там все просто нас заставляют придерживаться общей стилистики кода
Это в банках TOP-1 заставляют ребусы писать?

List<String> l = Arrays.asList("1");
Object anchor = new Object();
Stream.concat(
        l.stream(),
        Stream.of(anchor, new Object())
).skip(1).limit(1).findFirst().filter(e -> e != anchor)
        .orElseThrow(RuntimeException::new);


Сообщение было отредактировано: 5 мар 20, 17:35
5 мар 20, 17:33    [22093767]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
SpringMan
Member

Откуда:
Сообщений: 140
В операциях по стримам можно сохранить/передать состояние только через общую переменну, reduce или collect. Если надо сделать на стримах, то подходит вроде только collect. Сделать через него можно, но это то еще извращение.
5 мар 20, 17:34    [22093769]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
andreykaT
Member

Откуда:
Сообщений: 2720
в идее стримов такой случай тебе не нужен а если нужен ты чот не то делаешь.
5 мар 20, 18:21    [22093835]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
SpringMan
Member

Откуда:
Сообщений: 140
Исключительно ради огромной любви к извращениям:
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));
5 мар 20, 18:24    [22093837]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
andreykaT
в идее стримов такой случай тебе не нужен а если нужен ты чот не то делаешь.
да. Он юз кейс странно описал.
Поэтому и просил у него код.
Он этого в жизни не делал))))

Сообщение было отредактировано: 5 мар 20, 18:44
5 мар 20, 18:39    [22093852]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Андрей Панфилов
asv79

там все просто нас заставляют придерживаться общей стилистики кода
Это в банках TOP-1 заставляют ребусы писать?

List<String> l = Arrays.asList("1");
Object anchor = new Object();
Stream.concat(
        l.stream(),
        Stream.of(anchor, new Object())
).skip(1).limit(1).findFirst().filter(e -> e != anchor)
        .orElseThrow(RuntimeException::new);

не прокатит такое
создается дополнительный объект ,-я таким же успехом я этот стрим засну обратно в лист и положу туда синглтон ,а так как у нас две позиции - то выбросится исключение
тут идея в том чтобы не засорять память лишними объектами
пс.а то что ты выше привел делает reduce(),но оно мне не подходит
5 мар 20, 19:12    [22093885]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
SpringMan
Исключительно ради огромной любви к извращениям:
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));

ты создаешь новый объект - тем самым нарушая условия- то что ты выше написал делается в одну строчку collect(Collections.singletone)
5 мар 20, 19:14    [22093886]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
нет
пример где? Реальный?
Ты выше сказал нечто странное.
Пример mad_nazgul видем?
Сделай такой же![/quot]
мы в контуре работаем оттуда не работает копипаст,а руками набивать опухнешь)
так что код ты не увидишь)
5 мар 20, 19:15    [22093889]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
тут идея в том чтобы не засорять память лишними объектами
неужели твоя супер идея?
stream..... filter......
Каким образом без создания объекта будем использовать результат фильтра?
5 мар 20, 19:16    [22093890]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
набивать опухнешь)
а он смог?
private List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5);
?
5 мар 20, 19:17    [22093894]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
Стримы бывают ленивые. Например, по сети из Африки.
Поэтому, пока не создашь объект = результат, не узнаешь count.
5 мар 20, 19:20    [22093897]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
так что код ты не увидишь)
я знаю. У тебя цель - ПТ.
5 мар 20, 19:22    [22093899]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
andreykaT
Member

Откуда:
Сообщений: 2720
SpringMan
Исключительно ради огромной любви к извращениям:
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));

какой жиздец как же это ужасно выглядит.

зы это я не к тебе это я к джаве.

ужснах!
5 мар 20, 22:41    [22094014]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
andreykaT
SpringMan
Исключительно ради огромной любви к извращениям:
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));

какой жиздец как же это ужасно выглядит.

зы это я не к тебе это я к джаве.

ужснах!

так никто и не делает все это делается немного по другому
reduce(SomeObject o,(a,b)->
throw new Exeption);

вот то же самое
5 мар 20, 23:03    [22094023]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3531
asv79

так никто и не делает все это делается немного по другому
reduce(SomeObject o,(a,b)->
throw new Exeption);

вот то же самое
Где только таких идиотов трудоустраивают-то (в банках ТОП-1, не иначе), ты в изначальном посте написал:
asv79
конструкция кода такова есть лист,фильтруем его и если количество элементов 1-кидаем исключение
а твой говнокод на любой непустой стрим выкидывает исключение, пришло тут чмо с вопросом, два слова связать не может, а еще пытается указывать.
5 мар 20, 23:14    [22094025]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
andreykaT
какой жиздец как же это ужасно выглядит.
какая постановка, такой и ужас.
"нельзя создать переменную в оперативке" приводит к таким ужасам.
Суп из топора еще варят. Когда ничего нельзя.
5 мар 20, 23:15    [22094026]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
fixxer
Member

Откуда:
Сообщений: 770
еще докину в коллекцию извращений
Stream.of(1, 2)
                .map(e -> Stream.of(e).filter(x -> x > 1)
                        .findFirst()
                        .orElseThrow(() -> new RuntimeException("failed")));
5 мар 20, 23:19    [22094028]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
reduce(SomeObject o,(a,b)->
throw new Exeption);

вот то же самое

Это твоя попытка решить задачу?
)))
Больше кода и меньше слов. Да прибудет с тобой сила.
5 мар 20, 23:21    [22094031]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
SpringMan
Member

Откуда:
Сообщений: 140
asv79
SpringMan
Исключительно ради огромной любви к извращениям:
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));

ты создаешь новый объект - тем самым нарушая условия- то что ты выше написал делается в одну строчку collect(Collections.singletone)

Остальное уже написали) Остался только один вопрос: что вообще такое collect(Collections.singletone)? - оно не скомпилируется даже
6 мар 20, 01:26    [22094086]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5183
SpringMan
Исключительно ради огромной любви к извращениям:
        
Arrays.<String>asList("a").stream().parallel()
        .limit(2)
        .collect(
                () -> (Optional<String>[]) (new Optional[]{Optional.of("SUCCESS")}),
                (s, s2) -> s[0] = Optional.<String>empty(),
                (s, s2) -> s[0] = Optional.of("SUCCESS")
        )[0]
        .orElseThrow((RuntimeException::new));


Круто!

Прикол в том, что если заменить
Arrays.<String>asList("a").stream()


на

Stream.of("a")

Как рекомендует IDEA


То работать не будет. Точнее исключение не будет только при нуле элементов. :-)
6 мар 20, 06:37    [22094125]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3531
mad_nazgul
Прикол в том...
Там вся фишка в parallel (и в малом количестве элементов), если parallel не работает или элементов столько, что SplitIterator не дробится до одного элемента, то возникают проблемы :)
6 мар 20, 06:41    [22094128]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5183
Андрей Панфилов
mad_nazgul
Прикол в том...
Там вся фишка в parallel (и в малом количестве элементов), если parallel не работает или элементов столько, что SplitIterator не дробится до одного элемента, то возникают проблемы :)


Точно.
Прикольно.
6 мар 20, 08:29    [22094148]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
И зачем вам нужен parallel? Где в топике хотя-бы 1 информационный
повод к тому чтобы его вводить?
6 мар 20, 14:48    [22094648]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3531
mayton
И зачем вам нужен parallel? Где в топике хотя-бы 1 информационный
повод к тому чтобы его вводить?
ну как, Стас же написал: "мне нужна херня", ему "херню" предоставили (ну там коммутативность сломана во имя требований, но Стасу должно быть все равно).
6 мар 20, 14:53    [22094650]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Вот мне нравится. Есть 100500 интересных проблем математики (дискретной математики) которые
надо решать но программисты любят др0чить Streams. Вот хлебом их не корми - дай пописать
безсмысленные конструкции.
6 мар 20, 15:01    [22094657]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton,
Ну дак если ТС невменяемый.
Кусок код наверно должен выглядеть так:
Коллекция колл = стрим.фильтруем();
setБизнесЛогика(колл);

После этого можно решать, где проверить переменную колл на размер.
Так?
Стас же невменяемый молчит.
Его проблемы.
6 мар 20, 15:31    [22094689]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Это даже не к ТС. Я просто смотрю с каким энтузиазмом вы схватились за онанизм под названием исключение внутри
Stream и удивляюсь.

А затопление острова океаном вам неинтересно? Эта же задача тоже имеет цифровое решение? Может быть reduce?
Я-бы попробовал. Всяко лучше чем онанировать исключения.
6 мар 20, 19:26    [22094808]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
andreykaT
Member

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

Сообщение было отредактировано: 6 мар 20, 19:42
6 мар 20, 19:42    [22094814]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
andreykaT,
Думаю что исключения внутри стрима и внутри потока это Не адекватно.
7 мар 20, 08:50    [22095016]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
andreykaT
Member

Откуда:
Сообщений: 2720
PetroNotC Sharp
andreykaT,
Думаю что исключения внутри стрима и внутри потока это Не адекватно.

почему? вот у тебя банальная операция мапа - одного на другое и тут у тебя эксепшен случается. разве это нереальная ситуация?
7 мар 20, 13:04    [22095131]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
andreykaT
вот у тебя банальная операция мапа

Такая?
Коллекция колл = стрим.фильтруем();
setБизнесЛогика(колл);

Исключение ведь планируем мы. Не инопланетяне?

andreykaT
нереальная ситуация?

Дак никто не приводит ситуацию когда исключение САМО возбудилось.
Например, в потоках я стараюсь не использовать исключения.
Не умеет комп с ними работать).
Имхо
7 мар 20, 15:09    [22095169]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
andreykaT,
Стрим это уже ближе к ФП/реактивному. Поэтому и подходы другие.
В обычном программировании я исключения активно использую.
7 мар 20, 15:15    [22095174]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
По сути если внутри map возникло unchecked - то самое умное что можно сделать - вернуть
пустой опционал а следующий элемент конвейера уже должен сам решать что делать с
пустышкой. Прерывать работу стрима - глупо.

ФП и исключения - не любят друг-друга. А процессинг стримов - это такой кивок в сторону ФП.
Дескыть вы пищали. Хотели красивой обработки бесконечных последовательностей. Вот получите.
7 мар 20, 17:20    [22095198]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
По сути если внутри map возникло unchecked
я даже это не представляю. И код не могу вообразить. И юз кейс тоже не могу вообразить.
7 мар 20, 17:24    [22095199]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
PetroNotC Sharp
mayton
По сути если внутри map возникло unchecked
я даже это не представляю. И код не могу вообразить. И юз кейс тоже не могу вообразить.

Любой парсер дат бросает исключения. Дальше - пускай ваша фантазия сработает где в вашем коде может
приходить срока как стрим строк и где может быть маппинг с парсингом.
7 мар 20, 17:26    [22095201]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
Любой парсер дат бросает исключения.
слово парсер я слышал.
Я не вскурсе как соединить парсер с Stream.
Фантазия не работает. Увы.
7 мар 20, 18:28    [22095209]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
забыл ник
Member

Откуда:
Сообщений: 3241
На этот раз поддержу Петро, кидать исключения в стриме - противоречит самой концепции стримов. Такое случается когда смузеры начинают осваивать новую технологию не разобравшись для чего она.
7 мар 20, 18:32    [22095212]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Так и я говорю что в стримах по дизайну не должно быть исключений. Исключение разрывает конвейер.
static DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("d-M-[uuuu][uu]");

....

String[] dts = new String[]{"17-12-1980", "20-2-1981", "22-2-1981", "2-4-1981", "28-9-1981", "1-5-1981", 
                "9-6-1981", "13-JUL-87", "17-11-1981", "8-9-1981", "13-JUL-87", "3-12-1981", "3-12-1981", "23-1-1982"};

    static Optional<LocalDate> parseOrEmpty(String d1) {
        try {
            return Optional.of(LocalDate.parse(d1, dateTimeFormatter));
        } catch (DateTimeParseException ex) {
            return Optional.empty();
        }
    }

    List<LocalDate> parsedDates = Arrays.stream(dts).map(Main::parseOrEmpty)
                .filter(Optional::isPresent)
                .map(Optional::get)
                .peek(x -> System.out.println(x))
                .collect(Collectors.toList());


Что делать с двузначной датой? Отдать на откуп техническому заданию и разработчику. Можно логгировать.
Можно игнорить. Можно считать дефектом данных. Но не прерывать процессинг стрима.
7 мар 20, 20:40    [22095241]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
static Optional<LocalDate> parseOrEmpty(String d1) {
        try {
            return Optional.of(LocalDate.parse(d1, dateTimeFormatter));
        } catch (DateTimeParseException ex) {
            return Optional.empty();
        }
    }

Согласен. Так и получается, что исключения гасить в самом зародыше. Чтобы наружу ни в потоках, ни в стримах не выползали.
7 мар 20, 22:40    [22095277]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
PetroNotC Sharp
mayton
static Optional<LocalDate> parseOrEmpty(String d1) {
        try {
            return Optional.of(LocalDate.parse(d1, dateTimeFormatter));
        } catch (DateTimeParseException ex) {
            return Optional.empty();
        }
    }

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

Да. Большинство языков которые создавались после Java (GoLang) отказались от декларации checked exceptions
и вообще постарались не вовлекать программиста в формальный протокол обработки до тех пор пока
ОН САМ не решит это сделать явно. Да и вообще. Если есть возможность например парсить дату
просто возвращая boolean признак - лучше сделать так. Это будет дешевле с точки зрения накладных
расходов на процессинг. Представте что вы парсите CSV-файл из миллиарда строк и в нем в каждой
строке идет генерация DateTimeParseException и внутренняя механика каждый раз (!) формирует
полный стектрейс (Java объект представляющий стектрейс) независимо от того нужен он нам или нет.
По сабжу - не нужен но бох его знает какая механика под капотом уже работает. Софистический
пример с парсингом дат - для меня был самый настоящий. И я фиксил перформанс дефект
как раз для такого случая когда формат даты был задан неверно но деградация производительности
(для JDK 1.6) в то время была так ужасна что выгоднее было сделать строковые проверки
и выйти из процедуры раньше чем отработает метод ::parse().

Вобщем Exception - должен быть редким. Исключительным.
7 мар 20, 23:25    [22095291]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
Вобщем Exception - должен быть редким. Исключительным.
для меня только в двух случаях - в стримах и потоках.

mayton
Представте что вы парсите CSV-файл из миллиарда строк и в нем в каждой
строке идет генерация DateTimeParseException и внутренняя механика каждый раз (!) формирует
полный стектрейс (Java объект представляющий стектрейс) независимо от того нужен он нам или нет.

Я при исключении выхожу из стека, на самый верх в ГУИ.
8 мар 20, 09:07    [22095349]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Главное чтоб для пользователя это не выглядело как "циклическое" модальное окно.
Типа выскакиевает лопух с собщением "Unable to parse date XXXX at position Y", пользователь
его внимательно читает. Соглашается. Нажимает ОК. А потом - херак - следующее окно
точно такое-же текстом только дата другая. Далее - у пользователя должен быть сердечный
приступ...
8 мар 20, 13:13    [22095396]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
забыл ник
На этот раз поддержу Петро, кидать исключения в стриме - противоречит самой концепции стримов. Такое случается когда смузеры начинают осваивать новую технологию не разобравшись для чего она.

никто не бросает исключение в стриме
List -stream- filtr-findfirst-orElseThrow
вот конструкция примерная

и все тут ок
но мне дали задачу сделать похожую концепцию,но исключение должно выброситься в случае если стрим пустой,Причем сделать это в общей концепции -без ифов и без создания доп.объектов
9 мар 20, 19:32    [22095710]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
никто не бросает исключение в стриме
проснулся после 8 марта))

asv79
List -stream- filtr-findfirst-orElseThrow
вот конструкция примерная

и все тут ок
это Г.. код
9 мар 20, 20:16    [22095724]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79
никто не бросает исключение в стриме
проснулся после 8 марта))

asv79
List -stream- filtr-findfirst-orElseThrow
вот конструкция примерная

и все тут ок
это Г.. код

аргументы на уровне школьника 3 класса
аргументируй ,чем он говно ,очень хочется экспертное мнение услышать)
10 мар 20, 00:59    [22095777]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
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 мар 20, 07:21
10 мар 20, 07:20    [22095833]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
.

Сообщение было отредактировано: 10 мар 20, 07:21
10 мар 20, 07:20    [22095834]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp,
ты назвал данный флоу -говном ,при этом ничего не обосновав)
Как это не по программистски)
но раз тебе нужен юзкейс ,ок

это валидатор
с сайта прилетает заявка-в джейсоне ,что то валидируется bean validation
что то должны проверить мы
в данном конкретном случае я должен проверить код страны фактический и регистрации и если код этот не РФ ,то должен кинуть наш кастомный exeption
задача не трививиальная- тоесть возьми с джейсона этот лист -пройдись по нему циклом и удали оттуда все что не похоже на код РФ -далее сверь размер-если 2 - то ок,не 2 - кидаем ошибку,которая приатачится к ответу и оператор сможет это увидеть и либо поправить ,либо отказать заемщику-как то так.
вот моя задача была стилистически все это сделать в таком флоу как выше-ибо весь валидатор построен в таком плане.
без ифов и создания новых обьектов
.
10 мар 20, 09:22    [22095861]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
ты назвал данный флоу -говном ,при этом ничего не обосновав)
Как это не по программистски)
По правилам форума ты ОБЯЗАН в вопросе предоставить всю информацию.

asv79
это валидатор
потрудись немного. Я просил код. С КОММЕНТАРИЕМ: "Вот в этом месте мне нужно то то и то то";
10 мар 20, 10:14    [22095884]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
Ну а фраза "мне нужно райзе" не катит.
10 мар 20, 10:15    [22095886]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79
ты назвал данный флоу -говном ,при этом ничего не обосновав)
Как это не по программистски)
По правилам форума ты ОБЯЗАН в вопросе предоставить всю информацию.

asv79
это валидатор
потрудись немного. Я просил код. С КОММЕНТАРИЕМ: "Вот в этом месте мне нужно то то и то то";

зачем мне давать тебе код,который находится в закрытом контуре)
тем более давно уже решили задачку,пока ты щеки тут надувал)))
10 мар 20, 10:29    [22095895]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
22095724
10 мар 20, 10:38    [22095900]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79,
22095724

петро закусывай)
10 мар 20, 10:51    [22095909]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Девочки - не ссорьтесь.

Вот подумайте лучше можно ли все SQL-опции (агрегирующие GROUP BY и аналитические OVER.. PARTITION BY) заменить на Stream::collect/reduce?

Я над этим периодически думаю и вижу что на SQL - красиво а на stream - говнецо выходит.
10 мар 20, 11:01    [22095918]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton,
Согласись, что group by более органично выглядит на рисунке чем райзе
Картинка с другого сайта.
Тема себя исчерпала.
10 мар 20, 11:34    [22095951]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
Девочки - не ссорьтесь.

Вот подумайте лучше можно ли все SQL-опции (агрегирующие GROUP BY и аналитические OVER.. PARTITION BY) заменить на Stream::collect/reduce?

Я над этим периодически думаю и вижу что на SQL - красиво а на stream - говнецо выходит.

вопрос в том что ты хочешь получить в конечном результате
если производительность- я думаю сейчас это уже неактуально - все в облаках,мощностей хватает сделать групинг в сервис слое
ну и вообще хибер из коробки это умеет -поэтому если ты пользуешь хибер - то такой вопрос не возникнет
если ты юзаешь чистый жидибиси ,то наверно логичней этот функционал оставить на стороне базы
10 мар 20, 11:52    [22095975]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
мощностей хватает сделать групинг в сервис слое
да да. Помню. Ты предлагал group by user сделать "частототой вхождения в мапу" так как не сдела справочник юзверей и FK.
10 мар 20, 12:01    [22095991]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
questioner
Member

Откуда:
Сообщений: 1878
PetroNotC Sharp
asv79,
Ну и с точки зрения архитектуры, стрим это постоянно текущая река.
Поэтому вопрос твой странный или из категории кунсткамера.


Про терминальные операторы не слышал?
10 мар 20, 12:06    [22096004]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
questioner
Member

Откуда:
Сообщений: 1878
SpringMan
В операциях по стримам можно сохранить/передать состояние только через общую переменну, reduce или collect. Если надо сделать на стримах, то подходит вроде только collect. Сделать через него можно, но это то еще извращение.


По доке все компоненты в стримах должны быть stateless
10 мар 20, 12:08    [22096012]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
questioner
Member

Откуда:
Сообщений: 1878
забыл ник
На этот раз поддержу Петро, кидать исключения в стриме - противоречит самой концепции стримов. Такое случается когда смузеры начинают осваивать новую технологию не разобравшись для чего она.


https://dzone.com/articles/exception-handling-in-java-streams
10 мар 20, 12:15    [22096021]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
questioner
PetroNotC Sharp
asv79,
Ну и с точки зрения архитектуры, стрим это постоянно текущая река.
Поэтому вопрос твой странный или из категории кунсткамера.


Про терминальные операторы не слышал?
антипаттерн слышал?
10 мар 20, 12:16    [22096023]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79
mayton
Девочки - не ссорьтесь.

Вот подумайте лучше можно ли все SQL-опции (агрегирующие GROUP BY и аналитические OVER.. PARTITION BY) заменить на Stream::collect/reduce?

Я над этим периодически думаю и вижу что на SQL - красиво а на stream - говнецо выходит.

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

Мой вопрос звучит пока так.

Можно ли?


А дальше уже пойдем от перформанса. Я как-то написал запрос с оконной функцией от чего
у одного йуного джава юниора полезли глаза на лоб. Он не знал что в SQL есть такие
возможности вообще. Вот такие вот неграмотные бородачи будут двигать индустрию через
10 лет.

Это знаете. Как эпоха средневековья после античности. Вроде время и идет вперед а люди
знания теряют.
10 мар 20, 12:38    [22096063]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton


Можно ли?




Это знаете. Как эпоха средневековья после античности. Вроде время и идет вперед а люди
знания теряют.

Ну раз есть такая возможность -почему нельзя?

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

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

как пример я неделю назад сел на новую учетку - там ничего не было ,чтобы поднять всю среду и запустить проект - ушла почти неделя мук,это называется совместить несовместимое)
10 мар 20, 12:55    [22096084]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
SpringMan
Member

Откуда:
Сообщений: 140
questioner

По доке все компоненты в стримах должны быть stateless

У тебя триггер на слово состояние? К примеру у коллектора Collectors.toList() есть List, который передается между вызовами accumulator, - вот он и есть внутреннее состояние. К stateless это имеет к примерно никакого отношения
10 мар 20, 13:21    [22096121]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
как пример я
оригинально ты доказал лишние знания,.... на примере самого себя))))
10 мар 20, 13:30    [22096131]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79

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

Ну и что? Если эта неделя был заложена в сроки - то нормально. Если инструкции не было или автоматизации
поднятия среды - то где был ты? Ты уже должен был это все написать и автоматизировать чтобы следующий
разработчик поднимал всю среду через docker compose или еще через черт знает что но в 1 мышкоклик.
10 мар 20, 13:33    [22096135]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
asv79

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

Ну и что? Если эта неделя был заложена в сроки - то нормально. Если инструкции не было или автоматизации
поднятия среды - то где был ты? Ты уже должен был это все написать и автоматизировать чтобы следующий
разработчик поднимал всю среду через docker compose или еще через черт знает что но в 1 мышкоклик.

сразу видно что в энтерпрайзе ты не работал))
чтобы среда подымалась ее нужно настроить на каждой удаленной машине,причем на каждой машине одна ссылка может работать коректно ,а на другой нет
в итоге у нас около 4 конфигурационных файлов и там около сотни вариантов настройки.
учитывая что постоянно кто то что то меняет ,например ту же кафку ,то это занимает дни -чтобы собраться на локальной машине)
10 мар 20, 14:14    [22096186]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1085
Это не энтерпрайз. Это результат найма специалистов стоимостью 10 копеек за пучок. Я такое и в организациях из 5 человек видел.
10 мар 20, 14:53    [22096207]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79
удаленной машине,причем на каждой машине одна ссылка может работать коректно ,а на другой нет

А почему это происходит?
10 мар 20, 14:58    [22096211]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
asv79
удаленной машине,причем на каждой машине одна ссылка может работать коректно ,а на другой нет

А почему это происходит?

потому что везде бардак
доступа к установке и настройке компухтера у нас нет
все через службу поддержки,получается ты можешь ждать градл -2-3 месяца
я вот жду идею новую 3й месяц)
пока работаю на старой -локально ,но собраться уже не могу ибо все подсосы на 6м градле
вот так и работаем)
10 мар 20, 15:06    [22096218]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
доступа к установке и настройке компухтера у нас нет
детский сад. Конкретнее. Какие политики есть.
Привык на других все валить.
Комп без админских прав?
10 мар 20, 15:15    [22096227]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79
mayton
пропущено...

А почему это происходит?

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

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

Я здесь не вижу проблемы лично для тебя. Можешь пить кофе или играть в онлайн игры.
Или лучше возьми другую таску. Но я также вижу потенциальные проблемы рабочих
процессов на вашем предприятии. Это как раз относится к ентерпрайзу и стандартам ISO
о которых я тебе когда-то писал. Вы еще до них недотягиваете раз у вас нет фидбэка по
качеству внутренних процессов.
10 мар 20, 15:25    [22096234]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79
доступа к установке и настройке компухтера у нас нет
детский сад. Конкретнее. Какие политики есть.
Привык на других все валить.
Комп без админских прав?

не комп а удаленная машина)
доступ есть только к идее и нескольким коллектив тулзам типо жира и битбакета с тимсити
10 мар 20, 16:46    [22096294]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
Тебе уже ответили. Сиди и кофе пей. Зачем жаловаться "везде бардак".
Есть локальный комп - ставь туда.
Не нравится комп в домене без доступа к setup.exe - увольняйся.
Развел сопли какие то.
10 мар 20, 16:55    [22096298]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79,
Тебе уже ответили. Сиди и кофе пей. Зачем жаловаться "везде бардак".
Есть локальный комп - ставь туда.
Не нравится комп в домене без доступа к setup.exe - увольняйся.
Развел сопли какие то.

петро иди опохмелись ,ты какую то дичь несешь ей богу
сопли какие то в отражении и тд)
10 мар 20, 16:57    [22096300]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79,
Знатно ты сегодня тему свою поднял. Рассказами что у тебя на столе происходит.
Развлекай дальше.
10 мар 20, 17:07    [22096308]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79,
Знатно ты сегодня тему свою поднял. Рассказами что у тебя на столе происходит.
Развлекай дальше.

Как тут уже не раз было замечено,петрушку проще в игнор засунуть ,избавив себя тем самым от общения с пустотой))
10 мар 20, 17:17    [22096320]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
PetroNotC Sharp
asv79,
Знатно ты сегодня тему свою поднял. Рассказами что у тебя на столе происходит.
Развлекай дальше.

Как тут уже не раз было замечено,петрушку проще в игнор засунуть ,избавив себя тем самым от общения с пустотой))
да. Начни отсюда.
22096084
10 мар 20, 17:47    [22096344]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Alexander A. Sak
Это не энтерпрайз. Это результат найма специалистов стоимостью 10 копеек за пучок. Я такое и в организациях из 5 человек видел.

сейчас весь крупный энтерпрайз наверно такой,за редким исключением
проще платить 100 людям 10 чем 10 100ку
в итоге получается что ты просишь обновить тулз,а вместо этого тебе вообще выпиливают sofware center))))
но раз от такой системы не отказываются -значит выгодно
10 мар 20, 18:50    [22096374]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79
Alexander A. Sak
Это не энтерпрайз. Это результат найма специалистов стоимостью 10 копеек за пучок. Я такое и в организациях из 5 человек видел.

сейчас весь крупный энтерпрайз наверно такой,за редким исключением
проще платить 100 людям 10 чем 10 100ку
в итоге получается что ты просишь обновить тулз,а вместо этого тебе вообще выпиливают sofware center))))
но раз от такой системы не отказываются -значит выгодно

Не стоит так говорить. 10-тку.. 100-тку. Это разговоры вобщем-то безосновательные.
10 мар 20, 18:59    [22096376]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
asv79
можно быть успешным энтерпрайз программистом вообще не умея делать ни 1 запроса

Во всех топиках с вакансиями, где ты с улыбкой пишешь, чтобы взяли тебя, требуется опыт работы с базами данных.
Думаешь это не подразумевает умение писать запросы?
10 мар 20, 19:16    [22096386]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
skyANA
asv79
можно быть успешным энтерпрайз программистом вообще не умея делать ни 1 запроса

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

вся эта работа сводиться к одному extends JPARepository)
в худщем варианте JOOQ
и я сомневаюсь что в этих вакансиях эти базы еще не спроектированы
все оюычно сводится к редактированию справочников и последующему рефакторингу мапперов и валидаторов

ну и если ты думаешь я зпросы не умею писать ,ты это зря)
да конечно я не смогу там проиндексировать базу или написать какой то супер сложный селект
все остальное я смогу
да и вышенаписаное смогу через пару недель - я не думаю что там прям все так супер сложно - я просто все внимание сосредоточил на джаве и не ошибся,а попросят что то допами я мгновенно изучу ,мне это не впадлу так сказать)
10 мар 20, 20:51    [22096424]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton

Не стоит так говорить. 10-тку.. 100-тку. Это разговоры вобщем-то безосновательные.

вообщем то это так и есть в современных реалиях,добро пожаловать в реальность)
компании берут джунов ,по 30 р за штуку ( как я)
кто то тянет ,Кто то нет по итогу код пишется по сути бесплатно))
сеньеры смотрят пр - вносят какие то коменты - ты правишь - код готов
зачем кому то платить 4тыщи уе)
а я за 32 сижу глаза ломаю ,втыкая в с справочники ,попутно 2-3 темы тут и на стаке ,Как шо сделать лучше (зато мой код почти не подвергается коментам-сразу на мердж отправляется)
10 мар 20, 21:02    [22096431]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79, иди к Бугаенко. Будешь до 100 тыщ бакинских получать в месяц.
10 мар 20, 22:06    [22096459]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
asv79, иди к Бугаенко. Будешь до 100 тыщ бакинских получать в месяц.

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

и вот та задачка меня обрадовала -запилить стрим -фильтр -редьюс

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

меня вот тут поразило его высказывание - он пишет если в вашем коде есть стринг литералы - эта программа говно

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

вот тут я четсно прифигел-хотя это же верно на 100%
10 мар 20, 22:26    [22096466]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79

меня вот тут поразило его высказывание - он пишет если в вашем коде есть стринг литералы - эта программа говно

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

вот тут я четсно прифигел-хотя это же верно на 100%


1) Смотри. Блинов прав в теории. Или в предположении что любой стринговый литерал - это некое внешнее
property которое будет подвержено изменению. Но если этого нет - то и экстрактить литералы как переменные не надо.

Смотри. Я пишу форматную печать.

System.out.printf("Hello fucken world at %s", new Date());


Это - не по Блиновски. Надо экстрактить константу. Пишем.
final String FCUKEN_CONSTANT = "Hello fucken world at %s";
System.out.printf(FCUKEN_CONSTANT, new Date());


И чего мы добились? Код стал толще. И форматирование - неочевидно.
10 мар 20, 22:40    [22096477]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
тоесть вот я сдаю проект небольшой заказчику у меня там в пропертях прописаны кастомные настройки
при старте приложухи достаточно прописать -Dspring.datasource.username=postgres
и тд и взлетит где хочешь
я так понимаю блинов клонит к этому - что для старта приложения нужен скрипт со всеми контантами- а если что то изменилось изменится лишь скрипт- по сути это красиво - не нужно передеплоивать приложение - достаточно лишь перезаггрузиться
10 мар 20, 22:41    [22096479]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton,
немного не так
он топит за то чтобы литералов вообще не было в джава коде
все должнго выноситься в проперти файлы, и твой код не должен перекомпилироваться при изменении констант
я думаю что это очень грамотное решение (в первый раз я с блиновым согласен))))
хочу нашим разрабам такое предложить
10 мар 20, 22:44    [22096481]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton


И чего мы добились? Код стал толще. И форматирование - неочевидно.

ты не понял его мысли )
он хочет все константы выносить в application.properties
чтобы при старте приложения при изменннии констант приложение не перекомпилировалось
я с ним полностью согласен
если сегодня у нас образно заемщик в справочнике написан как borrower а завтра будет как coborrower
то придется приложение передеплоить и рефакторить код
а в случае с пропертями просто перезапустить с испрвленым скриптом
10 мар 20, 22:49    [22096482]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
2) Java-компиллятору вообще плевать на блиновские рефакторинги и он сводит 2 одинаковых литерала
в 1 после компилляции .class файла. Ты можешь это проверить если дизассемблировать. Тоесть внедрение
стринговых констант это эстетическое и организационное действие.
10 мар 20, 22:52    [22096484]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79
mayton


И чего мы добились? Код стал толще. И форматирование - неочевидно.

ты не понял его мысли )
он хочет все константы выносить в application.properties
чтобы при старте приложения при изменннии констант приложение не перекомпилировалось
я с ним полностью согласен
если сегодня у нас образно заемщик в справочнике написан как borrower а завтра будет как coborrower
то придется приложение передеплоить и рефакторить код
а в случае с пропертями просто перезапустить с испрвленым скриптом

Это очень странная крайность - которая побочных эффектом имеет кучу эффорта при разработке.

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

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

Код должен читаться как книга на английском. А чтение .properties и кода это как чтение
конституции с поправками. Вроде и читаешь но раздражает постоянние переключения зрения
с одного на другое.
10 мар 20, 22:56    [22096487]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
asv79
пропущено...

ты не понял его мысли )
он хочет все константы выносить в application.properties
чтобы при старте приложения при изменннии констант приложение не перекомпилировалось
я с ним полностью согласен
если сегодня у нас образно заемщик в справочнике написан как borrower а завтра будет как coborrower
то придется приложение передеплоить и рефакторить код
а в случае с пропертями просто перезапустить с испрвленым скриптом

Это очень странная крайность - которая побочных эффектом имеет кучу эффорта при разработке.

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

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

Код должен читаться как книга на английском. А чтение .properties и кода это как чтение
конституции с поправками. Вроде и читаешь но раздражает постоянние переключения зрения
с одного на другое.

я и с тобой тоже согласен ,но и он тоже прав- код не должен пекомилироваться если код валюты поменяется с 643 на 810
10 мар 20, 23:04    [22096492]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
код не должен пекомилироваться если код валюты поменяется с 643 на 810
обоснование есть этой глупости?
10 мар 20, 23:10    [22096495]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79
код не должен пекомилироваться если код валюты поменяется с 643 на 810
обоснование есть этой глупости?
спроси у блинова,он вроде еще жив)
помоему 196 страница его последней книги,завтра могу точно сказать
10 мар 20, 23:16    [22096501]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
PetroNotC Sharp
asv79
код не должен пекомилироваться если код валюты поменяется с 643 на 810
обоснование есть этой глупости?

ну и вообще как бы да - что тебе мешает вместо константны прописать value1 и тд

в и пропертях указать значение

почему кто то должен пересобирать твое приложение если какая то цифа поменяется? обоснуй это
10 мар 20, 23:18    [22096504]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
SpringMan
Member

Откуда:
Сообщений: 140
А когда к примеру приходит json {"lastname": "Иванов"}, а станет приходить {"surname": "Иванов"}. Название lastname тоже надо в конфиги?

Сообщение было отредактировано: 10 мар 20, 23:26
10 мар 20, 23:21    [22096506]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
спроси у блинова,он вроде еще жив)
а мы что? Попугаи это повторять?
Лучше завтра не надо.
ПТ.
10 мар 20, 23:22    [22096507]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
почему кто то должен пересобирать твое приложение если какая то цифа поменяется?
займись кодированием на галерах.
10 мар 20, 23:23    [22096509]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10009
asv79
тоесть вот я сдаю проект небольшой заказчику у меня там в пропертях прописаны кастомные настройки
при старте приложухи достаточно прописать -Dspring.datasource.username=postgres
То, что это строки - ещё не делает их строковыми константами.
Ну и жестоко заставлять админа расписывать длинные и бессмысленые для него имена:
 java ... -Ddb.login=...
работает ничуть не хуже, но зато гораздо понятнее.
11 мар 20, 06:47    [22096550]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10009
asv79
я и с тобой тоже согласен ,но и он тоже прав- код не должен пекомилироваться если код валюты поменяется с 643 на 810
Это два разных кода одной валюты и они оба могут использоваться в одной программе.
11 мар 20, 06:50    [22096551]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
SpringMan
А когда к примеру приходит json {"lastname": "Иванов"}, а станет приходить {"surname": "Иванов"}. Название lastname тоже надо в конфиги?

а ты не видишь разницы между key-value
surname/lastname это поля DTO
а 643- это значение из справочника- которое неизменно
если у нас сейчас предполагается ,что кредитьы будут рублевые -валидируем по 643 - и например я соглсен с блиновым что эти значения нужно выносить в проперти,чтобы если бизнес скажет - теперь выдаем в долларах я просто рестартнул приложение с новым скриптом,без передеплоев и перекомпиляций- согласись в этом есть здавый смысл
11 мар 20, 09:24    [22096583]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
А зачем рестарт? Давайте вспомним что есть zookeeper. Есть БД. Есть бины у которых lifecycle короче чем цикл приложения.

Блинов устарел на 20 лет со своими вредными советами.
11 мар 20, 09:38    [22096591]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
SpringMan
А когда к примеру приходит json {"lastname": "Иванов"}, а станет приходить {"surname": "Иванов"}. Название lastname тоже надо в конфиги?

а ты не видишь разницы между key-value
surname/lastname это поля DTO
а 643- это значение из справочника- которое неизменно
если у нас сейчас предполагается ,что кредитьы будут рублевые -валидируем по 643 - и например я соглсен с блиновым что эти значения нужно выносить в проперти,чтобы если бизнес скажет - теперь выдаем в долларах я просто рестартнул приложение с новым скриптом,без передеплоев и перекомпиляций- согласись в этом есть здавый смысл

Ты серьезно о такой мелочи решил поговорить?
Если... То берем локальную переменную.
Если...то берем поле класса.
Если... То берем константу.
Про это говорить в теме Stream?
Тут уже обижаются что уровень упал. Вот из за таких вопросов он и упал.
Либо ты делаешь вброс.
11 мар 20, 10:02    [22096604]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
А зачем рестарт? Давайте вспомним что есть zookeeper. Есть БД. Есть бины у которых lifecycle короче чем цикл приложения.

Блинов устарел на 20 лет со своими вредными советами.

Книга в довольно свежей редакции -2015 помоему)
не ну мы же выносим например конекты в проперти и ок- не буду же я каждый раз перекомпилировать приложение если база адрес поменяет
11 мар 20, 10:27    [22096613]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
fixxer
Member

Откуда:
Сообщений: 770
На деле все это, как говорит коллега skyANA, влажные фантазии Блиновых и прочих Ivory Tower Architechts, оторванных от реальности. Бизнес логика редко меняется без изменения кода, поэтому вынесение бизнес констант в конфиги, как правило, неоправданно. А если быстрый цикл CI/CD, то вообще ненужно. Мы, например, деплоим в прод хоть по десять раз на день, если нужно. Что имеет смысл выносить в конфиги, так это фича свитчи, трешхолды, таймауты и прочие "подстроечники", но тогда из нужно делать изменяемыми без перезапуска приложения.
11 мар 20, 10:37    [22096624]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
не ну мы же выносим например конекты в проперти и ок- не буду же я каждый раз перекомпилировать приложение если база адрес поменяет
"нет, ну мы же используем константы в коде".
Ты не удивился что солнце круглое?
11 мар 20, 10:44    [22096631]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
fixxer
поэтому вынесение бизнес констант в конфиги,
их не делят просто по такой градации. Бизнес... Не бизнес..
11 мар 20, 10:45    [22096633]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
SpringMan
Member

Откуда:
Сообщений: 140
asv79

а ты не видишь разницы между key-value
surname/lastname это поля DTO
а 643- это значение из справочника- которое неизменно
если у нас сейчас предполагается ,что кредитьы будут рублевые -валидируем по 643 - и например я соглсен с блиновым что эти значения нужно выносить в проперти,чтобы если бизнес скажет - теперь выдаем в долларах я просто рестартнул приложение с новым скриптом,без передеплоев и перекомпиляций- согласись в этом есть здавый смысл

Ты во внешний сервис посылаешь json c lastname. Если бизнес скажет - теперь переходим на новую версию сервиса с surname, то ты просто рестартанул приложение, без передеплоев и перекомпиляции )
На бумаге переходы 643->доллары и lastname->surname могут выглядеть логично. Как правило бизнес параметры нет смысла выносить. Если они как-то меняются, то меняется бизнес логика, а не только константа. Если у вас сбер решит перейти с рубля на доллар, то бизнес процессы поменяются так, что твой сервис вообще исчезнет и появиться что-то новое.

PS опять же про передеплой и перекомпиляцию всем как правило не важно. Это может быть только важно девопсам, который конфиги к базе меняют и т.п.

Сообщение было отредактировано: 11 мар 20, 11:12
11 мар 20, 11:07    [22096652]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
SpringMan
Если у вас сбер решит перейти с рубля на доллар, то бизнес процессы поменяются так, что твой сервис вообще исчезнет и появиться что-то новое.
+1
Поэтому обсуждаемый вопрос настолько мелкий в обсуждении. Как экономия на спичках.
11 мар 20, 11:13    [22096657]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
asv79
mayton
А зачем рестарт? Давайте вспомним что есть zookeeper. Есть БД. Есть бины у которых lifecycle короче чем цикл приложения.

Блинов устарел на 20 лет со своими вредными советами.

Книга в довольно свежей редакции -2015 помоему)
не ну мы же выносим например конекты в проперти и ок- не буду же я каждый раз перекомпилировать приложение если база адрес поменяет

Смотри дальше. Если ты разрабатываешь кластерное приложение. Которое будте развернуто на 100 узлов.
То сопрвождение пропертей на всех 100 узлах станет технической проблемой. Надо будет держать штат
dev-ops. Короче трата денег. У Spring Cloud есть коробочные решения которые опираются либо на Zookeeper
либо на другие распределенные и очень отказоустойчивые решения.

Вобщем к чему я это. Ты у Блинова услышал рекомендацию - выносить в проперти те настройки которые
должны конфигурироваться отделом сопровождения. Рекомендация - верная. Но способ имплементации
- старый. И непригодный для облачных систем.

И если у тебя в приложении 100500 констант то это не значит что тебе надо создавать properties с простыней
настроек. Ведь их надо будет группировать. Документировать и прояснять внутренние зависимости одних
пропертей от других. Вобщем там появляется другой технический долг который в совокупности может
быть еще хуже чем было раньше. Короче - грумить каждое свойство с командой разработки. И голосовать.

Доречі є така українська поговорка - Шо занадто - то не здраво.

Очень отражает смысл.
11 мар 20, 11:37    [22096677]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
mayton
asv79
пропущено...

Книга в довольно свежей редакции -2015 помоему)
не ну мы же выносим например конекты в проперти и ок- не буду же я каждый раз перекомпилировать приложение если база адрес поменяет

Смотри дальше. Если ты разрабатываешь кластерное приложение. Которое будте развернуто на 100 узлов.
То сопрвождение пропертей на всех 100 узлах станет технической проблемой. Надо будет держать штат
dev-ops. Короче трата денег. У Spring Cloud есть коробочные решения которые опираются либо на Zookeeper
либо на другие распределенные и очень отказоустойчивые решения.

Вобщем к чему я это. Ты у Блинова услышал рекомендацию - выносить в проперти те настройки которые
должны конфигурироваться отделом сопровождения. Рекомендация - верная. Но способ имплементации
- старый. И непригодный для облачных систем.

И если у тебя в приложении 100500 констант то это не значит что тебе надо создавать properties с простыней
настроек. Ведь их надо будет группировать. Документировать и прояснять внутренние зависимости одних
пропертей от других. Вобщем там появляется другой технический долг который в совокупности может
быть еще хуже чем было раньше. Короче - грумить каждое свойство с командой разработки. И голосовать.

Доречі є така українська поговорка - Шо занадто - то не здраво.

Очень отражает смысл.

кое что выносится в проперти ,тут блинов прав.
То что он говорит,что приложение с литералами в коде говно - я тоже не согласен
11 мар 20, 13:35    [22096823]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
кое что выносится в проперти ,тут блинов прав.
молодец.
КОЕ ЧТО надо выносить не по указке блинова. Нобелевку ему дайте.
11 мар 20, 13:37    [22096825]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Ну ево в болото этого блинова. Лучше подумайте хором когда последний раз вам нужно
было делать операции группировки или аналитики над Stream и вы колебались
между выбором где это сделать. На уровне DBMS или Application.
11 мар 20, 13:47    [22096831]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
чтобы ответить на твой вопрос нужно понять несколько вещей
на чем твое приложение построено-чистый jdbs или одна из имплементаций jpa
далее уже взять конретнуб имплементацию и залезть под ее капот - выяснив ,как реализована данная функция
уже после этого делать выводы какие
но наверно правильней те функции,которые умеет база -оставить базе или жпашке
вместо наворачиваний в сервис слое мусорных объектов
11 мар 20, 15:08    [22096920]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Я вообще не про то как она реализована внутри. А я про УДОБСТВО ее применения и про фактическую
ВОЗМОЖНОСТЬ. Я знаю что алгоритмически любой SQL запрос мы можем реализовать на Java
при условии что просто имеет доступ к сырым данным.

Но сама реализация его на SQL может быть более выгодной. Кода меньше. А разработчику
чем меньше кода - тем лучше. Это лаконично. Это удобно поддерживать.

Я подниму отдельный топик. Наверное в ПТ на эту тему.
11 мар 20, 15:13    [22096923]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
Я подниму отдельный топик. Наверное в ПТ на эту тему.
не пугай их там Stream.
Обзови топик просто: "двухзвенка или трехзвенка".
)))
11 мар 20, 15:16    [22096924]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
ПТ - это пятница. А не то что ты подумал
11 мар 20, 15:18    [22096925]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
ПТ - это пятница. А не то что ты подумал
аха ха))))
11 мар 20, 15:24    [22096927]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
faustgreen
Member

Откуда:
Сообщений: 377
Присоединюсь к клубу извращенцев:
работает, если в стриме только 2 элемента и брасает unchekedException.

import java.util.Optional;
import java.util.stream.Stream;

public class OneValue {
	public static void main(String[] args) throws Exception {
		Adress ad1 = new Adress("Minsk"  , "644", "Orlovskai");
		Adress ad2 = new Adress("Minsk"  , "643", "Pobeditelei");
		
		Stream<Adress> stream = Stream.of(ad1, ad2);
		stream.filter(adres -> adres.getPostCode().equals("643"))
		      .reduce(Optional.<Adress>empty(), (acc, element) -> acc.equals(Optional.empty()) ? Optional.of(element) : Optional.<Adress>empty(), (acc, element) -> Optional.<Adress>empty())
		      .ifPresent((value)-> {throw new RuntimeException("Some message");}   );
	}
}

class Adress{
	private final String city;
	private final String postCode;
	private final String street;
	
	Adress(String city, String postCode, String street){
		this.city = city;
		this.postCode = postCode;
		this.street = street;
	}

	public String getCity() {
		return city;
	}

	public String getPostCode() {
		return postCode;
	}

	public String getStreet() {
		return street;
	}

	@Override
	public String toString() {
		return "Adress [city=" + city + ", postCode=" + postCode + ", street=" + street + "]";
	}

}


Тут походу в цепочке операций со стримом в конце нужно вернуть Optional, чтобы иметь возможность выбросить исключение через метод orElseThrow. Но я как то не нашел подходящих операций, которые удовлетворяли бы условиям автора (Не содержать if и не создавать новые объектов).
11 мар 20, 16:21    [22096966]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
faustgreen
условиям автора

"Один дурак может задать столько вопросов что и 100 мудрецов не ответят" [(с) В.И. Ленин ПСС том 8 стр.15, работа "Как нам преобразовать РабКрин"]
11 мар 20, 16:48    [22096996]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
faustgreen
Присоединюсь к клубу извращенцев:
работает, если в стриме только 2 элемента и брасает unchekedException.

import java.util.Optional;
import java.util.stream.Stream;

public class OneValue {
	public static void main(String[] args) throws Exception {
		Adress ad1 = new Adress("Minsk"  , "644", "Orlovskai");
		Adress ad2 = new Adress("Minsk"  , "643", "Pobeditelei");
		
		Stream<Adress> stream = Stream.of(ad1, ad2);
		stream.filter(adres -> adres.getPostCode().equals("643"))
		      .reduce(Optional.<Adress>empty(), (acc, element) -> acc.equals(Optional.empty()) ? Optional.of(element) : Optional.<Adress>empty(), (acc, element) -> Optional.<Adress>empty())
		      .ifPresent((value)-> {throw new RuntimeException("Some message");}   );
	}
}

class Adress{
	private final String city;
	private final String postCode;
	private final String street;
	
	Adress(String city, String postCode, String street){
		this.city = city;
		this.postCode = postCode;
		this.street = street;
	}

	public String getCity() {
		return city;
	}

	public String getPostCode() {
		return postCode;
	}

	public String getStreet() {
		return street;
	}

	@Override
	public String toString() {
		return "Adress [city=" + city + ", postCode=" + postCode + ", street=" + street + "]";
	}

}


Тут походу в цепочке операций со стримом в конце нужно вернуть Optional, чтобы иметь возможность выбросить исключение через метод orElseThrow. Но я как то не нашел подходящих операций, которые удовлетворяли бы условиям автора (Не содержать if и не создавать новые объектов).


это портянка не подходит ибо содержит в своем теле тернальный оператор,в условии было сказано без ифов
с ифом это делается в 1 строчку -зачем городить такой огород было,но у памфилова свое видение видимо))
11 мар 20, 17:01    [22097005]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
faustgreen
Но я как то не нашел подходящих операций, которые удовлетворяли бы условиям автора (Не содержать if и не создавать новые объектов).

и не найдешь,эта задача не имеет решения в озвученных условиях.
Пришлось втыкать иф
11 мар 20, 17:03    [22097008]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
faustgreen
Member

Откуда:
Сообщений: 377
asv79, Я как раз изучаю стримы (около недели), вот и решил попробовать свой вариант. Сбрось, если несложно вариант с ифом.
11 мар 20, 17:10    [22097014]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
faustgreen
asv79, Я как раз изучаю стримы (около недели), вот и решил попробовать свой вариант. Сбрось, если несложно вариант с ифом.

вот смотри вместо портянки памфилова 2 строчки кода

ДТО для теста

import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(fluent = true)
class Item {
    private String code;
    
}


логика
import java.util.Arrays;
import java.util.List;

import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.toList;

public class Main {

    public static void main(String[] args) {
        List<Item> list = Arrays.asList(new Item().code("643"), new Item().code("810"));
        list.stream()
                .filter(x -> x.code().equals("643"))
                .collect(collectingAndThen(toList(), l -> {
                    if (l.size() != 2) throw new NullPointerException();
                    return l;
                }));
    }
}

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

Сообщение было отредактировано: 11 мар 20, 17:49
11 мар 20, 17:46    [22097058]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
faustgreen,
Stream str = получили из сервиса
List<String> lst = str.filter(.................... toList...
if (lst......)
    делаем что надо

ТС просто дурку включил и упирался до последнего.
11 мар 20, 17:57    [22097065]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79

а ты не видишь разницы между key-value
surname/lastname это поля DTO
а 643- это значение из справочника- .....

Бред какой-то.

Если это значение из справочника (в моем понимании справочника, который может дополняться/меняться) - то что оно делает в коде программы?

asv79

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

Такой же бред

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

Давайте тогда и имя клиента, и сумму кредита тоже в проперти хранить! Очень удобно! Нужно бизнесу выдать новый кредит - поменяли проперти - перезагрузили сервер и вуа-ля... кредит выдали!
11 мар 20, 19:17    [22097135]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev

Бред какой-то.

Если это значение из справочника (в моем понимании справочника, который может дополняться/меняться) - то что оно делает в коде программы?
!

про валидаторы и тесты слышал?есть такое в ентерпрайзе))
11 мар 20, 19:28    [22097139]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev

Такой же бред

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

на экране чего?мы разрабатываем апи дядя ))
мне не важно что там на экране ,Мне важно что мне приходит и что я отдаю,Я никаким боком не знаю и знать не хочу что там на стороне UI
валюта кредита у нас одна Рубли,это прописано в спецификации
но если нам прилетит другая валюта я должен выдать обратно бизнес еррор
ферштейн?
11 мар 20, 19:32    [22097142]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Мы как-то саппортили систему маркетинг акций для одного моб-оператора. Смена пропертей
выглядела так. Мы просто заводили в БД новое проперсти и у него была дата действия
from=, to=. Суть этого действия была в том что акция активируется обычно в полночь
в 00:00 и после этого маркетинг-система ее делает доступной. Тоесть участия оператора
или девопса не надо. И перегружать ничего не надо. Все проперти и даже их иерархии
были би-темпоальные.
11 мар 20, 19:41    [22097146]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
прилетит другая валюта
1000₽ вместо 1000€
)))
11 мар 20, 19:43    [22097148]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
asv79
skyANA
пропущено...

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

вся эта работа сводиться к одному extends JPARepository)
в худщем варианте JOOQ
и я сомневаюсь что в этих вакансиях эти базы еще не спроектированы
все оюычно сводится к редактированию справочников и последующему рефакторингу мапперов и валидаторов

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

Так всё-таки откуда ты взял, что "можно быть успешным энтерпрайз программистом вообще не умея делать ни 1 запроса"?
11 мар 20, 19:43    [22097149]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton,
Смена валюты должна быть в Модели. Если там она есть, то все ОК.
Если нет, то значит ЭТО НЕ НУЖНО ни в пропертях ни в скриптах, ни в конфигах.
Зы.
Решение проблемы через задний проход.
11 мар 20, 19:46    [22097151]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
заводили в БД новое проперсти
вспомнил. У вас бд key value.
Там модель и есть проперти)
11 мар 20, 19:48    [22097153]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79
Leonid Kudryavtsev

Бред какой-то.

Если это значение из справочника (в моем понимании справочника, который может дополняться/меняться) - то что оно делает в коде программы?
!

про валидаторы и тесты слышал?есть такое в ентерпрайзе))

если значение "в справочнике", то и валидироваться оно должно по справочнику, а не мифическому проперти или константе

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

Оно УЖЕ в справочнике. Нахрена городить какой-то проперти, дублирующий справочник?
11 мар 20, 19:51    [22097155]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Так я и не говорил про смену валюты. Вообще наше представление сейчас о валютах - сейчас поверхностное.
Если в наш топик зайдет дата-аналитик то он просто поржет держась за бока. Валют может быть много
ОДНОВРЕМЕННО. И они тоже могут иметь свойства ДЕЙСТВИЯ на промежутке времени или иметь открытый
интервал действия.
11 мар 20, 19:52    [22097157]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
PetroNotC Sharp
mayton
заводили в БД новое проперсти
вспомнил. У вас бд key value.
Там модель и есть проперти)

У НАС?
11 мар 20, 19:52    [22097158]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
Leonid Kudryavtsev
asv79
пропущено...

про валидаторы и тесты слышал?есть такое в ентерпрайзе))

если значение "в справочнике", то и валидироваться оно должно по справочнику, а не мифическому проперти или константе

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

Оно УЖЕ в справочнике. Нахрена городить какой-то проперти, дублирующий справочник?


asv79
Я никаким боком не знаю и знать не хочу
11 мар 20, 19:53    [22097159]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
PetroNotC Sharp
пропущено...
вспомнил. У вас бд key value.
Там модель и есть проперти)

У НАС?
ты говорил как то. Что с такой бд работаешь.
11 мар 20, 19:56    [22097160]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton
Вообще наше представление сейчас о валютах - сейчас поверхностное.
угу.
Но ТС 10 страниц рассказывает как там в энтерпрайзе дядям).
11 мар 20, 19:58    [22097162]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79

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

Если брать стандартны, то такая функциональность вроде называется XSD
11 мар 20, 20:23    [22097168]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev
asv79
пропущено...

про валидаторы и тесты слышал?есть такое в ентерпрайзе))

если значение "в справочнике", то и валидироваться оно должно по справочнику, а не мифическому проперти или константе

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

Оно УЖЕ в справочнике. Нахрена городить какой-то проперти, дублирующий справочник?

еще раз для особо одаренных
в справочнике валют банка - все валюты банка с которыми он работает
согласно спеки мы должны провести валидацию ,что код валюты в заявке - рубли РФ(643)
если нет мы должны выдать бизнес еррор и вернуть заявку на доработку
если валюты в справочнике нет - то до валидатора даже дело не дойдет - будет системная ошибка с сообщением что валюты с таким значением нет
теперь ферштейн ?
Это микросервисная архитектура дядя ,никто под тебя отдельный справочник писать не будет с одним значением валюты)))
11 мар 20, 20:26    [22097171]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
Leonid Kudryavtsev,
Да. Но он сам себе стандарты.
По телефону крикнул клиенту, чтобы в поле json сумма, все писали евро.
А начальники сказали проверять - вдруг рубли туда запишут)))
11 мар 20, 20:29    [22097176]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
mayton
Так я и не говорил про смену валюты. Вообще наше представление сейчас о валютах - сейчас поверхностное.
Если в наш топик зайдет дата-аналитик то он просто поржет держась за бока. Валют может быть много
ОДНОВРЕМЕННО. И они тоже могут иметь свойства ДЕЙСТВИЯ на промежутке времени или иметь открытый
интервал действия.

Если есть справочник, то в этом справочнике, скорее всего, должно было бы быть поле a la Active с возможными значениями 'Y', 'N' )))

Нужна ли историчность для справочника валют - есть сомнения.
11 мар 20, 20:32    [22097178]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev

Если брать стандартны, то такая функциональность вроде называется XML_Schema_(W3C)]XSD

ну наконец то до тебя начинает доходить)
только у нас летает между сервисами джейсон и соотвественно мы его валидируем кастомными валидаторами,Причем на каждый вариант у нас много разных бизнес эророс ,КОТОРЫЕ МЫ Должны вернуть оператору ,который заявку забивал- на каждый случай свои спецификации
11 мар 20, 20:32    [22097179]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
asv79
Это микросервисная архитектура дядя ,никто под тебя отдельный справочник писать не будет с одним значением валюты)))
я знал!
В микросервисной, спрпвочником является пропертиес в комнате админа.
11 мар 20, 20:32    [22097180]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79

....Это микросервисная архитектура дядя....

мы сталевары, мы делаем жесть

Заготовки молот бьет,
Кровь ликует в теле,
Льет горячий жгучий пот -
Здесь куют металл
11 мар 20, 20:36    [22097182]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79

только у нас летает между сервисами джейсон и соотвественно мы его валидируем кастомными валидаторами,Причем на каждый вариант у нас много разных бизнес эророс ,КОТОРЫЕ МЫ Должны вернуть оператору ,который заявку забивал- на каждый случай свои спецификации

То есть, кроме вашей хреновены. есть еще хреновена, куда "оператор без проблем забивает НЕ ВЕРНЫЕ заявки" ?
11 мар 20, 20:43    [22097187]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
ТС делает так:
- приходит json
Тип=заявка на кредит
Имя=вася
Сумма=100000
- далее ТС меняет проперти о чудо без перекомпиляции и всем заявившим выдали кредиты в евро.
11 мар 20, 20:43    [22097188]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev


Нужна ли историчность для справочника валют - есть сомнения.

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

пс.подскажите сразу этим тупицам - а что делать если один микросервис пользуется валютой 643 ,а другой 840? а третий этими двумя и еще 910?
ля пассив прикрутить?))))
11 мар 20, 20:44    [22097189]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev
asv79

только у нас летает между сервисами джейсон и соотвественно мы его валидируем кастомными валидаторами,Причем на каждый вариант у нас много разных бизнес эророс ,КОТОРЫЕ МЫ Должны вернуть оператору ,который заявку забивал- на каждый случай свои спецификации

То есть, кроме вашей хреновены. есть еще хреновена, куда "оператор без проблем забивает НЕ ВЕРНЫЕ заявки" ?

еще раз для супер одаренных))
у нас АПИ
что такое апи можете ознакомиться вот тут
wikipedia.org/wiki/API
что и куда оператор или еще кто то мне до лампочки,я получаю джейсон и занимаюсь его валидацией - если там ок - я кидаю его дальше
если нет он улетает обратно на доработку с кодом ошибки согласно спецификаций)))

Сообщение было отредактировано: 11 мар 20, 20:50
11 мар 20, 20:48    [22097194]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
22097178
поскольку, как я понимаю, операций много, то табличка/справочник:
код-валюты, разрешенная операция, другие поля по вкусу (например даты действия)
11 мар 20, 20:48    [22097195]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev
22097178
поскольку, как я понимаю, операций много, то табличка/справочник:
код-валюты, разрешенная операция, другие поля по вкусу (например даты действия)

и еще раз таки попробуем донести до тебя)))
справочник валют ОДИН)))
микросервисов много)
кто то пользует все валюты,кто то только рубли,кто то доллары
в соотвествии с этим у каждого адаптера свои спецификации по валидации входящих заявок
есть мультивалютные адаптеры например ,там валидация идет как имутейбл сет кодов валют
у нас вот только 643
давай леня приди в себя ,перевари инфу )
11 мар 20, 20:54    [22097198]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79

но про ваши сомнения мы постараемся напрямую сообщить Костину.

Ну тогда понятно. Для любовницы: яхта, личный самолет, домик на лазурном берегу. Для сисадминов и ДевОпс Key-Value СУБД имени asv79 на properties

Все для блага человека, все во имея человека....

+

Картинка с другого сайта.
11 мар 20, 20:56    [22097199]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79

Да я уже переварил. Понял, что наши банки, самые продвинутые банки в мире! Только новые технологии!

Микросервисы
Key Value No SQL СУБД на properties

p.s. Кто может утверждать, что properties это не Key-Value СУБД ?
Кто будет утверждать. что properties это не No SQL ?
Ну да... любой update рестарта требует, но зато код перекомпилировать не нужно! Прогресс!
11 мар 20, 20:59    [22097201]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2991
Leonid Kudryavtsev
asv79

Да я уже переварил. Понял, что наши банки, самые продвинутые банки в мире! Только новые технологии!

Микросервисы
Key Value No SQL СУБД на properties

p.s. Кто может утверждать, что properties это не Key-Value СУБД ?
Кто будет утверждать. что properties это не No SQL ?
Ну да... любой update рестарта требует, но зато код перекомпилировать не нужно! Прогресс!

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

а вот идея - выносить константы в проперти файлы - пришла не мне ,а блинову,о чем я тут и написал
блинов ни к нам ,ни к нашему продукту отношения не имеет
я лишь сюда перепостил ,то что он написал - мне показалось это интересной идеей в некоторых моментах
11 мар 20, 21:17    [22097204]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
а вот идея - выносить константы в проперти файлы - пришла не мне ,а блинову,о чем я тут и написал
блинов ни к нам ,ни к нашему продукту отношения не имеет
я лишь сюда перепостил ,то что он написал - мне показалось это интересной идеей в некоторых моментах

Увы. Когда вам сказали приведите код, вы ответили матом.
А про архитектуру, сами видите. Вам доходит через 5 страниц убеждений.
11 мар 20, 23:03    [22097225]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8475
asv79
я лишь сюда перепостил ,то что он написал - мне показалось это интересной идеей в некоторых моментах

эта идея - была актуальна лет много-много назад (боюсь больше, чем сейчас Блинову)
т.к. проперти придумали значительно раньше, чем Блинову "пришла в голову эта мысль"
а до этого, были ini файлы
а до этого, были просто файлы

а тут, блин, Блинову "пришла в голову мысль"

asv79
сюда перепостил

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

note: кто такой Блинов, не знаю. В любом случае он мальчик - мне не интересен. Небось еще и без бороды и на Евровидение не выступает.... но в любом случае - мне не интересен.

asv79

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

))))
Я просто весь топик сдерживался. Т.к. в стримах не сильно разбираюсь.
11 мар 20, 23:32    [22097234]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
Leonid Kudryavtsev
Я просто весь топик сдерживался. Т.к. в стримах не сильно разбираюсь.
asv79 и увел топик на этого блинова))))
У него давно цель топиков чтобы "полыхнуло"))))
11 мар 20, 23:37    [22097237]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
Топик протух. Его надо закрыть чтоб не тхнул.

И по случаю пятницы надо поднять новый. Топик свежих Stream-идей без Блинова.

Плюсаните кто согласен.

Сообщение было отредактировано: 13 мар 20, 15:14
13 мар 20, 15:14    [22098556]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4508
mayton,
Не без блинова, а с обязательным кодом.
Без него только шарписты себя хорошо чувствуют.
13 мар 20, 16:47    [22098684]     Ответить | Цитировать Сообщить модератору
 Re: Stream API  [new]
mayton
Member

Откуда: loopback
Сообщений: 45514
mayton

Что делать с двузначной датой? Отдать на откуп техническому заданию и разработчику. Можно логгировать.
Можно игнорить. Можно считать дефектом данных. Но не прерывать процессинг стрима.

Я почти изобрёл монады. Капец.
31 мар 20, 10:28    [22108593]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
Все форумы / Java Ответить