@kotlin_lang

Страница 783 из 982
Egor
31.07.2018
10:48:11
Выглядит как сарказм, но буду думать, что все и вправду хорошо Спасибо за ответы
Чтобы убрать сомнения, добавлю от себя - да, отлично работает, радуюсь что в моей жизни больше нет джавы, но есть спринг и котлин

Konstantin
31.07.2018
11:35:20
кто нибудь знает есть ли в линте идеи/андроид студии проверка на уровень языка? заюзал у Map::getOrDefault, а он только с версии 1.8 java, и бросает исключение NoSuchMethodError (android)

код вообще на котлине, но никаких варнингов не увидел

Alexandr
31.07.2018
11:37:38
так ты в проекте выстави уровень jvm

Google
Alexandr
31.07.2018
11:38:21
configure<JavaPluginConvention> { sourceCompatibility = JavaVersion.VERSION_1_8 } tasks.withType<KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }

это kts, если надо думаю в груви перепишешь

Roman
31.07.2018
11:45:18
Как сделать копию observableList ? myList.toList() ? и как проверить ссылку у переменной ?

Mikhail
31.07.2018
11:58:47
но вообще печалька конечно, я так недавно с map::forEach проебался

Konstantin
31.07.2018
11:59:48
я человек простой

нажимаю ctrl+пробел и ищу подходящий метод по названию

Konstantine
31.07.2018
12:02:37
Усложняйся, эволюционируй.

Dmitriy
31.07.2018
13:16:41
А что у котлина(jvm) нет отладчика для atom\vscode?

Igor
31.07.2018
13:22:46
Зачем, когда есть легкая и быстрая IDEA ?

Dmitriy
31.07.2018
13:25:09
Я так понимаю вы хотели сказать - нет, нету

Igor
31.07.2018
13:26:37
Ага, не было, нет и не будет ?‍♀️

Kirill
31.07.2018
13:26:43
Зачем, когда есть легкая и быстрая IDEA ?
"лёгкая и быстрая" - криваярожа.жпг

Google
Bogdan
31.07.2018
13:37:18
А что у котлина(jvm) нет отладчика для atom\vscode?
Я тебе скажу писать в атоме на котлине будет не просто, не то что бы отлаживать

Kirill
31.07.2018
13:38:23
Bogdan
31.07.2018
13:39:47
Для vscode есть чисто jvm debugger
А в идеа дебагер свой, обычный или "подкрученый"?

Axrorxo'ja
31.07.2018
13:41:04
Добрый день это правильно если я должен каждый 5 секунд должен зделать запрос job = launch(UI) { while (isActive){ liveData.postValue(loadMessages()) delay(5, TimeUnit.SECONDS) } }

Axrorxo'ja
31.07.2018
13:44:02
loadMessages() два раза вызывается целенаправленно?
ммм да эта была ошибка ,спасиба

Andrew
31.07.2018
13:44:32
Сам loadMessages() внутри уходит в контекст какого-нибудь фонового потока?

Vladislav
31.07.2018
13:45:18
подскажите какую ORM лучше использовать совместно с ktor для микросервисов?

Андрей
31.07.2018
13:45:19
не?

Bogdan
31.07.2018
13:45:21
Мне норм, отладчика не хватает
Там ведь не подсказывает expresion функции, или запилили ?

Андрей
31.07.2018
13:45:52
нет, делать запросы каждые пять секунд — неправильно
тестовое задание в революте вообще каждую секунду, например

Andrew
31.07.2018
13:46:19
а потом
можно сделать чёт в духе launch(UI) { val data = withContext(CommonPool) { getData() } postDataToUi(data) }

Андрей
31.07.2018
13:46:38
можно сделать чёт в духе launch(UI) { val data = withContext(CommonPool) { getData() } postDataToUi(data) }
да, но бесконечный цикл лучше в коммон пуле держать

Axrorxo'ja
31.07.2018
13:47:22
нет, делать запросы каждые пять секунд — неправильно
проста я должен проверить есть ли новый сообщения , или эта лучше через socket надо делать

Google
Andrew
31.07.2018
13:48:07
Есть подозрение, что фиолетово, где его держать, всё равно почти всё время будет проводиться либо в ожидании delay(), либо в ожидании результата из коммонпула.

Dmitry
31.07.2018
13:48:51
проста я должен проверить есть ли новый сообщения , или эта лучше через socket надо делать
см MQTT или что-то подобное, чтобы свои костыли на сокетах не городить. Но да, через пуши надо делать, а не пуллами.

andrey
31.07.2018
13:48:52
Всем привет! Народ, что скажите про kwery? насколько он хорошо совмещается с ktor? насколько это полноценная замена hibernate?

Axrorxo'ja
31.07.2018
13:49:03
а почему там UI, правильнее же CommonPool
имейте виду эта оптимально, проста я не понял вчем разница между launch() и withContext() здесь

Quantum Harmonizer
31.07.2018
13:50:13
Это не огромный магический монстр вроде хибера, это очень простая и понятная штука.

Андрей
31.07.2018
13:51:30
имейте виду эта оптимально, проста я не понял вчем разница между launch() и withContext() здесь
launch новую корутину начинает, а withContext просто переключает контекст выполнения в пределах блока

имейте виду эта оптимально, проста я не понял вчем разница между launch() и withContext() здесь
а еще я могу поныть, что так у тебя нетестируемо, например

контексты не обернуты

Unconfined не подсунуть

и да, если пишешь по человечески и не для тестов

то лучше через пуши какие-нибудь делать

Andrew
31.07.2018
13:53:51
имейте виду эта оптимально, проста я не понял вчем разница между launch() и withContext() здесь
withContext выполняет саспенд-функцию на указанном контексте и саспендится до возвращения результата. launch запускает саспенд-функцию и сразу же воз вращает Job, с помощью которого можно следить за состоянием выполнения корутины, отменять её или дожидаться результат.

Sergey
31.07.2018
13:53:59
вебсокет пока foreground и пуши когда background

Andrew
31.07.2018
13:55:36
Я вот тоже не понимаю советов с пушами, у которых не очень хорошо с доставкой дела. Пока аппа живая, логичнее получать от сервера сообщения напрямую. Когда мрёт -- там уже выбора нету, конечно.

Но это не о котлине ?

Andrew
31.07.2018
13:57:31
Логично держать стейтфул соединение, а не долбиться по HTTP, например.
Логично, конечно, но не у всех бекенды в эти ваши модные вебсокеты умеют, местами до сих пор нормально себя чувствует лонг-поллинг с помощью HTTP. Хотя да, он к долбёжке раз в пять секунд тоже никакого отношения не имеет.

Google
Andrew
31.07.2018
13:59:05
https://twitter.com/JakeWharton/status/1017756667457531905
И твит видел, и твой ответ. Каждому своё.

OlegKrikun
31.07.2018
14:01:01
длинные бассейны?)
да все поняли, чо ты =) тем более там написаны басейны логирования

Admin
ERROR: S client not available

Andrew
31.07.2018
14:01:54
а иногда они вместе юзаются =) типа для очень важного логпулы, а для всего остального вебсокеты
А лонг-поллинг надёжнее веб-сокетов, если для последних сервер понги отвечает, когда просят?

OlegKrikun
31.07.2018
14:02:03
бревнобассейны тогда)
Сразу по стройку на даче вспомнил о_О

А лонг-поллинг надёжнее веб-сокетов, если для последних сервер понги отвечает, когда просят?
веб сокеты иногда не работают за файрволами криво настроеными (ну или такиое поверье есть среди тех кто пилит апи) =)

Dmitry
31.07.2018
14:03:18
Я вот тоже не понимаю советов с пушами, у которых не очень хорошо с доставкой дела. Пока аппа живая, логичнее получать от сервера сообщения напрямую. Когда мрёт -- там уже выбора нету, конечно.
Я не говорю про пуши от мобильных платформ, это вообще чатик не про мобилки. Сделай свое соединение, через которое сервер будет пушить обновления.

Андрей
31.07.2018
14:03:20
и лимит по факту почти резиновый

Quantum Harmonizer
31.07.2018
14:03:34
зачем сокеты? об изменениях можно через fcm уведомлять
Речь о форграунде. FCM говёно работает. Сокеты != вебсокеты.

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

Dmitry
31.07.2018
14:04:13
зачем сокеты? об изменениях можно через fcm уведомлять
Если ты не пишешь под мобилку, то никакого фсм не будет.

OlegKrikun
31.07.2018
14:04:20
Хм, не сталкивался, надо будет почитать.
я тоже не сталкивался, сталкивался тока с такой оргументацией =))))

Andrew
31.07.2018
14:04:35
ну и поллинг за некоторыми проксями будет по таймауту отваливаться
Реализованный пинг-понг по вебсокетам точно так же будет отваливаться.

Google
Quantum Harmonizer
31.07.2018
14:05:30
эхх, у MQTT последний пост на сайте от 2014 года

Андрей
31.07.2018
14:05:43
Речь о форграунде. FCM говёно работает. Сокеты != вебсокеты.
по факту под капотом вебсокеты через те же самые сокеты по сути и работает, только сверху еще накидано http

Андрей
31.07.2018
14:06:26
Andrew
31.07.2018
14:07:42
он просто не будет работать через HTTP-прокси)
Аргумент. Не сталкивался. Знаю, что nginx умеет проксировать ws спокойно, для личных нужд хватало, а в рабочих проектах пока вебсокеты не в мобилочках были и с более предсказуемыми сетевыми конфигурациями.

Ну и да, FCM не нужон, когда пилится свой бекенд, ни для чего, кроме пушей (которые не делаются никак иначе).

Konstantin
31.07.2018
14:27:19
есть такой вопрос - как замутить общение между слоями приложения в событийном стиле чтобы можно было расширяться и по производительности не ударить

например сейчас это два запечатаных класса с наследнтками, events и commands

интерфейс всего из одного метода - для событий on(event), для комманд exec(command)

подумалось что так не особо гибко расширяемо т.к. для добавления новых событий требуется править sealed class

с другой стороны маркерный интерфейс и куча проверок instanceOf будет медленнее

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