@kotlin_lang

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

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

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

Quantum Harmonizer
14.03.2018
18:08:09
А что уже придумали чем лейтинит заменить?
Ну, спикер рассказывал хитрозакрученный план, типа Delegates.nonNull, только посредством инлайн-классов.

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

Руслан
14.03.2018
18:09:31
Тоже не понял почему компаньоны легаси.
особенно с учетом что компаньены могут имплементить интерфейс и можно передавать класс у которого есть соответсвующий компаньен как реализацию интерфейса

То что я в джаве не смог сделать

Boris
14.03.2018
18:09:46
Andrew
14.03.2018
18:09:56
Компаньоны это не для интеропа, для интеропа аннотация
Не убедил. @JvmStatic вроде ж только в компаньонах можно использовать, без них интеропа бы не было, разве не так?

Google
Quantum Harmonizer
14.03.2018
18:10:10
Тоже не понял почему компаньоны легаси.
Бреслав когда-то говорил, что очень хочет их сломать. У Java-класов их нет, в интеропе боль.

Andrew
14.03.2018
18:10:20
Interface by obj
А что с ними не так?

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

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
Жаль, что в финском заливе только один остров, через дцать лет, возможно, придётся насыпать следующий.
Мне кажется, что если и будут что-то ломать, то мягко, с инструментами для миграции.

Quantum Harmonizer
14.03.2018
18:20:49
А compain-object ты предлагаешь заменить на топ левел функции и свойства?
А мне вот нравятся экстеншены к компаньонам.

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
Расскажите кто-нибудь конкретный юзкейс для компаньона, который экстендит что-нибудь или имплементит какой-нибудь интерфейс. Я не против их полюбить.

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
Топлевел функции разве типы не умеют принимать? Я не исключаю, что я просто не понял конкретный юз-кейс.

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

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

Andrew
14.03.2018
18:30:28
Boris наверное про приватный конструктор говорит
Я просто сделаю конструктор видимым в модуле.

Alexandr
14.03.2018
18:30:52
Boris
14.03.2018
18:31:35
Я просто сделаю конструктор видимым в модуле.
Откуда конструктор у дженерика

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

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

> экземпляр класса который тебе передали Мне передают инстанс KClass или дженерик-параметр?

Boris
14.03.2018
18:35:05
Bogdan
14.03.2018
18:38:47
Ну да, ты знаешь класс но не знаешь как его создать
а можно в коде (псевдо) это показать, интересненько как реализовать

Google
Andrew
14.03.2018
18:38:54
Ну да, ты знаешь класс но не знаешь как его создать
Черкани по свободе пример, я правда туго соображаю.

Прошу прощения, я почему то подумал что это мне ответ
Общаться с телефона — такое себе удовольствие, я тебя понимаю :) С удовольствием вернусь к этому вопросу завтра.

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

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
Ktor использовал или спринг с реактором?
спринг реактор с корутинами)

Александр
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
а что там вообще в 1.3 котлине ожидать?
Релиз корутин, экспериментальные инлайн-классы. Улучшенное выведение типов. Возможно, контракты.

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
Понятно что не понятно как это будет работать в разных случаях, пока нету дизайна фичи

Страница 583 из 982