
Sasha
30.11.2017
08:08:28

Viktor
30.11.2017
08:13:01
Котаны, кто-нибудь использовал Котлин как замену JS?

Sergey
30.11.2017
08:43:24
использовал

Viktor
30.11.2017
09:08:13

Google

Sergey
30.11.2017
09:14:11
проблем с производительностью не замечал. изначально были проблемы с размером stdlib, но выход dce их решил
вторая проблема была с "watch" режимом (чтобы через webpack hmr быстро собиралось и обновлялось на лету), но и их вот только решили
последний таск буквально несколько минут назад закрыли )
https://youtrack.jetbrains.com/issue/KT-20210#tab=Comments
вот этот

Viktor
30.11.2017
09:14:51

Sergey
30.11.2017
09:15:09
нет, в последних версиях все очень локанично

Viktor
30.11.2017
09:15:53

Sergey
30.11.2017
09:17:45
но вот мой вопрос выше (про компилятор) был в том числе про js
сейчас там фактический нет никаких оптимизаций. вот если подключат IR и оптимизации от Kotlin/Native то должно стать намного лучше
сейчас хорошо бы прогонять код дополнительно через Closure Compiller

אֵלִיָּהוּ ??
30.11.2017
15:52:31
Почему нет правила называть переменные типа val через верхний регистр если это аналог final в джаве? По идее же во всех языках константы всегда принято верхним регистром называть

rjj
30.11.2017
15:53:17
В джаве верхний регистр для static final

Abbas
30.11.2017
15:53:26
регистр только для файнал статик

Elena
30.11.2017
16:12:09
Ребят, есть какойто быстрый способ сделать обертку над классом и продублировать проперти аггрегированного объекта? я делаю так:
class WalkingBehaviour {
var walking = false
}
class Player {
val walkingBehaviour = WalkingBehaviour()
var walking = false
get() = walkingBehaviour.walking
}
это нормально?

Лёша
30.11.2017
16:16:47

Aleksandr
30.11.2017
16:19:07
Ребята подскажите пожалуйста

Google

Aleksandr
30.11.2017
16:19:17
как это написать проще?
нутром чувствую что иметь null safety и юзать тут if не совсем верно

Dibro
30.11.2017
16:21:55
можно listOf(getFirstName(), getLastName()).filterNotNull().joinToString(" ")

Aleksandr
30.11.2017
16:24:51
как-то нет там фильтра

Dibro
30.11.2017
16:25:26
или "${getFirstName() ?: ""} ${getLastName() ?: ""}".trim()

Quantum Harmonizer
30.11.2017
16:26:10
эмм, зачем геттеры, если есть property?

Лёша
30.11.2017
16:26:15
(getFirstName() ?: "") + " " + (getLastName() ?: "")
И затримить

Aleksandr
30.11.2017
16:26:24
у меня не весь проект на котлине

Лёша
30.11.2017
16:26:31
О, выше уже написали

Quantum Harmonizer
30.11.2017
16:26:47
firstName + lastName == fullNumber? O_o

Aleksandr
30.11.2017
16:26:56
то такое
fullName конечно

Quantum Harmonizer
30.11.2017
16:28:26
when {
firstName == null && lastName == null -> null
firstName == null -> lastName
lastName == null -> firstName
else -> "$firstName $lastName"
}

Aleksandr
30.11.2017
16:29:10
какой вариант лучше? этот или тот который вместе с trim?

Dibro
30.11.2017
16:29:47
с тримом самый красивый имхо

Quantum Harmonizer
30.11.2017
16:30:53

Dibro
30.11.2017
16:31:18

Aleksandr
30.11.2017
16:31:30
спасибо парни

Vitalii
30.11.2017
16:31:35
С when самое читабельное.

Google

Quantum Harmonizer
30.11.2017
16:31:37

Aleksandr
30.11.2017
16:32:02

Vitalii
30.11.2017
16:33:07

Dibro
30.11.2017
16:37:43

Kirill
30.11.2017
16:38:14

Quantum Harmonizer
30.11.2017
16:38:50

Aleksandr
30.11.2017
16:43:00
парни теперь еще один небольшой вопрос

Kirill
30.11.2017
16:43:00

Aleksandr
30.11.2017
16:43:42
ка сделать так чтоб метод в телом из интрфейса, не нужно было переопределять в java классе которые его имплементирует?
я ожидал что будет чтот-то типа default метода в интрфейсе как из 8 джавы

Kirill
30.11.2017
16:44:44
А просто метод написать с телом нельзя?

Kirill
30.11.2017
16:44:58
В котлин интерфейсе

Aleksandr
30.11.2017
16:45:24
из-за кривой реализации прошлого разработчка, у меня заваедено несколько однотипных объектов
ну типа у все есть fullname который состояит из last и first name
копипсасить это в 3 разных класса не хочется
хочеться абстракции

Quantum Harmonizer
30.11.2017
16:47:00

Aleksandr
30.11.2017
16:47:16
хм

Quantum Harmonizer
30.11.2017
16:48:12
А как бы тут сделал?
Обернуть объект. Реализовать тот же интерфейс, который реализует аггрегированный объект. Шаблон «Декоратор». В Котлине для этого даже делегирование есть.

Google

Admin
ERROR: S client not available

Руслан
30.11.2017
19:18:05
хм
Все верно, нужно 8ку прописать как таргет, а так вообще warning должен быть. Но это на 1.2 версии

Aleksandr
30.11.2017
19:18:43
Спасибо я попробую

Quarx2k ?
30.11.2017
20:27:08
Я тут вчера мимолётно видел, что синглетоны в котлине не круто юзать?
А как жить без них?

Igor
30.11.2017
20:31:17

Quarx2k ?
30.11.2017
20:32:14
А я не видел. Можешь повторить?
Да кто-то говорил, что синглетоны зло. Я может не так понял.
Просто вот первый день на котлине чето делаю и нужен синглетон с переодической таской.
Думал, может тут чё круче есть))

Vitalii
30.11.2017
20:35:08
Хотя, это зависит от того, что понимать под синглтоном.
Если нужен сингл инстанс, но с ограниченным доступом, то норм.

Quantum Harmonizer
30.11.2017
20:37:28

Quarx2k ?
30.11.2017
20:38:34

Quantum Harmonizer
30.11.2017
20:38:54

Quarx2k ?
30.11.2017
20:38:56
У меня очень много синглетонов в джаве и хз как жить без них
Это же получается либо статики делать, либо хз

Quantum Harmonizer
30.11.2017
20:39:57

Quarx2k ?
30.11.2017
20:41:30
А как тогда например реалзмовать такую вещь.
Есть синглетон который следит, если появилось чего на загрузку данных на сервер. Если есть, то создаёт очередь и потихоньку выгружает в фоне.

Igor
30.11.2017
20:42:47
нет, статики — те же костыли
Подожи, это если у них есть стейт и он не pure-functions.
Хотя и тут это не всегда плохо, если в них нет логики и они протестированы интеграционнымм-тестамм

Quantum Harmonizer
30.11.2017
20:44:27

Quarx2k ?
30.11.2017
20:45:18

Quantum Harmonizer
30.11.2017
20:45:50

Google

Quarx2k ?
30.11.2017
20:46:12
Ну переодическиц процесс же должен где-то висеть и мониторить

Andrew
30.11.2017
20:48:18
Берёте синглтон и превращаете его в обычную сущность, жизненный цикл которой не превышает жизненный цикл Application / main() / etc. Уже не глобальный синглтон, который невозможно тестировать, но всё ещё живёт в одном экземпляре.

Quantum Harmonizer
30.11.2017
20:49:44

Quarx2k ?
30.11.2017
20:50:07

Igor
30.11.2017
20:50:08

Andrew
30.11.2017
20:50:26
Грубо говоря, сам класс не должен думать о том, что он синглтон. Об этом должен думать тот, кто его создаёт.

Quarx2k ?
30.11.2017
20:50:54
Апликейшен хранит и создаёт их