@kotlin_lang

Страница 349 из 982
Vitalii
28.09.2017
09:46:31




Igor
28.09.2017
09:57:38
макось ?
Поставь себе др телеграм (который 3.2), у меня все ОК https://i.gyazo.com/32c18e31a8c8347188ed8046a99b7c40.png

Google
Igor
28.09.2017
09:58:31
У меня который первый в списке https://i.gyazo.com/bfa15dc81a30b50d8988b98ae426b177.png

Meent
28.09.2017
09:59:47


Igor
28.09.2017
10:07:13
Кто-нибудь пробовал https://github.com/kategory/kategory на Android (или вообще)? Там annotation-processing юзается, не было с ним проблем?

Sergey
28.09.2017
10:47:35
какой самый элегантный способ запустить в пуле из N тредов M задач, дождаться выполняния, закрыть тредпул и получить все результаты в массиве?

как-то не оч, наверное ж есть более вменяемый способ? val pool = newFixedThreadPool(n) val futures = jobs.map { supplyAsync({ doJob(it)}, pool) } pool.shutdown() val results = futures.map { it.join() }

или запилить утильную функцию, которая скроет весь этот фарш?

Sergey
28.09.2017
10:55:31
все равно тредпул закрывать придется

Sergey
28.09.2017
10:56:57
Если на N как-то пофиг, то есть commonPool
там сетевые операции с большим ожиданием, заблокируют нафиг общий пул)

ну и нужно throughput контролировать

Руслан
28.09.2017
10:57:53
Так а асинхронно нельзя эти задачи сделать?

Google
Руслан
28.09.2017
10:58:09
или там только блокирование, только хардкор?

Sergey
28.09.2017
10:58:32
хардкор

Igor
28.09.2017
11:04:54
все равно тредпул закрывать придется
А зачем его кстати закрывать, там же у пулов есть параметр “через сколько убивать потоки”.

Sergey
28.09.2017
11:07:46
А зачем его кстати закрывать, там же у пулов есть параметр “через сколько убивать потоки”.
да наверное стоит сделать тредпул общим для сервиса, только с idle и corePoolsize нулевым

whalemare
28.09.2017
13:57:10


Смотрите как умею



Anton
28.09.2017
13:57:46
я не понял

whalemare
28.09.2017
13:57:51
Хотел замапить каждый элемент в новый, но получилось замапить все в последний. где я ошибся

Anton
28.09.2017
13:57:52
evaluate expression умеешь?

whalemare
28.09.2017
13:58:32
evaluate expression умеешь?
не)) выше описал свои жеские алгоритмические трюки, уже глаза замылились не вижу где ошибся

тут дело кстати с енумом идет, может из-за этого?



Нда, если мапить в объект обычный то все окей

Igor
28.09.2017
14:01:23
Нафиг тебе там вообще ретурн, криво же смотрится

whalemare
28.09.2017
14:01:36
ну я для явности

Quantum Harmonizer
28.09.2017
14:02:54
Что за Series.COMMON?

ну я для явности
можно тогда использовать обычные функции вместо лямбд: fun(index: Int, element: T) { ... return ... }

whalemare
28.09.2017
14:04:14
Что за Series.COMMON?
Константа енумовская, или как это правильно называется. в общем класс внутри енума. ща попробую

Quantum Harmonizer
28.09.2017
14:04:51
Константа енумовская, или как это правильно называется. в общем класс внутри енума. ща попробую
А почему ты можешь присвоить в его свойства? Enum должен быть иммутабельным.

Google
Dmitry
28.09.2017
14:05:05
Константа енумовская, или как это правильно называется. в общем класс внутри енума. ща попробую
и каким образом ты хочешь получить разные варианты одной константы?

Igor
28.09.2017
14:05:15
Константа енумовская, или как это правильно называется. в общем класс внутри енума. ща попробую
А чего ты ждал? Ты же одно и тоже по ссылки копируешь N раз, здесь тебе не C#

whalemare
28.09.2017
14:06:52
ааааааааааа

я все понял, вот так и бывает. спасибо парни

т.е. если енум константы это статики, то меняя что-то в одной части приложения оно изменится и в другой?

whalemare
28.09.2017
14:16:06
нда, надо подтянуть теоретическую часть..

Sergey
28.09.2017
20:54:44
https://spring.io/blog/2017/09/28/spring-framework-5-0-goes-ga там релиз был, с активной поддержкой котлина

https://twitter.com/sdeleuze/status/913680678780391424

Руслан
29.09.2017
10:04:44
https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-2-beta-is-out/ #multiplatform #array_literals

Sergey
29.09.2017
10:06:44
expect/actual выглядит своеобразно

Aliaksei
29.09.2017
10:08:39


Roman
29.09.2017
10:09:54
Упс, ща пофикшу

Igor
29.09.2017
10:13:17
Эх, сделали бы они expect/actual год назад - сильно бы уростило написание кросплатформенных игр на libgdx

Nikita
29.09.2017
10:15:52
ухты - вот это интересно) (::file.isInitialized)

Igor
29.09.2017
10:17:14
Ну такое, жили же как-то без этих костылей. Передаешь все в конструктор и бед не знаешь.

Nikita
29.09.2017
10:18:11
если так рассуждать то можно дойти до того что котлин один большой костыль)

Anton
29.09.2017
10:18:21
Не костыль а сахар

Sergey
29.09.2017
10:20:02
опять вы за свое

Google
Igor
29.09.2017
10:20:54
А вот метод-референсы без this:: это хорошо, буду еще больше обмазываться

Quantum Harmonizer
29.09.2017
10:23:07
> Nested classes inside enum entries о, какая наркомания

? animufag ?
29.09.2017
11:31:37
ухты - вот это интересно) (::file.isInitialized)
как-то не очень хорошо использовать референсный синтаксис там где референсов по сути нет

? animufag ?
29.09.2017
11:32:51
да наверное

Quantum Harmonizer
29.09.2017
11:32:57
Просто в Котлине :: используется для околорефлективных вещей.

? animufag ?
29.09.2017
11:34:35
ну ок. https://youtrack.jetbrains.com/issue/KT-15667 как теперь передать метод без this?

? animufag ?
29.09.2017
11:35:44
внимательно

а понял. видимо класс прописать

Igor
29.09.2017
11:38:50
как-то не очень хорошо использовать референсный синтаксис там где референсов по сути нет
А почему нет, мы же и сейчас можем юзеть все фичи method-ref для пропертей как для методов fun execute(f: () -> String): Unit = TODO() class Example { fun func(): String = TODO() lateinit var prop: String } val e = Example() println(e::func.isAbstract) println(e::prop.isAbstract) execute(e::func) execute(e::prop)

? animufag ?
29.09.2017
11:40:09
чем тебе int не угодил)

ну я не знал что есть isAbstract

Igor
29.09.2017
11:40:39
Его нельзя сделать lateinit ?

? animufag ?
29.09.2017
11:40:45
да и вообще не знал что там методы какие то есть

как будто у e::func есть какой-то скрытый тип

вообще не нравится эта движуха по импрувам смарткастов

больше неявной магии

Dmitry
29.09.2017
12:02:31
Вот в этом и беда котлина, нельзя новых людей накатить в язык сразу без джавы, и почему? Потому что интероп наше все)
Это беда джава машины - спецификации на многопоточное поведение байткода ведь нет, JMM существует только для языка джава и т.п.

Sergey
29.09.2017
12:03:19
прикольно наверное перечитывать неделю сообщений

Google
Руслан
29.09.2017
12:12:28
Ну всмысле ты пишешь код на котлине, руководствуясь jmm

Dmitry
29.09.2017
12:13:35
Я просто открыл чат там где последний раз читал его, лень было скролить к концу -)

Ну всмысле ты пишешь код на котлине, руководствуясь jmm
Чтобы руководствоваться джава моделью, надо хорошо представлять в какой байткод этот код на котлине превратиться и как его можно было бы представить на джаве.

Руслан
29.09.2017
12:15:14
Окей, берём корутины и пишем под жвм :)

Dmitry
29.09.2017
12:15:28
Я корутины в прод завез и да, это большая проблема. Фактически сейчас у нас просто запрет на работу с мутабельными состояниями в корутинах.

Это к тому, что если человек заходит в котлин без знания джавы, то ему всё равно придется ее учить.

Руслан
29.09.2017
12:16:11
Почему, делаем там мьютекс или синглтред

И спокойно мутируем не зная про джмм

Dmitry
29.09.2017
12:17:00
ну да, если корутина в главном потоке, то да. Но нам такое не нужно. По крайней мере я юзкейсов не вижу.

Руслан
29.09.2017
12:17:32
Ну или акторы/каналы

Dmitry
29.09.2017
12:17:42
Для меня это простой способ вычисления в бекграунд закинуть, при этом оставляя декларативный код

Не знаю как заюзать каналы, но акторы точно потребуют изменения архитектуры приложения, это на существующем проекте имхо делать смысла нет

Руслан
29.09.2017
12:25:34
Ну да, понятное дело. Но если у тебя есть проект то значит ты уже на джаве умеешь писать :)

Dmitry
29.09.2017
12:26:51
У меня проект на котлине. Но я вынежден знать джаву для работы с многопоточностью, если захочу использовать там мутадельные проперти.

Я еще я должен знать JMM, которую я на самом деле скорее не знаю -) А мои коллеги наверное даже не читали ее.

Dmitry
29.09.2017
12:28:49
Чтобы анимации перехода между экранами не лагали

т.е. для меня многопоточность = вынести вычисления из UI потока в какой-нибудь другой.

Mi
29.09.2017
12:34:12
Это ж асинхронность

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