
Руслан
06.08.2018
06:10:07
Я не понимаю что нужно побеждать

Alexander
06.08.2018
06:10:21
Я тоже. Оно будет работать и без модулей

Руслан
06.08.2018
06:10:30
Если ваши либы работают на 9, 10, 11 - то все будет работать

Alexander
06.08.2018
06:10:52
Проблема исключительно в новой системе безопасности, которая не дает "ломать" приватные методы

Google

Alexandr
06.08.2018
06:11:32

Bogdan
06.08.2018
06:12:08

Alexander
06.08.2018
06:12:21
Можно вообще модульной системой не пользоваться, если не хочется
Я-то как раз хочу воспользоваться, у меня программа сильно модульная - туда это хорошо пойдет

Руслан
06.08.2018
06:13:10
По опыту есть основные проблемы такие:
1. ваш мавен и его плагины упорно не работают на новых джавах, поэтому нужно обновлять систему сборки или переходить на гредл
2. у вас ClassNotFound - все потому что часть JavaEE выпилили из JDK и теперь транзитивные зависимости ваших jaxb, activation и прочей мути придется указать явно
3. у вас asm, bytebuddy (mockito старый например) обновляйтеся
И нигде тут котлин специфичных проблем нету, стандартные джава проблемы

Alexandr
06.08.2018
06:14:21

Руслан
06.08.2018
06:15:55
У меня рабочий проект собирается и деплоится под jdk10, на гитхабе есть одна либа которая уже тоже под 10-ой собирается на тревисе. Никаких плясок с jigsaw для этого не делал

Артем
06.08.2018
06:19:23
Всем привет. Я чего то может не понимаю, но почему это мне дает true ?
"qat".matches(Regex("[\b(ch|qu|th|thr|sch|squ|rh)].*"))

Alexandr
06.08.2018
06:19:32
Привет

Alexandr
06.08.2018
06:23:59

Артем
06.08.2018
06:24:20

Alexandr
06.08.2018
06:24:29

Google

Артем
06.08.2018
06:24:56

Alexandr
06.08.2018
06:26:01
у тебя квадратные скобки лишние
а вообще это оффтоп немного)
отлаживай на том ресурсе и читай доку
на том же ресурсе она есть

Артем
06.08.2018
06:27:03
Проблема видно в каком то фундаментальном не понимании с моей стороны как все это работает , потому что без [] получается false для вот такого варианта
"qut".matches(Regex("\b(ch|qu|th|thr|sch|squ|rh).*"))

Alexandr
06.08.2018
06:29:38
чяднт?
бери свои регулярки и давай отлаживать
кстати, внутри строки тебе слеш экранировать надо если чо

Артем
06.08.2018
06:30:14
Не я понял в чем беда

Alexandr
06.08.2018
06:30:37
"qut".matches(Regex("\\b(ch|qu|th|thr|sch|squ|rh).*"))

Артем
06.08.2018
06:31:31
Он кажись считает что (ch|tr) это все равно что "любая из "c" или "h" или любая из "t" или "r"
зачем экранировать ? И так же работает как надо ))
Ну я про \b а не про регулярку в целом

Alexandr
06.08.2018
06:33:16
rtfm
offtop

Артем
06.08.2018
06:35:51
\b - это управляющй символ как \n тут не надо экранировать

Google

Alexandr
06.08.2018
06:38:13
\b - управляющий в regex, если ты пишешь "\b" - в регулярку уйдет строка "b" и регулярка будет искать совпадением с символом "b", если записать "\\b" - то в регулярку уйдет "\b"

Роман
06.08.2018
06:39:34
берёшь idea'ю и делаешь str.matches("<Вот здесь жмёшь Alt+Enter и выбираешь Check RegExp>");

Артем
06.08.2018
06:39:37

Alexandr
06.08.2018
06:39:45
\n - при компиляции заменится на перенос, \b - На символ b, \ - на ничего, а \\ на \, будет экранирование символа \
все правильно
мой тебе ответ - rtfm, открываешь раздел посвященный синтакусису регулярок и читаешь, что бы не задавать очевидных и глупых вопросов, тут чат про котлин

Sergey
06.08.2018
09:27:14
подскажите, насколько ktor(https://ktor.io/) может быть произодительным. Его можно взять на замену скажет той же node.js?

dimiii
06.08.2018
09:29:05

Quantum Harmonizer
06.08.2018
09:29:32

dimiii
06.08.2018
09:44:52
А вот вопрос по архитектуре веб приложений на котлин/ктор. Куда принято делегировать обработку фоновых задач? Допустим, запрос к серверу требует от него обратиться к нескольким сторонним ресурсам, но выполнение самого запроса при этом не блокируется и не требует ожидания результатов. Что принято делать в таком случае?

Alexandr
06.08.2018
09:45:50
я думаю можно в корутину завернуть
или сделать таск сервис и в нем корутинами помазать

dimiii
06.08.2018
09:55:34
А еще варианты? если захочется горизонтального масштабирования?

Alexandr
06.08.2018
09:57:03
делаешь а-ля rpc на командах, которые пишутся в очередь и разребаются другим микросервисом
либо кластером сразу
читателей в балансировку ставишь и готово
+ настраиваешь concurrency, во сколько потоков с шины читать будут
в качестве шины можно хоть activemq, хоть rabbitmq/kafka

Google

Dmitry
06.08.2018
10:00:21

Igor
06.08.2018
10:03:52

Quantum Harmonizer
06.08.2018
10:04:36

Igor
06.08.2018
10:06:12
А там реально есть существенный выигрышь, по сравнению с тем же undertow

Mikhail
06.08.2018
10:11:34
undertow хорош, производительность примерно та же

Admin
ERROR: S client not available

Friedrich
06.08.2018
10:19:29
Почому в Котлине "\0" невалидно? Приходится писать "\u0000".

Igor
06.08.2018
10:21:38

Friedrich
06.08.2018
10:21:56

Дмитрий
06.08.2018
10:22:03
Потому \u0000 это код юникодского символа
А \0 просто 0

Friedrich
06.08.2018
10:22:20
Впрочем, я как-то особо не задумывался, почему такой эскейпинг завели

dimiii
06.08.2018
10:29:52

Alexander
06.08.2018
10:33:21

Alexandr
06.08.2018
10:34:50
давайте акку втащим с ремоутом

Alexander
06.08.2018
10:35:20
Не надо никого никуда втаскивать, акторы есть в стандартной корутиновской библиотеке

dimiii
06.08.2018
10:36:22

Google

Alexander
06.08.2018
10:36:24
Я не делаю веб сервисы, но у меня есть диспатч сообщений, есть некоторый объект, у которого есть один входной и несколько выходных каналов. Есть мастер джоб в объекте, от которого наследуются все каналы. Всего кода строк на 50

dimiii
06.08.2018
10:38:34
> Если нет сильно блокирующих операций, то все кул.
Блокирующих в пол-шишечки

Alexander
06.08.2018
10:38:53
Насколько я понял акторы (https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md#actors) для таких вещей и сделаны. Пока сам не пробовал, только документацию читал.
Ну значит надо сделать совсем не блокирующими. По крайней мере на стороне диспатчера.
Типа послал сообщение и забыл пока ответ не прилетел.
Кстати, никто не запрещает держать два контекста для корутин - один нормальный для выполнения всей текучки, а еще один на большом (или бесконечном) тред пуле для всякого хард кора.

dimiii
06.08.2018
10:40:38
Ну в любом случае, можно завести свой пул
Ну да

Alexander
06.08.2018
10:40:54
indeed
Я правда наверное не стал бы рекомендовать так делать, лучше все сделать совсем неблокирующимся, но если время и силы ограничены...

Руслан
06.08.2018
11:03:10
Долго не мог заинжектать гусем
private val routes: Set<Route<*>>
помог JvmSuppressWildcards
private val routes: @JvmSuppressWildcards Set<Route<*>>

Alexandr
06.08.2018
11:04:12

Руслан
06.08.2018
11:04:17
Проблема в том что котлин тут делал
Set<? extends Route<?>>
а Guice хотел Set<Route<?>>

Alexandr
06.08.2018
11:05:03
а in/out не влияли?

Руслан
06.08.2018
11:05:41
к star projection не применим

Alexandr
06.08.2018
11:06:43
а, точно

Quantum Harmonizer
06.08.2018
11:13:11

Mikhail
06.08.2018
11:32:30