
Quantum Harmonizer
02.09.2018
14:12:38

Kirill
02.09.2018
14:13:04

Quantum Harmonizer
02.09.2018
14:14:03

Kirill
02.09.2018
14:14:18

Google

Kirill
02.09.2018
14:14:37
поддержка тачбара, например :D

Sergey
02.09.2018
14:15:38
из неудобств это только то что нужно явно IO контекст указывать, а так можно даже не париться о том что ты коммон пул заблочишь


Igor
02.09.2018
14:23:32
А мoжнo ли как-тo, пpи пoлучении
EitherT<ForOption, A, B>
легкo и пpoстo сделать fold пo option? Или там тoлькo чеpез value такoе делается?
И еще такoй вoпpoс. Уже навеpнoе с гистoм, там кoда бoльше будет. Есть сoстoяние (ReduxState), есть в нем бoльшoй и тяжелый oбъект (MutableDepotReportEntity). Мне бы хoтелoсь пoнять, идеологически пpавильнo ли я, в кoнтексте Redux, написал кoд на линзах и дpугoй гадoсти.
https://gist.github.com/komigor/a195708ca07acc386262a94b1f371c13
Суть вoпpoса пo факту дoвoльнo банальная – стoит ли испoльзoвать в таких случаях линзы, или же лучше oбoйтись oбычным кoпиpoванием

Aleksandr
02.09.2018
15:26:09

Sergey
02.09.2018
15:26:47

Aleksandr
02.09.2018
15:26:57
ну кстати нет)

Никита?❄️
02.09.2018
15:27:00

Aleksandr
02.09.2018
15:27:17
ни разу не свалился в троттлинг пока

Sergey
02.09.2018
15:27:19

Aleksandr
02.09.2018
15:27:32
идея по 6-8 гигов при этом кушает

Google

Никита?❄️
02.09.2018
15:28:02

Aleksandr
02.09.2018
15:28:25
проекты маленькие?)

Sergey
02.09.2018
15:28:35

Никита?❄️
02.09.2018
15:28:46

Aleksandr
02.09.2018
15:29:10
дебажащийся локально

Никита?❄️
02.09.2018
15:29:42
ну, 239

Dmitry
02.09.2018
15:52:53
Ребят, всем привет. Столкнулся со странным поведением Gson. Есть дата класс, где, к примеру, есть два поля, одно String, а другое Int. Когда десерализуем из строки, которая не содержит этих полей, то получаем объект, где non-null поля содержат null и gson не выбрасывает исключение, и такое поведение мне нравится. В чем проблема? На ведройде всегда бросалось исключение
java 1.8

Alexander
02.09.2018
16:38:20
Ребят, всем привет. Столкнулся со странным поведением Gson. Есть дата класс, где, к примеру, есть два поля, одно String, а другое Int. Когда десерализуем из строки, которая не содержит этих полей, то получаем объект, где non-null поля содержат null и gson не выбрасывает исключение, и такое поведение мне нравится. В чем проблема? На ведройде всегда бросалось исключение
Так Gson же на яве, он в рантайме нули не проверяет. Проверка происходит только когда джавовский тип двойным восклицательным знаком обрабатывают.

Sergey
02.09.2018
16:39:14
jackson на нули больно реагирует, он строже
gson у меня кучу всего лишнего пропускал

Alexander
02.09.2018
16:40:13
Я к тому, что котлина тут не причем, на котлине проверка в компайл тайме. Если ее нет в библиотеке, то ошибок и не будет

Dmitry
02.09.2018
16:42:20
как-то странно всеравно, ибо просто левый json, напрмер {"key":"value"}, ему подкидываешь, а он тебе один фиг отдает объект

Alexander
02.09.2018
16:43:14
Ну это на совести самого Gson-а
Я думаю, что там какая-то валидация должна быть, но я с ним очень поверхностно знаком. Попробовал, а потом выкинул, мне объектный маппинг только мешает

Quantum Harmonizer
02.09.2018
17:42:56

Alexander
02.09.2018
17:47:59
а что взял вместо маппинга?
А ничего, у меня дерево значений так и живет как дерево, когда надо поверх него делается декоратор, который делает вид, что он типизированный объект. По сути динамическое разрешение типа по месту. Одно и то же дерево может в разных случаях играть разную роль.

Google

Quantum Harmonizer
02.09.2018
17:51:52

Alexander
02.09.2018
17:52:07
Типа того
С одно стороны теряется бонус статической типизации (для конфигурации, для остального все в силе), с другой, можно лекго делать всякие прекрасные преобразования с деревом

OlegKrikun
02.09.2018
18:01:01
Кста, чо там сериализатор из kotlinx всё так же не особо быстр по сравнению с gson/jakson? Никто не тестил 0.6.x?

Quantum Harmonizer
02.09.2018
18:03:34
а кому это реально критично?
Я не особо понимаю людей, которые хотят выжать скорость из JSON.

OlegKrikun
02.09.2018
18:04:51
Хорошо, спрошу по другому кто-то юзает? =)

Quantum Harmonizer
02.09.2018
18:05:02
(И нет, я не говорю, что сериализаторы не должны быть быстрыми. Просто интересуюсь.)

OlegKrikun
02.09.2018
18:05:11
Ну при прочих равных, хотелось бы что бы это проходило побыстрее

Quantum Harmonizer
02.09.2018
18:05:44
Я так понимаю, главная фишка ktx-serialization — переносимость

OlegKrikun
02.09.2018
18:05:46
например я ща работаю с очень старым апи, там есть момент когда надо выкачать json на 50 метров

Quantum Harmonizer
02.09.2018
18:06:35
авторы апи уже стоят на учёте в соответствующих учереждениях?

OlegKrikun
02.09.2018
18:07:19
Он был молод и зелен, а заказчик ща не готов тратится на переделку апи =)
я ваще подумываю написать плуг к грейделу, что бы при компиляции какчать актуальную инфу и паковать в апк =))))
ну или таск

Igor
02.09.2018
18:09:09

OlegKrikun
02.09.2018
18:10:19
в общем все потыкали и сидят на gson/jakson =)))

Quantum Harmonizer
02.09.2018
18:11:04
А есть, кстати, хоть что-нибудь нормальное?
(Т. е. маппинг без аннотаций/рефлексии/кодогенерации)

OlegKrikun
02.09.2018
18:11:59
о, пойду и это потыкаю =) Moshi is a great JSON library for Kotlin. It understands Kotlin’s non-nullable types and default parameter values. When you use Kotlin with Moshi you may use reflection, codegen, or both.
moshi c рефлексией

Google

OlegKrikun
02.09.2018
18:17:53
А за это кто что скажет? https://github.com/cbeust/klaxon
А не, выностите =))) https://github.com/cbeust/klaxon/issues/181

Alexander
02.09.2018
18:20:29

Quantum Harmonizer
02.09.2018
18:22:11
Маппинг без аннотации или кодогенерации возможнен только в моем случае, где объекты в принципе динамические. В противном случае каким образом в рантайме можно узнать структуру класса, в который надо превратить?
Не обязательно в рантайме. Ну типа
class User(val name: String, val surname: String, val cash: Double)
...
ObjectReader3("name", StringReader, "surname", StringReader, "cash", DoubleReader, ::User)

Alexander
02.09.2018
18:23:32
Ну это еще больший кошмар, чем аннтоации и выполняет ту же роль. В котлине можно делать при помощи делегатов, но это мой вариант - под каждым классом кусок JSON-а или другой иерархической структуры.

Quantum Harmonizer
02.09.2018
18:23:52
не. Делегаты — точно не.

Alexander
02.09.2018
18:24:42
Да, кстати, kotlinx.serialization в режиме кастомного сериализатора работает как раз так, к каждому классу присобачивается ручной метод сериализации и десереализации.

Quantum Harmonizer
02.09.2018
18:24:44
Ещё есть вариант использовать массивы объектов вместо DTO, тогда механика маппера становится проще.

Admin
ERROR: S client not available

Alexander
02.09.2018
18:25:06
Это уже вопрос организации того самого дерева. Идея та же.

OlegKrikun
02.09.2018
18:28:19
я вот с тем легаси апи часто gson'ом часть данных (обычно что то вложенное) парсю как мапы, всё равно потом конвертировать в "выпрямленные" структуры

Vladimir
02.09.2018
18:38:54

Quantum Harmonizer
02.09.2018
18:39:33

OlegKrikun
02.09.2018
18:39:34
Компиляцию замедляет

Vladimir
02.09.2018
18:40:41

OlegKrikun
02.09.2018
18:41:44
Угу

Mikhail
02.09.2018
21:02:06

OlegKrikun
02.09.2018
21:14:42

Google

Quantum Harmonizer
02.09.2018
21:31:50

Mikhail
02.09.2018
21:32:48
Угу, правильно приготовленный бинарный формат будет быстрее

Konstantine
02.09.2018
23:05:44
Что-то читаю про контракты и кажутся они какой-то дичью.
Есть какой-то реальный пример где и зачем оно надо?

Dmitry
02.09.2018
23:50:58
Там 8гб и i5
i5 десктопный и i5 ультрамобильный отличаются гораздо больше, чем i3 и i7
Смотрите на энергопотребление, а не маркетинговые лейблы.

Loljeene
03.09.2018
00:15:02

Sergey
03.09.2018
02:23:52

Sergey
03.09.2018
04:53:06
Или ты про U процессоры?
Они урезанные по самое что есть не могу

Vladimir
03.09.2018
04:56:24

Loljeene
03.09.2018
06:03:34

Andrey
03.09.2018
06:19:52

Sergey
03.09.2018
06:21:46

Жабра
03.09.2018
06:22:17

Sergey
03.09.2018
06:22:58
Студия 2.0 прекрасно работала
3.1 уже со скрипом
На проектах с Котлин все печально со скоростью работы редактора

OlegKrikun
03.09.2018
06:30:17

Sergey
03.09.2018
06:30:49