powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Какой паттерн?
11 сообщений из 61, страница 3 из 3
Какой паттерн?
    #40055622
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тут - какая-то фейерия из тезисов.

Кто вообще запрещает тебе делать if-s.

Покажи фрагмент кода, который вызвал сомнения.

Мы говорим вообщем ,а не о каком то конкретном куске кода- про книгу чистый код ,патерны и прочее.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055628
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
потом идут вместо ифов городить стримы с фильтрами - что прям под дых бьет производительности,ибо стрим дорогое удовольствие- а когда их в одном методе несколько то вообще печаль может случиться на бьльшом прогоне данных- с чем я собственно сейчас и столкнулся - и от этого дико подгорает.

В Clean код ничего не писали про стримы.

И в хорошем ентерпрайзе обычно производительность заворачивается на уровне ожиданий IO/Networking
а вовсе не на фильтрах коллекций. Просто если фильтры коллекций играют такую значимую роль - то может
стоит внимательно посмотреть что у вас за коллекции. Почему они такие большие? Почему эта фильтрация
не делается в БД?

Java вообще не создавалась как механизм агрессивной обработки больших коллекций. Я просто хочу посмотреть
на то бизнесовое описание, из которого вдруг (!) внезапно вытекает что Java должна что-то очень-очень быстро
отфильтровать. Не верю в это.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055631
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton,
рано мне еще перегорать.
На счет код стайла согласен -но вообще это должно решаться специальным скриптом- который можно в идею подгрузить.
А по поводу чистого кода- я вот не согласен с ним,что он против ифов - ну ведь и все ж читают эту книгу и потом идут вместо ифов городить стримы с фильтрами - что прям под дых бьет производительности,ибо стрим дорогое удовольствие- а когда их в одном методе несколько то вообще печаль может случиться на бьльшом прогоне данных- с чем я собственно сейчас и столкнулся - и от этого дико подгорает.

ну чтоб говорить что стримы дороже надо иметь какой нибудь бенчмарк под руками. или там байткод разобрать. а то может выяснится (в чем я на 95%) уверен что все стримы уже на уровень байткода разложены на обычный фор. примерно так же как это происходит с хвостовой рекурсией.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055633
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тут - какая-то фейерия из тезисов.

Кто вообще запрещает тебе делать if-s.

Покажи фрагмент кода, который вызвал сомнения.

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

зы. это личные ощущения.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055634
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
потом идут вместо ифов городить стримы с фильтрами - что прям под дых бьет производительности,ибо стрим дорогое удовольствие- а когда их в одном методе несколько то вообще печаль может случиться на бьльшом прогоне данных- с чем я собственно сейчас и столкнулся - и от этого дико подгорает.

В Clean код ничего не писали про стримы.

И в хорошем ентерпрайзе обычно производительность заворачивается на уровне ожиданий IO/Networking
а вовсе не на фильтрах коллекций. Просто если фильтры коллекций играют такую значимую роль - то может
стоит внимательно посмотреть что у вас за коллекции. Почему они такие большие? Почему эта фильтрация
не делается в БД?

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

мы о разном говорим- я тебе пишу что люди почитав clean code начинают боятьс ифов) как там сказано если больше 2х то ваш код smell shit->что происходит дальше - чтобы не было ифов юзают все что угодно,в том числе и стримы( ты сам недавно задавал такой вопрос и я тебе туда стрим воткнул как раз)
так вот такие вроде на первый взгляд безобидные выкрутасы - могут серьезно скзаться на производительности.
ты же согласен что если ты берешь коллекцию и прогоняешь ее через цикл и попутно там внтури пара тройка ифов это одно и когда ты с этой коллекции делаешь стрим ->filter->collect to то это две совсем неравнозначне операции по производительности
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055636
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

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

Ты преувеличиваешь. Во первых мы все используем вложенные conditions. Мы без этого не можем. Мы иногда
и код не напишем. Особенно если оба condition содержат линию else.

Во вторых это ограничение не запретительное а рекомендательное. Его подсвечивает SonarQube в своих отчотах.
И самое страшное что может случится - это то что твой проект перейдет из зеленого сегмента в желтый по количеству
предупреждений. Но это всё обсуждается с тех-лидом и если твой тех-лид и вся команда будет ОК с таким вложением - то
и всем будет пофиг. И заказчик тоже не ставит такой задачи как озеленение всех отчотов. Это вобщем противоречит
бизнес-целям. Ведь главная задача - реализация бизнес-фич. А озеленение Сонар-странички - это дело фоновое.
Когда критичного ничего нет - озеленяй.

Открой из любопытсва свой первый испытательный проект с шахматами и посмотри. У тебя наверное к самому себе
будет масса претензий. Но вряд-ли они будут в плоскости количества if-s. Готов спорить что ты найдешь косяки
но другие.

Кроме того если ты используешь на проекте кодогенераторы типа Antlr, CC, CXF/SOAP, e.t.c. то они на выходе выдают
совершенно идиотский (хотя и рабочий код) с вложенностью под тыщу conditions внутри switch-case и никого это не парит.
Ведь это код @Generated. Тоесть рисков того что человек напорол боков нету. Ведь человека не было. Был - робот.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055672
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется, почти любые вложенные ифы можно сделать плоскими. вот с форами сложнее ))
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055675
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу проблему if не в количестве а в смыслах. Если функцию Haskell/Erlang/Scala + guards можно рассматривать
как if-s то это меня не напрягает в плане смысла. Ведь паттерн-матчинг с guards это те-же if переписанные на другом
языке. Тогда почему количество этих виртуальных if-s меня не напрягает? Что тому причиной? Синтаксис?

Тоесть if-s не является проблемой. Проблемой является исключительно наше ВОСПРИЯТИЕ ifs.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055677
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так гарды в патмате как раз и "уплощают" логику.

я вообще против вложенностей. я против колбэкхелов я против бесконечных флатмапов я против нестед ифов.
это просто усложняет понимание кода. ну и тестирование опять же. 4 ифа в методе - 2 в четвертой степени кейсов.

та же тема с форкомпрехеншином. он дает возможность уплощать бесконечные флатмапы флатмапов.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055678
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...хотя по факту код как работал так и дальше работает. но читать приятнее.
...
Рейтинг: 0 / 0
Какой паттерн?
    #40055721
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
If, for боится тот кто new в жизни не писал.
Чего удивлятся.
Замените бизнес логику
Код: java
1.
If в кармане пусто { прошелмиморесторана()}


Поэтому это тёрки прогеров с 1С конфигурастами.
...
Рейтинг: 0 / 0
11 сообщений из 61, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Какой паттерн?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]