Size: a a a

Programming Offtop

2020 October 14

I

Ilmir in Programming Offtop
Mikhail Levchenko
Да датаклассы вообще маркетинговая фича. Их только на слайдах джавистам показывают, а никто в реальности не использует
Тогда вопрос: почему? Что мешает?
источник

с#

саша сок #KotlinGang... in Programming Offtop
Mikhail Levchenko
Да датаклассы вообще маркетинговая фича. Их только на слайдах джавистам показывают, а никто в реальности не использует
хз я их везде где можно юзаю. хотя деструктуризацию избегаю, потому что можно даже не заметить баг
источник

I

Ilmir in Programming Offtop
Mikhail Levchenko
Эх, сейчас бы POJO наследовать друг от друга в 2к20, 19 лет спустя первого издания  Effective Java
Я, наверное, неверно выразился. Дейта классы - это не только POJO, вот это я имел в виду.
источник

BP

Bogdan Panchenko in Programming Offtop
саша сок #KotlinGang
хз я их везде где можно юзаю. хотя деструктуризацию избегаю, потому что можно даже не заметить баг
+
источник

U

Unat in Programming Offtop
Mikhail Levchenko
Приведи пример
В общем, у меня часто встречалось такое, что у разных экранов есть одинаковые куски состояния, которые одинаково обрабатываются, но вот написать общую для них функцию не выходило - интерфейсы не дают copy, а наследования нету
источник

Kd

Konstantin dmz9 in Programming Offtop
саша сок #KotlinGang
хз я их везде где можно юзаю. хотя деструктуризацию избегаю, потому что можно даже не заметить баг
и копирование неглубокое, тоже бессмысленно
источник

Kd

Konstantin dmz9 in Programming Offtop
в итоге получается они бесполезны
источник

с#

саша сок #KotlinGang... in Programming Offtop
Mikhail Levchenko
Приведи пример
data class User (
   ...
)

data class AdminUser (
   
) : User
источник

U

Unat in Programming Offtop
Konstantin dmz9
и копирование неглубокое, тоже бессмысленно
Вот с копированием проблем нету, когда всё иммутабельное
источник

с#

саша сок #KotlinGang... in Programming Offtop
саша сок #KotlinGang
data class User (
   ...
)

data class AdminUser (
   
) : User
но вполне логично, что нельзя наследоваться, потому что в конструкторе не может не-val параметров.

тут только override, но как бы проперти может быть не open
источник

(

( in Programming Offtop
саша сок #KotlinGang
data class User (
   ...
)

data class AdminUser (
   
) : User
data class User(...)

data class AdminUser(val user: User, ...)
источник

AG

Alexander Gorodok in Programming Offtop
(
data class User(...)

data class AdminUser(val user: User, ...)
Можно ещё дальше пойти. data class User (
   ...
   Role role (admin)
)
источник

с#

саша сок #KotlinGang... in Programming Offtop
Unat
Вот с копированием проблем нету, когда всё иммутабельное
ну а если мутабельные параметры

val company = Company(User(1))
val company2 = company.copy()

company.user.id = 2

company.user.id // 2
company2.user.id // 2
источник

(

( in Programming Offtop
У меня лично руки трясутся, когда я пишу не-дата класс
источник

с#

саша сок #KotlinGang... in Programming Offtop
Alexander Gorodok
Можно ещё дальше пойти. data class User (
   ...
   Role role (admin)
)
ну не, это ж пример просто. у админа могут появляться параметры дополнительные и хотелось бы делать

if(user is AdminUser) {
    println(user.title)
    println(user.power)
}

с non-null полями
источник

с#

саша сок #KotlinGang... in Programming Offtop
(
У меня лично руки трясутся, когда я пишу не-дата класс
плюсую. когда класс хранит данные и он не дата - страшно
источник

Kd

Konstantin dmz9 in Programming Offtop
карго культ
источник

U

Unat in Programming Offtop
саша сок #KotlinGang
ну а если мутабельные параметры

val company = Company(User(1))
val company2 = company.copy()

company.user.id = 2

company.user.id // 2
company2.user.id // 2
Тогда печально, чо
источник

DE

Denis Egorov in Programming Offtop
саша сок #KotlinGang
ну не, это ж пример просто. у админа могут появляться параметры дополнительные и хотелось бы делать

if(user is AdminUser) {
    println(user.title)
    println(user.power)
}

с non-null полями
можно имплементить интерфес, а не наследовать класс. В котлин уже такое доступно
источник

(

( in Programming Offtop
Alexander Gorodok
Можно ещё дальше пойти. data class User (
   ...
   Role role (admin)
)
ой бля, флажки эти, как будто на жаббе пишем
источник