@kotlin_lang

Страница 479 из 982
Александр
07.01.2018
15:56:37
Спс

Kylych
07.01.2018
17:53:00
привет всем, подскажите, имеется callback hell, можно ли его улучшить/избавиться с помощью корутины? Есть один момент, который меня тормозит. У меня три вызова/роута по апи, как обычно есть порядок и зависимости друг от друга. И каждый роут может являться еще подписчиком, т.е. может подключиться к бэкенду и принимать евенты, пока юзер на этом экране. код - https://gist.github.com/toktogul/02daa9fad59daf35eeee216ffa620187

swh
07.01.2018
17:54:28
Обязательно корутины?

Google
Kylych
07.01.2018
17:55:08
недавно посмотрел доклад на тему корутин, подумал, крутая штука

более читабельный код получается

swh
07.01.2018
17:55:28
Понял, я тут не помогу пока )

Sergey
07.01.2018
17:56:06
все события по одному разу вызываются?

или там стримы?

Kylych
07.01.2018
17:56:16
нет, стрим

чаще всего в одном роуте стримы

Quantum Harmonizer
07.01.2018
17:59:26
можно представить стрим как Channel и вызвать consumeEach.

Kylych
07.01.2018
18:03:18
ок, буду изучать, спасибо.

Kylych
08.01.2018
03:27:02
@leukinrs , @angmarr Ну смотрите, это sdk firebase. В ref.child(Route.MEMBERS).addChildEventListener() я подписываюсь и слушаю пока UI открыт, у него несколько ивентов, onChildAdded(), onChildRemoved(), onChildChanged(), onChildMoved, onCancelled(). На каждый ивент своя логика. Сейчас я хочу реализовать логику для onChildAdded(), в этом методе нужно сделать еще 2 дополнительных запроса на бэкенд, у которых есть порядок вызова. Они одноразовые, там подкписки нету. Если б не подписка, а простые запросы, я б наверное смог реализовать через обычные корутины, но тут подкписка и у меня есть сложности с реализацией.

Google
swh
08.01.2018
07:15:07
Скиньте ссылку хоть :)

Kylych
08.01.2018
07:17:41
Скиньте ссылку хоть :)
https://gist.github.com/toktogul/02daa9fad59daf35eeee216ffa620187

Гадкий
08.01.2018
07:25:55
А для Firebase Firestore такое никто не делал?

swh
08.01.2018
07:30:34
спасибо

Igor
08.01.2018
08:30:42
Roman
08.01.2018
08:37:07
Ну я думаю сам по себе он не вызовется.

Надо почитать доки.

Судя по докам этот метод должен называться onError

В случае канала туда надо сделать специальный Event.Error(), а в случае suspend fun await() она просто должна бросать исключение.

Хотя в канале можно сделать и иначе: передать исключение как аргумент в continuation.cancel(throwable)

Реализация зависит от логики самой апи. Если после onCancel еще будут события, то надо взять первый вариант, а если onCancel - последнее событие в потоке, то второй.

Igor
08.01.2018
09:37:28
А есть какой-нибудь экстеншен для junit, что бы можно было suspened тесты писать?

Roman
08.01.2018
09:42:06
Дык, runBlocking(Unconfined) и вперед!

Igor
08.01.2018
09:44:42
А ели и это лень делать. Никто написать не хочет для junit5 ?

Roman
08.01.2018
09:46:04
Ты хочешь писать suspend fun testSomeFoo()?

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

Руслан
08.01.2018
12:10:42
А вы знали что в Kotlin/JS используется часть GWT? https://sdcast.ksdaemon.ru/2017/10/sdcast-64/#comment-3645770433

Igor
08.01.2018
12:18:26
> У защитника Дарта какая-то травма оставленная TypeScript'ом: хочется сравнивать дарт с более успешным TS и говорить как в дарте все лучше, а TS это как JS ? Хм, вроде бы “не защитник дарта”, но после попыток юзать TS, травмирован на столько, что больше не могу терпеть языки “расширяющие жс” (Flow/TS). (это же такое же г, только с типами ?)

Google
Руслан
08.01.2018
12:27:19
> У защитника Дарта какая-то травма оставленная TypeScript'ом: хочется сравнивать дарт с более успешным TS и говорить как в дарте все лучше, а TS это как JS ? Хм, вроде бы “не защитник дарта”, но после попыток юзать TS, травмирован на столько, что больше не могу терпеть языки “расширяющие жс” (Flow/TS). (это же такое же г, только с типами ?)
Чтобы не начать оффтоп Dart vs TypeScript сведу вопрос к такому: 1. Писать чисто на Kotlin/JS; 2. Писать на Kotlin/JS и делать интероп с существующими библиотеками на JS. Понятно что второй вариант будет травмировать, но если писать только на первом варианте - то все прям хорошо.

Igor
08.01.2018
13:10:30
Хм это вопрос (риторический вопрос) или утверждение? С последним утверждением согласен, я правда под android пишу))) тк что не сильно в этом шарю.

Sergey
08.01.2018
13:11:21
меня пока Kotlin/js немного ужасает. как-то много телодвижений нужно делать чтобы заюзать какой-нибудь jquery

Igor
08.01.2018
13:12:09
> 2018 > jquery ?

Sergey
08.01.2018
13:12:17
я образно)

Igor
08.01.2018
13:12:40
Ну вроде React из коробки поддерживается. Что еще для счастья надо?

Руслан
08.01.2018
13:18:41
Свой frontend фреймворк

С имплементациями поверх javafx/react/android?

Sergey
08.01.2018
13:22:10
а gradle на фронт обязательно тащить?

Руслан
08.01.2018
13:22:40
если отказаться от готовых js библиотек, т.е. npm не нужен, то почему нет?

Igor
08.01.2018
13:27:07
С имплементациями поверх javafx/react/android?
Не совсем понял, ты хочешь единый UI везде? (и какой-нибудь стандартный набор апи)

Pavel
08.01.2018
13:28:52
а gradle на фронт обязательно тащить?
на войне все средства хороши

Руслан
08.01.2018
13:29:24
Не совсем понял, ты хочешь единый UI везде? (и какой-нибудь стандартный набор апи)
Я хочу просто писать на котлине фронтенд, ну и почему бы не сделать сразу библиоткеку реюзабельных компонент

Sergey
08.01.2018
13:30:05
на войне все средства хороши
попробуй это фронтам обьясни

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

мне в принципе пофиг, я на фронт не лезу)

Pavel
08.01.2018
13:32:16
когда после scala я посмотрел на kotlin... я еле свог найти 10 отличий

Sergey
08.01.2018
13:32:19
на досуге хочу поиграться и пописать экстешены к пхп на kotlin/native

Google
Sergey
08.01.2018
13:32:58
как сказать похожи..

Quantum Harmonizer
08.01.2018
13:33:00
Igor
08.01.2018
13:33:04
1) Можно же писать на React + Kotlin и делать ProgressiveWebApplication, которые могут работать без интернета. 2) Либо писать на ReactNative + Kotlin и компилить в android/ios/macos/windows 3) Либо писать на ReactNative и компилить в html5 ? и дальше см п1 c PWA ( https://github.com/necolas/react-native-web )

Sergey
08.01.2018
13:33:34
Зачем нужен пхп, если есть котлин?
когда у тебя кодовая база на 500к+ строк, то нельзя просто так взять и выбросить целый штат пхп разрабов и с ними код)

по-немногу переходим

Grigory
08.01.2018
13:33:55
вопрос был скорее зачем котлин если есть пхп

Sergey
08.01.2018
13:34:10
вопрос был скорее зачем котлин если есть пхп
пхп это как груви только без jvm

Admin
ERROR: S client not available

Sergey
08.01.2018
13:34:12
?

Pavel
08.01.2018
13:34:28
пхп это как груви только без jvm
ну так сила груви в jvm?

Quantum Harmonizer
08.01.2018
13:34:34
пхп это как груви только без jvm
не поверишь, я именно их и сравнивал когда-то)

ну так сила груви в jvm?
Сила груви в том, чтобы уйти в закат.

Sergey
08.01.2018
13:34:58
сила груви в билд скриптах, как Барух завещал

Igor
08.01.2018
13:35:11
вопрос был скорее зачем котлин если есть пхп
Десант из скала чатика ? кхе кхе

Sergey
08.01.2018
13:35:21
подглядывает)

Grigory
08.01.2018
13:35:54
Десант из скала чатика ? кхе кхе
я должен был написать зачем скала если есть пхп?

Sergey
08.01.2018
13:36:26
я должен был написать зачем скала если есть пхп?
на одного скалиста я тебе найду десяток хороших пхпшников)

Grigory
08.01.2018
13:37:59
не буду набарсывать стикеров, но тут именно большая кривая рожа. ------------ да никто не спорит на самом деле, что пхппистов (и гоферов) много, это же уже бизнес вопрос и его все рашают по своему

Sergey
08.01.2018
13:38:18
ладно не будем языковой срач разводить

Google
Sergey
08.01.2018
13:38:44
да у нас на проекте и пхп(в приоритете), и котлин, и даже есть немного дотнета под моно но двигаемся в сторону котлина

Руслан
08.01.2018
13:38:45
это в @jvmchat, там все эксперты)

Grigory
08.01.2018
13:38:47
я вроде и сгладил возможный срач) ну попытался

Pavel ?
08.01.2018
13:48:03
на одного скалиста я тебе найду десяток хороших пхпшников)
есть мнение что мир захватят именно жабаскриптисты)

Sergey
08.01.2018
13:48:31
Они хоть TS/Flow юзают или ты решил их резко с жс на котлин перетянуть?
хотели TS, но решили подождать котлина вроде как

Boris
08.01.2018
13:49:41
почему они так похожи?
оба же языки программирования, вот если бы один был феном, тогда да

Igor
08.01.2018
13:51:13
Тут и джава подтягивается со своим final var ?‍♂️ (конкуренция усиливается)))

Boris
08.01.2018
13:51:43
Нельзя просто так взять и заставить людей писать коротко, они же не поймут

Руслан
08.01.2018
13:54:17
Люди разные бывают, кто-то не хочет писать типы после имени (name: Type), кто-то хочет писать типы (видеть хотя бы). Поэтому надеятся что все-все перейдут на то что кажется более правильным и красивым не стоит :)

Konstantin
08.01.2018
14:05:33
Ну типы еще фигня и дело привычки, даже если не все признают, но вот final var как-то уже за гранью.

Sasha
08.01.2018
14:17:07
Ну типы еще фигня и дело привычки, даже если не все признают, но вот final var как-то уже за гранью.
Я недавно на гитхабе копался в чем то и наткнулся на final val в котлине. Секунд 30 думал что не так.)

Руслан
08.01.2018
14:21:27
Ну вот пишем же const val :) редко конечно, но глаз не режет

Sasha
08.01.2018
14:25:30
Ну вот пишем же const val :) редко конечно, но глаз не режет
Это да, привыкли просто и с этим привыкнем, но вот мозгу переключаться будет еще сложнее.

nikita
08.01.2018
14:37:22
подскажите, можно что-то сделать с Jackson'ом, чтобы для data-классов начал сериализоваться их тип в проперти @class? если создаю open class SomeData {...} и потом пишу ObjectMapper() .registerModule(KotlinModule()) .enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY) .writeValueAsString(SomeData()) то все нормально, получаю json: {"@class":"....SomeData",....} а для data-классов не работает.

Руслан
08.01.2018
14:39:52
data class - FINAL

nikita
08.01.2018
14:40:10
да я догадываюсь ? сделать-то можно что-нибудь?

Руслан
08.01.2018
14:40:36
а зачем класс записывать

nikita
08.01.2018
14:40:39
с джексоном, не с котлином ?

Страница 479 из 982