| 
 | 
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton Тут - какая-то фейерия из тезисов. Кто вообще запрещает тебе делать if-s. Покажи фрагмент кода, который вызвал сомнения. Мы говорим вообщем ,а не о каком то конкретном куске кода- про книгу чистый код ,патерны и прочее. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 16:01 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 потом идут вместо ифов городить стримы с фильтрами - что прям под дых бьет производительности,ибо стрим дорогое удовольствие- а когда их в одном методе несколько то вообще печаль может случиться на бьльшом прогоне данных- с чем я собственно сейчас и столкнулся - и от этого дико подгорает. В Clean код ничего не писали про стримы. И в хорошем ентерпрайзе обычно производительность заворачивается на уровне ожиданий IO/Networking а вовсе не на фильтрах коллекций. Просто если фильтры коллекций играют такую значимую роль - то может стоит внимательно посмотреть что у вас за коллекции. Почему они такие большие? Почему эта фильтрация не делается в БД? Java вообще не создавалась как механизм агрессивной обработки больших коллекций. Я просто хочу посмотреть на то бизнесовое описание, из которого вдруг (!) внезапно вытекает что Java должна что-то очень-очень быстро отфильтровать. Не верю в это. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 16:38 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 mayton, рано мне еще перегорать. На счет код стайла согласен -но вообще это должно решаться специальным скриптом- который можно в идею подгрузить. А по поводу чистого кода- я вот не согласен с ним,что он против ифов - ну ведь и все ж читают эту книгу и потом идут вместо ифов городить стримы с фильтрами - что прям под дых бьет производительности,ибо стрим дорогое удовольствие- а когда их в одном методе несколько то вообще печаль может случиться на бьльшом прогоне данных- с чем я собственно сейчас и столкнулся - и от этого дико подгорает. ну чтоб говорить что стримы дороже надо иметь какой нибудь бенчмарк под руками. или там байткод разобрать. а то может выяснится (в чем я на 95%) уверен что все стримы уже на уровень байткода разложены на обычный фор. примерно так же как это происходит с хвостовой рекурсией. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 16:51 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton Тут - какая-то фейерия из тезисов. Кто вообще запрещает тебе делать if-s. Покажи фрагмент кода, который вызвал сомнения. я вот к сожалению клинкод до конца не дочитал. но интересное чтиво. касательно ифов подозреваю, речь идет о том что если их много на метод это плохо. если они еще и вложенные это плохо в квадрате. а вложения вложений - застрелите автора. ну типа 1 иф в методе - уже тесткейсов надо вдвое больше. два ифа - вчетверо и т.п. чисто с этой точки зрения. плюс иф всегда должен что то возвращать. типа тернарок. когда иф - ой тут делаем а тут не делаем ничего - это тоже не очень. зы. это личные ощущения. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 16:54 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton asv79 потом идут вместо ифов городить стримы с фильтрами - что прям под дых бьет производительности,ибо стрим дорогое удовольствие- а когда их в одном методе несколько то вообще печаль может случиться на бьльшом прогоне данных- с чем я собственно сейчас и столкнулся - и от этого дико подгорает. В Clean код ничего не писали про стримы. И в хорошем ентерпрайзе обычно производительность заворачивается на уровне ожиданий IO/Networking а вовсе не на фильтрах коллекций. Просто если фильтры коллекций играют такую значимую роль - то может стоит внимательно посмотреть что у вас за коллекции. Почему они такие большие? Почему эта фильтрация не делается в БД? Java вообще не создавалась как механизм агрессивной обработки больших коллекций. Я просто хочу посмотреть на то бизнесовое описание, из которого вдруг (!) внезапно вытекает что Java должна что-то очень-очень быстро отфильтровать. Не верю в это. мы о разном говорим- я тебе пишу что люди почитав clean code начинают боятьс ифов) как там сказано если больше 2х то ваш код smell shit->что происходит дальше - чтобы не было ифов юзают все что угодно,в том числе и стримы( ты сам недавно задавал такой вопрос и я тебе туда стрим воткнул как раз) так вот такие вроде на первый взгляд безобидные выкрутасы - могут серьезно скзаться на производительности. ты же согласен что если ты берешь коллекцию и прогоняешь ее через цикл и попутно там внтури пара тройка ифов это одно и когда ты с этой коллекции делаешь стрим ->filter->collect to то это две совсем неравнозначне операции по производительности ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 16:55 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 мы о разном говорим- я тебе пишу что люди почитав clean code начинают боятьс ифов) как там сказано если больше 2х то ваш код smell shit->что происходит дальше - чтобы не было ифов юзают все что угодно,в том числе и стримы( ты сам недавно задавал такой вопрос и я тебе туда стрим воткнул как раз) Ты преувеличиваешь. Во первых мы все используем вложенные conditions. Мы без этого не можем. Мы иногда и код не напишем. Особенно если оба condition содержат линию else. Во вторых это ограничение не запретительное а рекомендательное. Его подсвечивает SonarQube в своих отчотах. И самое страшное что может случится - это то что твой проект перейдет из зеленого сегмента в желтый по количеству предупреждений. Но это всё обсуждается с тех-лидом и если твой тех-лид и вся команда будет ОК с таким вложением - то и всем будет пофиг. И заказчик тоже не ставит такой задачи как озеленение всех отчотов. Это вобщем противоречит бизнес-целям. Ведь главная задача - реализация бизнес-фич. А озеленение Сонар-странички - это дело фоновое. Когда критичного ничего нет - озеленяй. Открой из любопытсва свой первый испытательный проект с шахматами и посмотри. У тебя наверное к самому себе будет масса претензий. Но вряд-ли они будут в плоскости количества if-s. Готов спорить что ты найдешь косяки но другие. Кроме того если ты используешь на проекте кодогенераторы типа Antlr, CC, CXF/SOAP, e.t.c. то они на выходе выдают совершенно идиотский (хотя и рабочий код) с вложенностью под тыщу conditions внутри switch-case и никого это не парит. Ведь это код @Generated. Тоесть рисков того что человек напорол боков нету. Ведь человека не было. Был - робот. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 17:08 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  мне кажется, почти любые вложенные ифы можно сделать плоскими. вот с форами сложнее )) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 21:28 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я вижу проблему if не в количестве а в смыслах. Если функцию Haskell/Erlang/Scala + guards можно рассматривать как if-s то это меня не напрягает в плане смысла. Ведь паттерн-матчинг с guards это те-же if переписанные на другом языке. Тогда почему количество этих виртуальных if-s меня не напрягает? Что тому причиной? Синтаксис? Тоесть if-s не является проблемой. Проблемой является исключительно наше ВОСПРИЯТИЕ ifs. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 21:37 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  так гарды в патмате как раз и "уплощают" логику. я вообще против вложенностей. я против колбэкхелов я против бесконечных флатмапов я против нестед ифов. это просто усложняет понимание кода. ну и тестирование опять же. 4 ифа в методе - 2 в четвертой степени кейсов. та же тема с форкомпрехеншином. он дает возможность уплощать бесконечные флатмапы флатмапов. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 21:53 | 
  
  
  
   | 
||
| 
 
Какой паттерн? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ...хотя по факту код как работал так и дальше работает. но читать приятнее. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.03.2021, 21:54 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=40055678&tid=2120500]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    59ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    47ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 13ms | 
| total: | 160ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...