Size: a a a

Kotlin Community

2020 May 08

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
А когда-то в котлине интерфейсы назывались трейтами...)))
Просто назывались или реально были трейтами ?
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Вот с ktor, например, всё немного иначе: на нём строится меньше библиотек и больше приложений.
ABI там ломали активно, но это почти никого не задевало. И после 1.0 такие действия не так страшны, потому что пользователи вряд ли столкнутся с конфликтом версий.
А вот несовместимость библиотеки сериализации - это большая беда, и я не думаю, что даже в 2.0 они решатся ломать что-то серьёзное. Пользователям будет очень больно, если она к этому времени заметно распространится.
Ktor 1.3 🌚
источник

СГ

Сергей Греков... in Kotlin Community
Vladimir Sitnikov
Именно!

Нет ничего плохого нет (а сплошные плюсы) в том, чтобы вот взять и выпустить serialization как 1.0
Никто 2.0 не запрещает потом.

Тут смысл в том, чтобы:
1) Сигнализировать, что команда разработчиков считает, что это уже можно использовать (т.е. выпускаем 1.0). Наверняка ведь разработчики считают, что serialization уже можно использовать?
2) Через дальнейшие версии сигнализировать «что происходит». Иными словами, главное, чтобы пользователи понимали насколько жопным будет обновление. А какая это будет версия по цифрам — не так важно.

Вот сейчас всех приучили, что минорные обновления Kotlin это норм, и все привыкли, что «новые крутые фичи» появляются в патч версиях Kotlin’а. И ничего. Но у Kotlin’а уже есть 1.0, поэтому народ более-менее готов его брать, пробовать и т.п.

И ещё, похоже, всех приучили, что «версия 1.4, 1.5 и т.п. будет выходит крайне редко, и вообще непонятно насколько сложным будет переход».



Я на эту тему беседовал с Jessica Deen (Microsoft - Helm) и Erik Veld (HashiCorp - Terraform). И Джессика знатно так проехалась по Terraform, у которого до сих пор версии в духе 0.12.25, хотя текущее API стабильно уже оочень давно.
(Пальцем в небо) Возможно у ребят из JB есть некий список фич, который они хотят сделать прежде чем 1.0 выпускать
источник

КР

Кирилл Романенко... in Kotlin Community
Подскажите пожалуйста, можно ли в таком кейсе не писать кастомный сериализатор
@Serializable
data class A<T>(val t: T)

@Serializable
object B

@Serializable
data class C(val a: A<B>)


При попытке сериализовать C падает с ошибкой, потому что сериализатор A требует дать ему сериализатор дженерика, но его не получится передать.
источник

BP

Bogdan Panchenko in Kotlin Community
Кирилл Романенко
Подскажите пожалуйста, можно ли в таком кейсе не писать кастомный сериализатор
@Serializable
data class A<T>(val t: T)

@Serializable
object B

@Serializable
data class C(val a: A<B>)


При попытке сериализовать C падает с ошибкой, потому что сериализатор A требует дать ему сериализатор дженерика, но его не получится передать.
B.serialiser(). Или что подразумевается "его не получается передать" ?
источник

КР

Кирилл Романенко... in Kotlin Community
Bogdan Panchenko
B.serialiser(). Или что подразумевается "его не получается передать" ?
val json = Json(JsonConfiguration.Stable)
val c = C(A(B))
json.toJson(C.serializer(), c)
источник

BP

Bogdan Panchenko in Kotlin Community
Кирилл Романенко
val json = Json(JsonConfiguration.Stable)
val c = C(A(B))
json.toJson(C.serializer(), c)
Ну у меня с stringify все ок
источник

I

Igor in Kotlin Community
Кирилл Романенко
val json = Json(JsonConfiguration.Stable)
val c = C(A(B))
json.toJson(C.serializer(), c)
А если поигать с Serializable(with=)
или
@ContextualSerialization
источник

BP

Bogdan Panchenko in Kotlin Community
Кирилл Романенко
val json = Json(JsonConfiguration.Stable)
val c = C(A(B))
json.toJson(C.serializer(), c)
И твой вариант работает 🌚
источник

КР

Кирилл Романенко... in Kotlin Community
Bogdan Panchenko
Ну у меня с stringify все ок
Эм. Какая версия котлина и сериализации? У меня даже на отдельном проекте для тестов этот кусок не работает.
источник

BP

Bogdan Panchenko in Kotlin Community
Кирилл Романенко
Эм. Какая версия котлина и сериализации? У меня даже на отдельном проекте для тестов этот кусок не работает.
1.72 0.20 у меня настройки немного иначе, сек
источник

КР

Кирилл Романенко... in Kotlin Community
Igor
А если поигать с Serializable(with=)
или
@ContextualSerialization
1 - это ж кастомный сериализатор, 2 - не работает.
источник

BP

Bogdan Panchenko in Kotlin Community
Кирилл Романенко
Эм. Какая версия котлина и сериализации? У меня даже на отдельном проекте для тестов этот кусок не работает.
JsonConfiguration.Stable.copy(         useArrayPolymorphism = true,         prettyPrint = true     )
источник

КР

Кирилл Романенко... in Kotlin Community
Bogdan Panchenko
JsonConfiguration.Stable.copy(         useArrayPolymorphism = true,         prettyPrint = true     )
Ничего не поменялось
источник

BP

Bogdan Panchenko in Kotlin Community
Кирилл Романенко
Ничего не поменялось
Попробуй в новом проекте, может где то косяк с зависимостями старыми (закешировались), clean build
источник

КР

Кирилл Романенко... in Kotlin Community
Bogdan Panchenko
Попробуй в новом проекте, может где то косяк с зависимостями старыми (закешировались), clean build
Нет, у меня на 2 проектах не работает. Ни в проде, ни в тестах. Клин ребилд не помогли.
источник

MG

Max Gusev in Kotlin Community
Столкнулся сейчас с проблемой неработающего полиморфизма сериализации
источник

MG

Max Gusev in Kotlin Community
Есть вот такие сериализуемые классы
источник

MG

Max Gusev in Kotlin Community
Вот так указываю полиморфность
источник

MG

Max Gusev in Kotlin Community
В клиенте тоже передаю
источник