
Igor
15.08.2017
20:42:25
Один из немногих людей, у кого совпадают со мной мысли, как нужно программировать на Kotlin (Java/C#)
https://youtu.be/dGVqrGmwOAw?t=26m0s
(есть тут еще такие?)
И он кстати поддерживает что lock не желательны в языке
https://youtu.be/dGVqrGmwOAw?t=24m28s (в видео он несколько раз касается локов в java)

Михаил
15.08.2017
20:43:36

Антон
15.08.2017
21:02:53
Очередной тысячный участник

Konstantine
15.08.2017
21:57:25
Забаньте его!

Google

Konstantine
15.08.2017
21:57:43
Легенды гласили, что тысячный появится лишь с выходом котлина 2.0

Михаил
15.08.2017
22:09:17
у кого-нибудь юнит тесты на анроиде с 1.1.4 стали запускаться по минуте? просто буковку в тесте поменял и полная сборка проекта
пофикшены старые фичи, добавлены новые

Igor
15.08.2017
22:21:39

Sasha
16.08.2017
03:41:37

fedor
16.08.2017
06:41:03
добрый день. простите за дурацкий вопрос, только начал знакомиться с котлином. в тестовом задании в объявлении одного из полей класса "Sting!" именно с "!". это опечатка, или..? не могу найти что гуглить.

Kirill
16.08.2017
06:43:14
Это platform type: https://kotlinlang.org/docs/reference/java-interop.html

Михаил
16.08.2017
06:57:10

fedor
16.08.2017
06:58:38

Sergey
16.08.2017
07:47:54
Скажите, пожалуйста, а кто-нибудь вкурсе, когда в kotlin появится наследование ОТ data class?

Va
16.08.2017
08:47:43
так давно можно
ну, ладно, не давно, но с 1.1

Sergey
16.08.2017
08:49:06
Нет. Можно data class наследовать от sealed class, но нельзя от data

Google

Quantum Harmonizer
16.08.2017
08:49:57
Надеюсь, что такой отстрел ног не будет разрешён никогда.

Sergey
16.08.2017
08:51:19
Наследование - отстрел ног. Ок)))

Igor
16.08.2017
08:51:52
? (опоздал предложить композицию) data class - это не про стандартное ООП с наследованием.
И не надо все подряд делать дата классами, просто по тому что лень написать gethashcode и tostring

Quantum Harmonizer
16.08.2017
08:53:43

Igor
16.08.2017
09:00:07
Вот ведь какой-то шизоид хочет притащить из swift их реализацию checked execption
https://github.com/BenLeggiero/KEEP/blob/52f5692c997bad0c123ba71b86f4602f8bf279d0/proposals/error-handling.md

Sergey
16.08.2017
09:01:28
Да, я безусловно согласен, что композиция предпочтительнее. Тогда, пожалуйста, объясните чем плохо наследование от data class? Что плохого в том, чтобы в каком-то одном базовом классе, например, определить общие поля мапинга из json, а после их пересипользовать в дочерних классах? Это будет удобно если на сервере изменится имя поля.

Quantum Harmonizer
16.08.2017
09:02:30

Nikita
16.08.2017
09:03:56

Sergey
16.08.2017
09:05:19
Я хотел его выбрать не потому что мне лень что-либо переопределять, а потому что он предназанчен для простого хранения данных что мне собственно и необходимо.

Quantum Harmonizer
16.08.2017
09:05:42

Sergey
16.08.2017
09:06:10
“We frequently create a class to do nothing but hold data. In such a class some standard functionality is often mechanically derivable from the data. I”

Nikita
16.08.2017
09:06:13
возможно придется использовать композицию либо отказаться от использоания data класса.

Sergey
16.08.2017
09:06:17
https://kotlinlang.org/docs/reference/data-classes.html

Dmitry
16.08.2017
09:06:18

Nikita
16.08.2017
09:06:25
ну то есть что то писать таки все равно придется)

Quantum Harmonizer
16.08.2017
09:07:41

Nikita
16.08.2017
09:13:18
Кстати, сам подумай, как тебе автоматически реализовать переопределение методов equals() в иерархии классов еслиб ы она была допустима? Я думаю одна из причин в т.ч. в этом

Sergey
16.08.2017
09:16:59
Дело в том, что я намереваюсь расширять наследники полями и потому не понимаю какие могут быть проблемы с переопределяемыми методами. Они могли бы быть если бы было допустимым создавать data class без полей и просто наследоваться от data class с полями, но так нельзя.
Гм… нет?

Google

Quantum Harmonizer
16.08.2017
09:26:03

Sergey
16.08.2017
09:33:27
Так я же написал, что он предназначен для простого хранения данных
data class File(
@SerializedName("file_name") val name: String,
@SerializedName("file_path") val path: String,
@SerializedName("size") val size: Long,
@SerializedName("encoding") val encoding: String,
@SerializedName("content") val content: String,
@SerializedName("ref") val branch: String,
@SerializedName("blob_id") val blobId: String,
@SerializedName("commit_id") val commitId: String,
@SerializedName("last_commit_id") val lastCommitId: String
)
Такого, например

Руслан
16.08.2017
09:35:32

Михаил
16.08.2017
09:36:28

Sergey
16.08.2017
09:37:14
Обычный класс с полями - это data class)))

Михаил
16.08.2017
09:37:17
сделай обычный класс, переопредели при необходимости equials(), hashCode(), toString()

Quantum Harmonizer
16.08.2017
09:37:32

Михаил
16.08.2017
09:38:57

Sergey
16.08.2017
09:39:36
Да-да, спасибо про методы пре прекрасно известно. Вообщем я хотел выяснить почему не допустимо наследование для data class потому что не нашел никаких объясннеий у jetbrains
То, что наследоавние не соотвествует ЛИЧНЫМ предпочтениям некоторых не есть довод

Quantum Harmonizer
16.08.2017
09:41:25

Михаил
16.08.2017
09:41:31

Nikita
16.08.2017
09:42:14
о чем выше и сообщили. Просто попробуй сам понять как бы ты поступил в случае разрешения наследования реализации данных методов

Admin
ERROR: S client not available

Михаил
16.08.2017
09:43:33

Sergey
16.08.2017
09:51:05
А можно ссылку на Бреслава? =)

Google

Dmitry
16.08.2017
09:53:15

Sergey
16.08.2017
09:56:07
Не вижу связи=) Но было бы действительно интересно послушать, что говорит Бреслав и кроме того по-моему это может стать единственным моим аргументом перед коллегами =)

Igor
16.08.2017
09:59:44

Sergey
16.08.2017
10:41:04
@angmarr Благодарю!

Михаил
16.08.2017
11:15:19

Sergey
16.08.2017
11:15:55
Тут он приводит аргументы?

Михаил
16.08.2017
11:17:58

Sergey
16.08.2017
11:19:00
Просто я эти выступления с ним и Жемеровым раз 100 смотрел и не слышал там ничего касательно наследования от data class, но все равно спасибо

Михаил
16.08.2017
11:31:44

Sergey
16.08.2017
14:31:27
У меня возникло сомнение: какой смысл сейчас людям учить огромную и сложную бибилиотеку java.util.concurrent в то время, когда есть более удобная rxjava? Только не надо писать, что ради искусства и пр и пр и пр в таком духе.

Anton
16.08.2017
14:32:28
ну рх тоже немаленькая во первых) во вторых там по асинхронке не особо разгуляешься имхо

DarkMentat
16.08.2017
14:35:53
1. rx не только и не столько потоки, она про другое.

Ivan
16.08.2017
14:36:13

Anton
16.08.2017
14:36:28
+

Sergey
16.08.2017
14:37:12
Это тоже справедливый вопрос =)
DarkMentat это важное уточнение. Спасибо

Igor
16.08.2017
14:39:09

DarkMentat
16.08.2017
14:39:11
Имею в виду, что с потоками rx позволяет только выбрать какой именно пул когда юзать. Написанный на java.util.concurrent кстати, при чем часто кастомный

Ivan
16.08.2017
14:39:20

Михаил
16.08.2017
14:43:00
наконец этот чат перешагнул барьер в 1000 человек )

Google

Михаил
16.08.2017
14:43:19

Михаил
16.08.2017
14:43:41

Dzmitry
16.08.2017
14:44:11
Могут перефигачить же еще
если не лень переписывать