@kotlin_lang

Страница 436 из 982
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 вот этот

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

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
Почему нет правила называть переменные типа val через верхний регистр если это аналог final в джаве? По идее же во всех языках константы всегда принято верхним регистром называть
Потомучто это будет поле класса, чтобы студия не ругалась на верхний регистр в название, выноси или в companion object или делай top level

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
какой вариант лучше? этот или тот который вместе с trim?
хармонизер самый быстрый предложил

с тримом самый красивый имхо

Quantum Harmonizer
30.11.2017
16:30:53
хармонизер самый быстрый предложил
не уверен, можно же придумать упоротых трюков без ветвления :)

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
там ветвление, как и у меня)
с when витвление красивее выглядит

Vitalii
30.11.2017
16:33:07
Dibro
30.11.2017
16:37:43
там ветвление, как и у меня)
что-то не могу понять как ещё можно тогда...

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 разных класса не хочется

хочеться абстракции

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
Я тут вчера мимолётно видел, что синглетоны в котлине не круто юзать? А как жить без них?

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

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

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. Хотя и тут это не всегда плохо, если в них нет логики и они протестированы интеграционнымм-тестамм

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
Igor
30.11.2017
20:50:08
Тут дело не в тестировании, а в зависимости на реализацию.
Это не так уж и плохо, если там нет логики. PS сегодня кстати был митап функциональщиков. Там очередной раз подтвердили что impure функции это норм.

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

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

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