
Andrew
04.10.2018
09:45:29
Сообщение об ошибке бы.

Quantum Harmonizer
04.10.2018
09:45:30

Alexander
04.10.2018
09:45:39
ext.kotlin_version = '1.3.0-rc-116'

Жабра
04.10.2018
09:46:33

Google

Alexander
04.10.2018
09:46:34
не вижу в этом проблемы
Я вижу большую проблему в обратном. Котлин не обязывает указывать типы там, где это "очевидно"

eshch
04.10.2018
09:46:55
не вижу в этом проблемы
проблема в том, что котлин борется за краткость в том числе. если вам нравится указывать типы, то большинству нет. избыточность не означает ясность.

Quantum Harmonizer
04.10.2018
09:47:05

Alexander
04.10.2018
09:47:14
Да не правда это. Не за краткость, а за лаконичность.

Andrew
04.10.2018
09:47:26

eshch
04.10.2018
09:47:37

Alexander
04.10.2018
09:47:49
pluginManagement {
repositories {
maven { url = 'http://dl.bintray.com/kotlin/kotlin-eap' }
mavenCentral()
maven { url = 'https://plugins.gradle.org/m2/' }
}
}
buildscript {
ext.kotlin_version = '1.3.0-rc-116'
repositories {
jcenter()
maven {
url = "http://dl.bintray.com/kotlin/kotlin-eap"
}
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
}
}

Egor
04.10.2018
09:47:56
Ну, в котлине вообще говоря сейчас идеальный вывод типов

Quantum Harmonizer
04.10.2018
09:47:59

Alexander
04.10.2018
09:48:24
plugins {
id 'org.jetbrains.kotlin.jvm'// version '1.3.0-rc-116'
}

eshch
04.10.2018
09:48:50

Alexander
04.10.2018
09:49:00

Andrew
04.10.2018
09:49:38
Ну и в корневом build.gradle
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.0-rc-116' apply false
}

Google

Alexander
04.10.2018
09:49:52
Я бы сказал, что везде, где есть малейшая возможность двусмысленности, надо писать явно
Там есть путанница в том, где версия определяется, в сеттингах, в корневом модуле или в дочерних модулях. Я когда собирал методом перебора нашел работающий вариант

OlegKrikun
04.10.2018
09:50:56
а не всё ок, у него всё покраснело ??

Жабра
04.10.2018
09:50:57


Andrew
04.10.2018
09:51:18

Alexander
04.10.2018
09:51:24
Так надо в билдскрипте репозиторий прописать. Иначе плагин не находит

Quantum Harmonizer
04.10.2018
09:51:26


Жабра
04.10.2018
09:51:50

eshch
04.10.2018
09:51:58

Quantum Harmonizer
04.10.2018
09:52:01

Andrew
04.10.2018
09:52:36

Жабра
04.10.2018
09:52:53

Quantum Harmonizer
04.10.2018
09:53:08

eshch
04.10.2018
09:55:13

Egor
04.10.2018
09:55:52
кстати насчет Multiple Dispatch - кто-нибудь поминал, нет, в Котлин завезут? Или не нужен?

Alexander
04.10.2018
09:56:05
А он как бы уже есть

Quantum Harmonizer
04.10.2018
09:56:06
буквально вчера думал о том, что можно сделать await и обязать писать его

Alexander
04.10.2018
09:56:33
Глобавльные функции - это и есть multiple dispatch

eshch
04.10.2018
09:56:47
но я еще не понел (может потом пойму) почему саспенд метод не возвращает просто какой-нибудь тип, значение которого можно сохранить, а можно на него сделатб await и ждать.

Alexander
04.10.2018
09:57:20

Google

eshch
04.10.2018
09:57:31

Quantum Harmonizer
04.10.2018
09:58:14

Andrew
04.10.2018
09:58:30
Мне прям нравится подход чувака, докладывающегося про Gradle — он подправил build.gradle, потом он его переименовал в .kts, а дальше он пытается собрать из терминала и общеизвестные ошибки объясняет и исправляет. Как это делать новичкам — фиг знает.

Alexander
04.10.2018
09:58:36
Все асинхронные функции возвращают Deferred. Можно его как есть брать, можно await-нуть

Quantum Harmonizer
04.10.2018
09:59:00

Alexander
04.10.2018
09:59:09
Ну хорошо, не все.

Quantum Harmonizer
04.10.2018
09:59:32
они не асинхронные, если они возвращают deferred

eshch
04.10.2018
09:59:34
оке почитаю дальше, а то я тока понаслышке тока слышал.

Руслан
04.10.2018
09:59:55
Кроме тех что fire and forget

Alexander
04.10.2018
10:02:12

Quantum Harmonizer
04.10.2018
10:02:28

Andrey
04.10.2018
10:02:50

Alexander
04.10.2018
10:03:00
Хорошо, понял, немного про разные вещи говорим. Но на суспенд функцию саму по себе await-то никто не навешивает

Egor
04.10.2018
10:05:04
Хорошо, пока не не слишком много

Quantum Harmonizer
04.10.2018
10:05:34

Andrey
04.10.2018
10:06:18

Google

Egor
04.10.2018
10:08:16
хорошо, пока <= 0
Даже в джаву пихают var, потому что постоянно все явно писать невозможно. Чем плохи 2, 3 имплисита на класс, которые позволят уменьшить количество кода?

OlegKrikun
04.10.2018
10:09:07

Quantum Harmonizer
04.10.2018
10:09:20

Bogdan
04.10.2018
10:11:46

Egor
04.10.2018
10:12:32
тем что ревьювить сложнее? =)
Тайп-классы обычно чистые, один раз написал функционал, протестировал и забыл, плюс они семантически полноценны, то есть посмотрел на одно название и понял, зачем. Соответственно, если у вас в классе что-то использует имплисит, то вам достаточно посмотреть на тип чего-то, что использует тайпкласс, чтобы понять, какой имплисит используется

Igor
04.10.2018
10:15:11

Quantum Harmonizer
04.10.2018
10:15:18

Admin
ERROR: S client not available

Igor
04.10.2018
10:17:56
Ну hello-word там не сложнее котлина ?

Andrey
04.10.2018
10:18:33

Egor
04.10.2018
10:18:40

Alexandr
04.10.2018
10:19:28

Alexey
04.10.2018
10:20:15

Alexandr
04.10.2018
10:20:16
стоит посмотреть на гредл с груви, после переписывания скрипта никогда не знаешь запустится ли

Alexey
04.10.2018
10:21:52

Alexandr
04.10.2018
10:24:39

Alexander
04.10.2018
10:25:48
Груви- это на самом деле очень хороший пример. Там наступили на насколько граблей, на которые второй раз наступать не надо.
В то числе трейты

Egor
04.10.2018
10:26:34

Google

Egor
04.10.2018
10:26:53
Типы всё еще можно проверять на этапе компиляции
Скала разве так не делает? Я просто со Скалой мало знаком

Alexander
04.10.2018
10:28:14
Люди, которые знакомы с имплиситами в скале часто плюются на них со страшной силой.

Alexandr
04.10.2018
10:28:16
ну либо без бутылки

Egor
04.10.2018
10:29:03
а, ну без IDE я вообще не знаю, как люди на джаве/котле пишут
Как минимум, из-за импортов

Alexander
04.10.2018
10:30:02
Ну так и на питоне без импортов никуда, и как-то пишут
Зависит от того, что писать

Alexey
04.10.2018
10:31:55
Вобщем то в любом более менее большом проекте без ide не разберёшься

Igor
04.10.2018
10:34:34

Egor
04.10.2018
10:35:22

Igor
04.10.2018
10:35:56
Я когда смотрю его код в reactive-property, тоже не комфортно себя чувствую ?

Eugeny
04.10.2018
10:35:58
Корутины умеют в реактивные источники данных? То есть есть реактивный драйвер монги или webfluxовый webClient. Можно событие из реактивной пайпы получить корутиной? Только без блокирующего вызова .block() в suspend функции

Igor
04.10.2018
10:36:49
https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/channels.md

Alexey
04.10.2018
10:36:53
ответ каналы видимо
да

Eugeny
04.10.2018
10:37:02
Спасибо

Andrew
04.10.2018
10:38:05
Можно глянуть на существующие — они довольно простые под капотом, нужно просто подписаться на асинхронные события и выдать на основании этой подписки собственноручно созданную корутину.