Size: a a a

Kotlin Community

2019 December 27

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Возьми тот же json и jsonb, совсем разные форматы получаются с совсем разными требованиями
Опять же все зависит от внутреннего представления. Если это представление не делать, то досвидания кастомные сериализаторы
источник

AN

Alexander Nozik in Kotlin Community
Тогда уж проще сразу ручками json собирать
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Опять же все зависит от внутреннего представления. Если это представление не делать, то досвидания кастомные сериализаторы
Не понял, откуда такой вывод?
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Otts
Да как не обзови, другим оно не станет
Ну я задолбалсья делать 3-4 копии по факту одной сущности
источник

AO

Alexey Otts in Kotlin Community
Bogdan Panchenko
Ну я задолбалсья делать 3-4 копии по факту одной сущности
зачем?
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Otts
зачем?
Бд, клиент, серелизация, ещё с xml был
источник

BP

Bogdan Panchenko in Kotlin Community
Везде аннотации и какая-нибудь специфика формата
источник

AO

Alexey Otts in Kotlin Community
Bogdan Panchenko
Бд, клиент, серелизация, ещё с xml был
Ну если это разные сущности, то и надо делать 4, если одинаковые, то не понятно нафига
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Otts
Ну если это разные сущности, то и надо делать 4, если одинаковые, то не понятно нафига
Потому что там номинала не поддерживается, а там дефолты (это на примере котлина), а аннотационую магию никто не отменял, в java это могло превратится  в боль
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Otts
Ну если это разные сущности, то и надо делать 4, если одинаковые, то не понятно нафига
Ну пару раз приходилось столько делать
источник

AO

Alexey Otts in Kotlin Community
И как тут может помочь kotlinx.serialization?
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Не понял, откуда такой вывод?
А как? Вот есть класс с полем, как это поле в текст превратить без промежуточного представления?
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
А как? Вот есть класс с полем, как это поле в текст превратить без промежуточного представления?
Делаем вот такую сущность:
https://github.com/tethys-json/tethys/blob/master/modules/core/src/main/scala/tethys/writers/tokens/TokenWriter.scala

Потом каждый сериализатор сам говорит как его надо записать, TokenWriter в свою очередь может писать как в строку, так и сразу в файл или сокет
источник

AO

Alexey Otts in Kotlin Community
И никакого промежуточного представления и оверхедов по памяти
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Otts
И как тут может помочь kotlinx.serialization?
Если что я сам могу кастомизиповать не привязываться к выходному формату, если мне нужно я просто "напишу свой формат". Аннотация только от одной либы, именно в этом часто приходилось делать разные модели.

Вот прям сегодня делал кастомизацию сереализацию Config4k, JavaTime, и это полностью дублировали енкодер и декодер из kotlinx-serelization
источник

AO

Alexey Otts in Kotlin Community
Мы при помощи этой либы пишем гигабайтные жсоны в файлики, и мегабайтные в сеть под прилично нагрузкой
источник

QH

Quantum Harmonizer in Kotlin Community
btw, у меня есть прослойка в виде TokenStream, но она тоже крайне тонкая и лёгкая, в дерево не парсю
источник

AO

Alexey Otts in Kotlin Community
Quantum Harmonizer
btw, у меня есть прослойка в виде TokenStream, но она тоже крайне тонкая и лёгкая, в дерево не парсю
Ну вот я всё думал как бы мне абстрагировать сущности, чтобы писать несколько форматов, в голову особо ничего не пришло
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Otts
Делаем вот такую сущность:
https://github.com/tethys-json/tethys/blob/master/modules/core/src/main/scala/tethys/writers/tokens/TokenWriter.scala

Потом каждый сериализатор сам говорит как его надо записать, TokenWriter в свою очередь может писать как в строку, так и сразу в файл или сокет
Выглядит как кусок kotlinx.serialization как раз таки 😄
Ну так-то идея здравая - какая разница какой там формат, когда мы просто объекты сериализуем. Пока не приходится подстраиваться под чьи-то особенности.
источник

QH

Quantum Harmonizer in Kotlin Community
Alexey Otts
Ну вот я всё думал как бы мне абстрагировать сущности, чтобы писать несколько форматов, в голову особо ничего не пришло
я, правда, не представляю, на какой ещё формат ляжет стрим токенов
источник