Size: a a a

Programming Offtop

2021 March 30

AK

Anton Korotkikh in Programming Offtop
(
Скорее, если у тебя неебическая мультипродуктная компания у тебя не будет моностека, на кой хер тебе ебать мозги поиском челиков с разной экспертизой, если ты пилишь интернет магазин
всё так. я специально акцентирую внимания про большие и крупные компании. я имею в виду какие-то здоровые нагромождения продуктов, в которых ещё дохуя всякого "исторически сложилось", типа сбера, яндекса, втб, газпрома итд. кровавый тырпрайз. сюда же идут всякие ритейлы и прочие конторы, которые вроде бы небольшие по ИТ, но столько нацепляли за свою жизнь подрядов и коробок, что теперь это просто так не разгрести
источник

AM

Andrew Mikhaylov in Programming Offtop
central hardware
то ли еще будет, вот когда начнут драйвера делать на js, вот тогда можно сказать, мы все просрали
Уже писали о WebUSB?
источник

ch

central hardware in Programming Offtop
ну там хотят не только к usb дать доступ, а чуть ли не ко всему
источник

AK

Anton Korotkikh in Programming Offtop
оказывается, кложа не одна. есть ещё вооружённый медведь, и не сказать что он заброшен (послдение обновление месяц назад)
https://abcl.org/
источник

AD

Aleksey D. in Programming Offtop
какие могут быть аргументы против установки листенеров в конструкторе Java-классов?

мне вроде бы видно, что это не ок, но почему это не ок - черт его пойми.
источник

AG

Alexander Gorodok in Programming Offtop
Aleksey D.
какие могут быть аргументы против установки листенеров в конструкторе Java-классов?

мне вроде бы видно, что это не ок, но почему это не ок - черт его пойми.
А где лучше?
источник

ch

central hardware in Programming Offtop
Aleksey D.
какие могут быть аргументы против установки листенеров в конструкторе Java-классов?

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

ch

central hardware in Programming Offtop
а если хардкод на один, то даже хз
источник

с#

саша сок #KotlinGang... in Programming Offtop
Aleksey D.
какие могут быть аргументы против установки листенеров в конструкторе Java-классов?

мне вроде бы видно, что это не ок, но почему это не ок - черт его пойми.
то, что надо будет всё равно делать метод переустановки (или добавления) лиснера для гибкости логики?
источник

KD

Konstantin Dovnar in Programming Offtop
Aleksey D.
какие могут быть аргументы против установки листенеров в конструкторе Java-классов?

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

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

На этой ноте как-то не соответствуют подходы.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Имхо, при передаче в конструкторе у тебя идёт негласная завязка на то, что слушатель будет слушать и работать всё время жизни объекта.

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

На этой ноте как-то не соответствуют подходы.
> Но сам по себе подход слушателя подразумевает возможность отмены, переподписки, изменения слушателя.

Конкретно observer pattern подразумевает, да. Лиснеры в целом бывают разные, не уверен, что они обязаны быть заменяемыми.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
> Но сам по себе подход слушателя подразумевает возможность отмены, переподписки, изменения слушателя.

Конкретно observer pattern подразумевает, да. Лиснеры в целом бывают разные, не уверен, что они обязаны быть заменяемыми.
Даже если отбросить замену — они должны уметь отписаться.

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

KD

Konstantin Dovnar in Programming Offtop
В общем, подписчик в конструкторе, из-за своей природы, довольно плохая идея, да.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Даже если отбросить замену — они должны уметь отписаться.

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

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Кому именно они должны это уметь?
Тем, кто подписывается на него. Иначе слишком легко поломать подписку, даже не заметив этого.
источник

KD

Konstantin Dovnar in Programming Offtop
class X(private val listener: Listener)

val l = Listener()
val x = X(l)
// ...
l.cancel()
// x ещё живёт и шлёт события вникуда
источник

ch

central hardware in Programming Offtop
Konstantin Dovnar
class X(private val listener: Listener)

val l = Listener()
val x = X(l)
// ...
l.cancel()
// x ещё живёт и шлёт события вникуда
что за логика у метода cancel? как это должно работать?
источник

AM

Andrew Mikhaylov in Programming Offtop
Тож не понял пример. У меня сто лет лиснеры в коде — это функциональные типы, за редкими исключениями, где таки нужен интерфейс с несколькими методами, и я не помню, чтобы в нём надо было cancel заводить какой-то.
источник

KD

Konstantin Dovnar in Programming Offtop
central hardware
что за логика у метода cancel? как это должно работать?
Делай отмену как хочешь.
Можешь её внутри X сделать.

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

Единственный нормальный кейс который я вижу — это передача лямбды как слушателя, чтобы она просто жила вместе с объектом.
источник

AM

Andrew Mikhaylov in Programming Offtop
Если мне нужна возможность заменять или убирать их — делаю var и наллабл при надобности. Не нужна — не делаю. А тут оказывается, лиснеры кому-то что-то обязаны!
источник