Size: a a a

2019 September 03

SZ

Sergey Zolotov in Kotlin JVM
Alexey Otts
1) Меня очень грустит дизайн, сам факт того, что я могу передать в resond Any, при этом я вообще хз, что я получу в результате. И ладно, я могу всегда пользоваться методом, который отдаёт байтики, но может прийти кто то после меня начать кидать этот Any и на выходе получать вообще хер знает что
2) Очень забавная ситуация с parameters, что там лежат и query и path параметры
3) Баги с вебсокетами
4) Через жопу сделанный graceful shutdown

Дизайн клиента вообще полный трешак, хотели абстрагироваться для мультиплатформы в итоге я не могу просто там взять обернуть какой нибудь стандартный клиент, и навешать на него свою функциональность, ну и опять же эти Any
4) Через жопу сделанный graceful shutdown

а че там?
источник

QH

Quantum Harmonizer in Kotlin JVM
Andrew Mikhaylov
Интерфейс связал бы по рукам адаптер к конкретному инструменту сериализации, потому нет, нельзя.
Можно юзать Lychee -- юзай, я же не спорю :)
Поэтому нужна абстрактная инфраструктура сериализации, не привязывающая к конкретной библиотеке сериализации. Ну, вроде Lychee.
источник

AO

Alexey Otts in Kotlin JVM
Sergey Zolotov
4) Через жопу сделанный graceful shutdown

а че там?
Ну он по факту ничего не ждёт, там есть параметр сколько ты хочешь шатдаунится, мне допустим нужно дождаться всех операций, в среднем они завершаться за секунду, но может быть и такое, что они завершаются 56 секунд, дак вот, если ты выставишь 2 секунды, то шатдаун будет идти 4 секнуды всегда, оно не дождётся всех запросов что логично, но и не завершится раньше если всё уже завершилось.
Почему 4? - Спросите вы, да потому что там сделано синзронное ожидание завершение фьючей на двух воркер пулах подряд, чтобы точно всё дождаться надо выставлять 56 секунд и ждать долбанные 2 минуты
Воооот
источник

AM

Andrew Mikhaylov in Kotlin JVM
Quantum Harmonizer
Поэтому нужна абстрактная инфраструктура сериализации, не привязывающая к конкретной библиотеке сериализации. Ну, вроде Lychee.
Твоя абстрактная инфраструктура, не привязанная к конкретной библиотеке, требует явного описания модели там, где большинство библиотек имеют модель без помощи разработчика. Потому смысла в ней как в абстракции над существующими JSON-либами ноль.
источник

AM

Andrew Mikhaylov in Kotlin JVM
Я не говорю щас, что она плохая, просто юзкейс странноватый :)
источник

SZ

Sergey Zolotov in Kotlin JVM
Alexey Otts
Ну он по факту ничего не ждёт, там есть параметр сколько ты хочешь шатдаунится, мне допустим нужно дождаться всех операций, в среднем они завершаться за секунду, но может быть и такое, что они завершаются 56 секунд, дак вот, если ты выставишь 2 секунды, то шатдаун будет идти 4 секнуды всегда, оно не дождётся всех запросов что логично, но и не завершится раньше если всё уже завершилось.
Почему 4? - Спросите вы, да потому что там сделано синзронное ожидание завершение фьючей на двух воркер пулах подряд, чтобы точно всё дождаться надо выставлять 56 секунд и ждать долбанные 2 минуты
Воооот
мне пока непонятно зачем там shutdown url)
источник

AO

Alexey Otts in Kotlin JVM
Andrew Mikhaylov
Твоя абстрактная инфраструктура, не привязанная к конкретной библиотеке, требует явного описания модели там, где большинство библиотек имеют модель без помощи разработчика. Потому смысла в ней как в абстракции над существующими JSON-либами ноль.
Типизируйте протокол, епта, можно было сделать что то такое:
fun <A> respond(response: A, marshaller: Marshaller<A>)
источник

AO

Alexey Otts in Kotlin JVM
Sergey Zolotov
мне пока непонятно зачем там shutdown url)
Типо тестовый урл, нахера он нужен, хз
источник

AM

Andrew Mikhaylov in Kotlin JVM
Alexey Otts
Типизируйте протокол, епта, можно было сделать что то такое:
fun <A> respond(response: A, marshaller: Marshaller<A>)
Зачем мне таскать какой-то Marshaller, если он уже уложен в сервер / клиент при инициализации?
источник

AO

Alexey Otts in Kotlin JVM
Затем чтобы не засунуть в respond каку? Чтобы можно было отдельно тестировать сериализацию?
источник

SZ

Sergey Zolotov in Kotlin JVM
юзай respondText/responsdBytes
источник

SZ

Sergey Zolotov in Kotlin JVM
там каку не запихнешь)
источник

AO

Alexey Otts in Kotlin JVM
Sergey Zolotov
там каку не запихнешь)
Так и живу
источник

AO

Alexey Otts in Kotlin JVM
Ну всмысле, я вообще забил на него, а до этого так жил да
источник

SZ

Sergey Zolotov in Kotlin JVM
на ктор?)
источник

AO

Alexey Otts in Kotlin JVM
ага
источник

AM

Andrew Mikhaylov in Kotlin JVM
Не понял про каку, если честно. Если мне нужны сырые данные, выше вон указаны способы с ними работать. Если мне нужно работать с моделью, описанной в доке к серверу, я пользуюсь моделью.

Тестирование сериализации меня, во-первых, не беспокоит, так как этим не я занимаюсь, во-вторых, в кторе оно вполне себе живёт в модуле этого самого ContentNegotiation, да.
источник

BP

Bogdan Panchenko in Kotlin JVM
Интересно что скажет скала 🤔
источник

AM

Andrew Mikhaylov in Kotlin JVM
Не интересно, мы вроде не в скала-чатике.
источник

AO

Alexey Otts in Kotlin JVM
Bogdan Panchenko
Интересно что скажет скала 🤔
там есть имлиситы, и принимаются сериализаторы для инстансов конкретного типа
источник