Size: a a a

2021 November 25

с#

саша сок #KotlinGang... in Kotlin JVM
ну в стдлибе чота почти все List это ArrayList (за исключением пустого списка и списка из одного элемента)
источник

TT

Turalllb Turalll in Kotlin JVM
ну вот торчит. И наверно если кто-то снаружи может мне навредить, то стоит наверно доп защиту ставить в виде asStateFlow, а так - сам дурак)
источник

AM

Andrew Mikhaylov in Kotlin JVM
Во всём надо знать меру. От злоумышленников вы будете защищаться другими методами, потребителям апи в качестве публичного контракта вы выдали конкретный тип, дальше даункастишь -- ССЗБ. Зачем что-то бОльшее?
источник

с#

саша сок #KotlinGang... in Kotlin JVM
можно в жвм включить флаги на рефлексию и достучаться до стейтфлоу 😃
источник

TT

Turalllb Turalll in Kotlin JVM
можна найти программиста и избить его)))
источник

AE

Alexey Erofeev in Kotlin JVM
главным образом у тебя самого, сценарий всегда один - они там чего-то накрутят, заэмитят, а потом к тебе "у нас сломалось", а ты проводи расследование выясняй где, так что если есть минимальный безболезненный способ сузить интерфейс чтобы отсечь большую часть злоупотреблений - надо делать
источник

TT

Turalllb Turalll in Kotlin JVM
ясно, понял ваши мнения, спасибо большое))
источник

с#

саша сок #KotlinGang... in Kotlin JVM
очень жалко, если кому-то правда на практике приходится иметь проблемы с этим :(
источник

AM

Andrew Mikhaylov in Kotlin JVM
Ну, если вы с дурачками работаете, то, возможно, это и имееь смысл. Но как общий совет -- вряд ли :)
источник

AE

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

AE

Alexey Erofeev in Kotlin JVM
и это не "жалко", потому что случай не из ряда вон, это так работает в принципе
источник

AE

Alexey Erofeev in Kotlin JVM
делаешь, стараешься, формируешь доки, пишешь примеры, а тебе потом какие-нить бодрые японские ребята пишут "а как нам затащить это ваше сдк в наше хтмл5 приложение"
источник

AE

Alexey Erofeev in Kotlin JVM
случай краевой, но показывает разброс и желание в такие моменты пойти побиться об стену
источник

TT

Turalllb Turalll in Kotlin JVM
ну да, если от того что кто-то прикастит и сделает эмит у кого-то точно сгорит микросхема, то лучше уберечься) А у меня всего-то перейдет на другой экран и очевидно, почему это произошло)
источник

AE

Alexey Erofeev in Kotlin JVM
микросхема не сгорит, сгорит мозг автора, когда он будет пытаться локализовать это, а того самого  заветного эмита автору не дадут, понятно что есть еще миллион способов выстрелить себе в ногу и везде не подстрахуешься но раз уж встал такой вопрос написать asStateFlow это недолго и ничего не стоит
источник

AM

Andrew Mikhaylov in Kotlin JVM
Ну просто какой-нибудь MutableList<T>.asList() вам таким же образом уже не поможет, будьте начеку.
источник

AE

Alexey Erofeev in Kotlin JVM
нам-то уже ничего не поможет ж) листы эмитятся во вне и дальше действительно сам дурак что ты с ними делаешь, а вот оставить торчащим наружу свой флоу на который у тебя самого что-то завязано ай-яй-яй
источник

AM

Andrew Mikhaylov in Kotlin JVM
Так и список можно к мутабельному скастовать и поменять "нечаянно" что-то унутрях вызывающей сторонн.
источник

AM

Andrew Mikhaylov in Kotlin JVM
Если это проблема, приходится точно так же делать defensive copies.
источник
2021 November 26

VS

Vladimir Sitnikov in Kotlin JVM
А есть какой-нибудь compiler plugin или ещё что-то, которое бы генерировало warning’и или советы про то, что «вот вы тут объявили public функцию, а из Java её будет тяжело вызывать, т.к. надо будет Function1 и return Kotlin.UNIT» ?
источник