Перейти к публикации
  • Сейчас на странице   Всего пользователей: 3   (0 пользователей, 3 гостя)

Rooster

Программирование[9]

Перепись  

260 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

Just.Doit написал 1 минуту назад:

если у меня в текущем методе есть 5 параметров которые я хочу передать через замыкание в тело лямбды?

:kaifstelish: ну так передай их явно в метод, упрости жизнь тому кто будет разбираться в твоем говне.

 

Нет пусть гадает что у тебя в лямбде замыкается, что мутируется и есть ли сайдэффекты.

Пиздец нашел к чему апеллировать.  Я написал неподдерживаемое говно :razumist:

Чисти сука, чисти вилкой, чтобы были чистые функции.

Господи, начинаю любить свое рабочее окружение.

Pep_See понравилось это

Поделиться сообщением


Ссылка на сообщение
Index написал 1 минуту назад:

Нет пусть гадает что у тебя в лямбде замыкается, что мутируется и есть ли сайдэффекты.

ну в нормальных языках/подходах все иммутабельное, а эффекты менеджется в монадах

ох вейт, у нас же джава

хотя я не понял чем замыкание хуже передачи через параметры при мутациях - и так и так нужно думать над мутирующим стейтом


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 3 минуты назад:

хотя я не понял чем замыкание хуже передачи через параметры

Ну хотя бы числом тиков головного процессора чтобы понять что тут происходит.

 

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

 

Дай дураку стеклянный хуй называется.

Поделиться сообщением


Ссылка на сообщение
(изменено)

давайте кокнретный пример. чето нашел на просторах проекта

553465289_Screenshotfrom2020-07-0713-19-38.png.851bd856add72237ee62dab31abaee39.png

либо код вот тут доступен - https://scastie.scala-lang.org/uTd2a9f9TnG9tA3iYIF9Dg

вот settingsBySubdivision

штука которая по подразделению достает все настройки подписания для конкретного типа документов, при этом отсеивает пустые списки.

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

ниже довольно легко это использовать

 

если  выносить settingsBySubdivision в метод и тип документа в пеараметры то ниже добавляется вербозность settingsBySubdivision(subdivision, docTypeCode) и так 4 раза. хотя в данном скоупе уже понятно что речь идет про один и тот же docTypeCode, и это зашумляющая вербозность которая снижает читабельность.

 

тут не очень наглядно. но представь что у нас есть 6 параметров для какой-то функции.

foo(param1, param2, param3, param4, param5, param6)

и 4 из них определены в скоупе и их достаточно замкнуть и получить 

scopedFoo(param1, param2)

и теперь ниже у нас в этом скоупе идет 5-10 раз использование данной функции, и теперь вместо 

foo(a1, b1, param3, param4, param5, param6)

foo(a2, b2, param3, param4, param5, param6)

foo(a3, b3, param3, param4, param5, param6)

foo(a4, b4, param3, param4, param5, param6)

foo(a5, b5, param3, param4, param5, param6)

foo(a6, b6, param3, param4, param5, param6)

 

будет

scopedFoo(a1, b1)

scopedFoo(a2, b2)

scopedFoo(a3, b3)

scopedFoo(a4, b4)

scopedFoo(a5, b5)

scopedFoo(a6, b6)

 

и зачем эта вербозность в первом случае?

 

более того, если у меня гдето до этого был бы такой общий метод, который юзается в 10 местах и выделен как паблик метод сервиса или утилс (по сути этим является signatureSettingService.listBy) - я бы скорее всего тут бы всеравно определил лямбду в которой docTypeCode был бы замкнут, тк это снижает вербозность и повышает читабельность

 

PS: возможно хуево объяснил суть решаемой задачи, если что спрашивайте

 

 

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


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Kant написал 16 минут назад:

какая нахуй стратегия

там условно цикл 1 с 0 до половины, второй с половины до конца и третий постобработка, и все три заполняют результат однообразно.

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

Я тебе скажу, дружок пирожок.

 

Когда у тебя возникает задача, НУ ВОТ ТУТ НАДА КОРОЧЕ ТАК ТО И ТАК ТО ПОСТОБРАБОТАТЬ ПО ТАКОЙ ЛОГИКЕ 

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

А у тебя она ещё и стейтфул, что тоже должно намекнуть, что возможно её стоит вынести в отдельный класс.

 

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

Поделиться сообщением


Ссылка на сообщение

это расчет процентов по графику, там не бывает изменений, алгоритм небось в википедии написан, куда ты его менять собрался :zatrolka_tupostu:


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

Поделиться сообщением


Ссылка на сообщение
(изменено)
Index написал 5 минут назад:

это надо быть

не прав

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

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

по крайней мере для бизнесовых приложений это так


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 7 минут назад:

давайте кокнретный пример. чето нашел на просторах проекта

553465289_Screenshotfrom2020-07-0713-19-38.png.851bd856add72237ee62dab31abaee39.png

Против такой хуйни ничего в принципе плохого не имею.

Тут это даже упрощает чтение, чем если бы это все было инлайн, а вынос в методы добавляет вербозности да.

 

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

Пример канта со стейтфул постпроцессингом явно требует вынесения в отдельный класс.

Поделиться сообщением


Ссылка на сообщение

лямбда хуямбда 

Поделиться сообщением


Ссылка на сообщение

индекс. попрограммируй на хаскеле.

у тебя очень заджавели мозги


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Kant написал 2 минуты назад:

это расчет процентов по графику, там не бывает изменений, алгоритм небось в википедии написан, куда ты его менять собрался :zatrolka_tupostu:

Самое то спрятать в лямбде да. Ctrl+C Ctrl+V тестирует пусть мануальщик на глаз.

 

Just.Doit написал 1 минуту назад:

индекс. попрограммируй на хаскеле.

у тебя очень заджавели мозги

Надо бы степик добить по хацкелу :onneponimaet:

Поделиться сообщением


Ссылка на сообщение

что-то ты не находишь к чему доебаться

щас бы расчеты процентов мануальщиком тестить. сотни вариантов на калькуляторе будет просчитывать :omegalul:


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

Поделиться сообщением


Ссылка на сообщение

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

после таких обсуждений понимаю почему это так себе идея

GoldRobot понравилось это

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

переходите на html 5 и css3

Поделиться сообщением


Ссылка на сообщение
Kant написал 22 минуты назад:

что-то ты не находишь к чему доебаться

щас бы расчеты процентов мануальщиком тестить. сотни вариантов на калькуляторе будет просчитывать :omegalul:

Я про то, что твою ебучую лямбду никак не потестить кроме как косвенно.

Ты накопипастил и всё, а работает или нет пусть QA разбирается.

А был бы это метод, можно было бы сделать юнит тест.

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 50 минут назад:

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

после таких обсуждений понимаю почему это так себе идея

Ну да, раз уж у вас штат кодерков на скале, то вы ни в коем случае не пишете говнокод.

Ведь говнокод можно писать только на java 

 

Я бы ещё доебался до именования методов что ты скинул. Нахуй следовать стандартам имя метода - глагол.

Ле куда преш, не видешь скалист идет.

Поделиться сообщением


Ссылка на сообщение
(изменено)

не. говнокода у нас дохуя и больше. причем здесь язык

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

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

 


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
E1azor написал 18.04.2020 в 01:51:

ладно, можно считать что я очередной раз обосрался, ничего нового

тем временем спешу напомнить

Поделиться сообщением


Ссылка на сообщение
(изменено)
Index написал 33 минуты назад:

Нахуй следовать стандартам имя метода - глагол.

это не джава, чтобы следовать стандартам джавы

в фп мире методов вобще нет, есть функции

более того - там только 1 метод - listSettings что является глаголом to list 

если ты про методы сервисов

насколько станет понятнее если я везде допишу get ? мне кажется это тоже лишняя вербозность и атавизм

 

 

у тебя чото дохуя каких-то стандартов, паттернов, принципов в голове

я не помню твой уровень. вроде молодой но уже не джун, чето шаришь

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

 

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

 


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Мой аргумент в том, что SOLID и GRASP не джуны придумали. И код писать стоит исходя из того, что ты к нему ещё вернешься.

У вас на галере вообще кодревью есть? Или каждый пишет что он хочет?

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...