
Quantum Harmonizer
14.03.2018
18:00:16
sam interface тут ещё не обсуждали?

Руслан
14.03.2018
18:00:49

Quantum Harmonizer
14.03.2018
18:03:40
Вообще не вижу смысла.

Google

Boris
14.03.2018
18:05:29

Andrew
14.03.2018
18:05:59
И компаньоны. И лейтинит. И делегирование реализаций интерфейсов.
Лейтинит был бы нужен, даже если бы гугл щас андроид написал на чистом котлине, из-за мудаковатого фреймворка андроида (ведро только как самый очевидный пример).
Компаньоны — не столько легаси, сколько нужда в интеропе с джавкой. Про делегирование реализаций интерфейсов не понял.

Igor
14.03.2018
18:05:59

Boris
14.03.2018
18:08:08

Quantum Harmonizer
14.03.2018
18:08:09

Руслан
14.03.2018
18:08:34
Тоже не понял почему компаньоны легаси.

Quantum Harmonizer
14.03.2018
18:08:44
А что плохого?
Появляется много фич -> потенциальные баги и сложнее парсить код.

Руслан
14.03.2018
18:09:31
То что я в джаве не смог сделать

Boris
14.03.2018
18:09:46

Andrew
14.03.2018
18:09:56

Google

Quantum Harmonizer
14.03.2018
18:10:10

Andrew
14.03.2018
18:10:20

Quantum Harmonizer
14.03.2018
18:11:12
А что с ними не так?
Опять же, Бреслав упоминал, что эта фича очень сложная. В частности — из-за двух разных реализаций дефолтных методов.

Boris
14.03.2018
18:14:15

Andrew
14.03.2018
18:14:43

Boris
14.03.2018
18:16:05

Quantum Harmonizer
14.03.2018
18:16:16

Andrew
14.03.2018
18:16:41
Жаль, что в финском заливе только один остров, через дцать лет, возможно, придётся насыпать следующий.
Ну либо в какой-то момент ломать обратную совместимость так, чтобы в итоге получить две змеи вместо одной, хехе.

Quantum Harmonizer
14.03.2018
18:18:52

Igor
14.03.2018
18:19:01

Quantum Harmonizer
14.03.2018
18:20:49

Andrew
14.03.2018
18:21:17
А compain-object ты предлагаешь заменить на топ левел функции и свойства?
Я компаньоны ни на что не предлагаю менять, я всего лишь выяснял, почему их считают легаси (выяснили, что не считают). Мне они ни нравятся, ни не нравятся — я их не использую, ибо на мой субъективный взгляд польза от них есть только в интеропе с джавкой — но это часть языка и заменять ничего не надо. Сам использую обычные объекты или топлевел, да.

Boris
14.03.2018
18:21:21

Quantum Harmonizer
14.03.2018
18:22:06
Как минимум компаньоны лучше, чем статик :)

Andrew
14.03.2018
18:22:10
Расскажите кто-нибудь конкретный юзкейс для компаньона, который экстендит что-нибудь или имплементит какой-нибудь интерфейс. Я не против их полюбить.

Boris
14.03.2018
18:22:41

Andrew
14.03.2018
18:24:07
Фабрика?
Использую топ-левел функцию с идентичным классу названием. Примерно как Channel из kotlinx.coroutines.
(https://github.com/Kotlin/kotlinx.coroutines/blob/master/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/channels/Channel.kt#L311)

Boris
14.03.2018
18:25:56
Так а если ты хочешь класс с такой фабрикой, тебе никак не поможет функция с таким же именем

Google

Andrew
14.03.2018
18:26:29
Кстати чуть выше там же в файле видно, что раньше была фабрика-компаньон. Почему заменили на топлевел — не знаю.

Boris
14.03.2018
18:27:47
Если ты принимаешь в параметр тип, который можно создать, то нет никакого прока от топлевел функции

Alexandr
14.03.2018
18:28:47
Друзья, а есть какой-то линтер/стайлчекер для котлина, который бы можно было интегрировать с ci?
Чтоб сообщал о слишком "умных" конструкциях с лямбдами и всяком таком прочем?

Andrew
14.03.2018
18:28:53
Топлевел функции разве типы не умеют принимать?
Я не исключаю, что я просто не понял конкретный юз-кейс.

Mikhail
14.03.2018
18:29:40

Andrew
14.03.2018
18:29:47

Boris
14.03.2018
18:30:18
Те ты хочешь инстанцировать экземпляр класса который тебе передали, то требуешь, чтобы компаньон имплементил фабрику и ты уже можешь создать экземпляр

Mikhail
14.03.2018
18:30:22
типа зафигачить VerifiedX, и его инстанс можно создать только с помощью функции verify

Andrew
14.03.2018
18:30:28

Alexandr
14.03.2018
18:30:52

Boris
14.03.2018
18:31:35

Andrew
14.03.2018
18:31:43

Boris
14.03.2018
18:31:58
Я не могу пример написать с тела

Andrew
14.03.2018
18:33:00
Откуда конструктор у дженерика
Человек сказал о фабрике-компаньоне для класса A, которая имеет доступ к приватному конструктору A — я ответил, что я сделаю конструктор A видимым в модуле.
У какого дженерика?
> экземпляр класса который тебе передали
Мне передают инстанс KClass или дженерик-параметр?

Boris
14.03.2018
18:34:24

Mikhail
14.03.2018
18:34:58

Boris
14.03.2018
18:35:05

Bogdan
14.03.2018
18:38:47

Google

Andrew
14.03.2018
18:38:54

Boris
14.03.2018
18:43:40

Alexandr
14.03.2018
18:47:35
У кого-то есть опыт использования корутин в "хардорных" продакшенах? С какими сложностями столкнулись?

Quantum Harmonizer
14.03.2018
18:54:26

Alexandr
14.03.2018
19:03:08
Ну хоть в каких-то)
Чат поддержки с тысячей конеекшенов или ещё что-то такое

Quantum Harmonizer
14.03.2018
19:04:35

Admin
ERROR: S client not available

Alexandr
14.03.2018
19:05:27
Ktor использовал или спринг с реактором?

Quantum Harmonizer
14.03.2018
19:05:46

Alexandr
14.03.2018
19:06:42
С ктором кстати возникли какие-то сложности?

Quantum Harmonizer
14.03.2018
19:07:20

Arsen
14.03.2018
19:31:24
Не могу понять отрывок из доков про компаньоны "Note that, even though the members of companion objects look like static members in other languages, at runtime those are still instance members of real objects". Как тогда можно обращаться к мемберам через имя класса? откуда берется инстанс?

Quantum Harmonizer
14.03.2018
19:32:22

Антон
14.03.2018
19:35:11
@Harmonizr

You
14.03.2018
19:35:32
Done.

Sergey
14.03.2018
19:53:39

Александр
14.03.2018
20:09:46
Кстати, как себя спринги ведут, все ок?

Sergey
14.03.2018
20:26:42
хорошо
вот скоро до 2го бута обновлять буду наши сервисы

Google

Sergey
14.03.2018
20:26:56
и на корутинки переводить

Bogdan
14.03.2018
21:33:29
а где голосовать ?

Quantum Harmonizer
14.03.2018
21:43:38

Тимур
14.03.2018
22:01:33
Подскажите пожалуйста, есть ли какие-нибудь русскоязычные места для общения про котлин помимо этого канала?

Руслан
14.03.2018
22:03:24
#russian в официальном слаке

Sergey
14.03.2018
22:09:51
а что там вообще в 1.3 котлине ожидать?

Bogdan
14.03.2018
22:10:39
джаву

Тимур
14.03.2018
22:11:30

Quantum Harmonizer
14.03.2018
22:11:37

Pavel
14.03.2018
22:32:23

Sergey
14.03.2018
22:32:58
не помнишь где он?

Konstantine
14.03.2018
22:43:25
А что за трули иммутабл дата?
Или может где-то есть описание всех этих вариантов?

Руслан
14.03.2018
22:43:50

Konstantine
14.03.2018
22:45:00
Спасибо.
Но я не понял, полная неизменяемость будет на val или отдельное слово? А то там только пример с классом и immutable, что насчет просто полей, вроде List'ов.

Руслан
14.03.2018
22:52:20
Понятно что не понятно как это будет работать в разных случаях, пока нету дизайна фичи