Size: a a a

Programming Offtop

2020 July 20

Kd

Konstantin dmz9 in Programming Offtop
криповенько
источник

Kd

Konstantin dmz9 in Programming Offtop
Andrew Mikhaylov
Ну так а ивент бас -- это глобальная труба, куда срут событиями и о разлогине, и о новом посте, и о потере интернета, и о возобновлении подписки. А потом по разным типам ивентов подписываются. И отдебажить именно такое дерьмо очень сложно. Поэтому и не любят.
если рассматривать ивентбас  как реку времени, а события - это факты которые по ней плывут, то какая разница кто их запустил?
факт есть факт, он случился где то в какой то момент времени, вся суть такого разделения - чтобы не знать где оно случилось.
источник

Kd

Konstantin dmz9 in Programming Offtop
поэтому "как такое дебажить" - да, хуй знает как, материться через раз и дебажить
источник

AD

Aleksey D. in Programming Offtop
Konstantin dmz9
поэтому "как такое дебажить" - да, хуй знает как, материться через раз и дебажить
да как дебажить? ты же заранее знаешь, какие типы событий твой модуль хавает и понимает
берешь и кидаешь в него нужные событие
если получил плохое событие - пишешь в лог ошибку и идешь разбираться, как правильно обработать такое событие

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

p.s. мб я что-то не понимаю про такую шину?
источник

Kd

Konstantin dmz9 in Programming Offtop
сложность возрастает как только количество событий вырастает до пары десятков, это неоспоримо )
источник

I

Igor in Programming Offtop
(боян)
Вроде же хотели что-то в языке докрутить, что бы это пофиксить 🤔
источник

AD

Aleksey D. in Programming Offtop
Konstantin dmz9
сложность возрастает как только количество событий вырастает до пары десятков, это неоспоримо )
вероятно, она растет не быстрее, чем от роста количества методов/интеракторов/репозиториев/фич?
источник

AM

Andrew Mikhaylov in Programming Offtop
Igor
А чем проблема с дебагом?
Что невидны причинно-следственные связи между событиями / нету трейсов?
Причинно-следственные связи, да. Это намного хуже лапши из интеракторов, да.
источник

Kd

Konstantin dmz9 in Programming Offtop
Aleksey D.
вероятно, она растет не быстрее, чем от роста количества методов/интеракторов/репозиториев/фич?
быстрее, и объяснение очень простое - тулинг перестает тебе помогать
источник

Kd

Konstantin dmz9 in Programming Offtop
когда ты пишешь без событий, просто вызывая методы объектов или функции - у тебя есть стектрейс, у тебя есть подсказки иде, у тебя рефакторинг через иде
источник

Kd

Konstantin dmz9 in Programming Offtop
как только ты начал кидать события - вжух, ничего этого нет.
рефакторишь объект события - будь добр сам найти где все это юзается.
запихнуть в бандл +1 парамер - ок, а что делать когда параметр депрекейтед и надо удалить? а хер знает какие модули или части системы до сих пор его используют, если сам не поищешь.
а как только начнешь натыкаться на названия параметра оторваные от контекста - подумаешь - блять, это параметр события тут или локальная какая то переменная
источник

I

Igor in Programming Offtop
Andrew Mikhaylov
Причинно-следственные связи, да. Это намного хуже лапши из интеракторов, да.
Выглядит как идея для библиотеки трейсинга событий
zipkin vedro edition)
источник

AM

Andrew Mikhaylov in Programming Offtop
Aleksey D.
вероятно, она растет не быстрее, чем от роста количества методов/интеракторов/репозиториев/фич?
Интеракторы с репозиторием так или иначе хотя бы намёк на структуру кода позволяют поддерживать. Даже если ответственность в итоге в корявом клине течёт в соседние слои, ПРИМЕРНО понятно, что где искать. А вот если приложение -- бессвязный набор классов, которые присасываются к общей шине -- в таком дерьме без достаточной дозы алкоголя на постоянной основе некоторое количество времени разобраться просто невозможно.
источник

SV

Sergey Vasilchenko in Programming Offtop
в телеге похожая тема, NotificationCenter называется, пронизывает все приложение) хотя использовать довольно удобно
источник

(

( in Programming Offtop
Andrew Mikhaylov
Интеракторы с репозиторием так или иначе хотя бы намёк на структуру кода позволяют поддерживать. Даже если ответственность в итоге в корявом клине течёт в соседние слои, ПРИМЕРНО понятно, что где искать. А вот если приложение -- бессвязный набор классов, которые присасываются к общей шине -- в таком дерьме без достаточной дозы алкоголя на постоянной основе некоторое количество времени разобраться просто невозможно.
У нас и с двумя всего компонентами пиздец
источник

(

( in Programming Offtop
Был*
источник

AM

Andrew Mikhaylov in Programming Offtop
(
У нас и с двумя всего компонентами пиздец
Ну если там два год-обжекта тыщи по три и выше строк кода -- охотно поверю.
источник

AD

Aleksey D. in Programming Offtop
Andrew Mikhaylov
Интеракторы с репозиторием так или иначе хотя бы намёк на структуру кода позволяют поддерживать. Даже если ответственность в итоге в корявом клине течёт в соседние слои, ПРИМЕРНО понятно, что где искать. А вот если приложение -- бессвязный набор классов, которые присасываются к общей шине -- в таком дерьме без достаточной дозы алкоголя на постоянной основе некоторое количество времени разобраться просто невозможно.
я, похоже, просто не копался в таком дерьме
у меня сейчас в предсказуемых (кажется) местах создаются и всегда можно через Find Usages найти, откуда они прилетают

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

I

Igor in Programming Offtop
Konstantin dmz9
как только ты начал кидать события - вжух, ничего этого нет.
рефакторишь объект события - будь добр сам найти где все это юзается.
запихнуть в бандл +1 парамер - ок, а что делать когда параметр депрекейтед и надо удалить? а хер знает какие модули или части системы до сих пор его используют, если сам не поищешь.
а как только начнешь натыкаться на названия параметра оторваные от контекста - подумаешь - блять, это параметр события тут или локальная какая то переменная
Ну тут должна помочь стат типизация)
источник

Kd

Konstantin dmz9 in Programming Offtop
Igor
Ну тут должна помочь стат типизация)
я на жс виджеты писал с событиями, если вдруг че )
источник