@jvmchat

Страница 2723 из 2890
Vladimir
13.08.2018
10:08:34
это вот так = послал ты данные и ничего с этим сокетом сделать не можешь пока тебе ответ не прилетит, это конечно замечательно, и можно сказать - да посрать, но чем это отличается от синхронного подхода в целом
Хм, действительно. Сокет как минимум будет простаивать. Ну так и транзакции к ним привязаны. Но хотя бы не занимается поток, а значит не надо держать пул потоков под JDBC.

Google
Sergey
13.08.2018
10:09:02
>если нет жесткой привязки в платформе(жвм) >у тебя еще живет блокирующее легаси вот всякие SDK под копотом могут быть блокирующими и тут уже на го никак не уедешь

что за CIO?
имплементация на корутинах

Митко Соловец?
13.08.2018
10:09:25
а как они решают отказ огт нетти?

Sergey
13.08.2018
10:12:52
CIO - Coroutine I/O. сейчас головняком с I/O в основном нетти занимается

Anton
13.08.2018
10:13:41
почти все кроме jdbc умеет в асинхронные драйвера, скоро даже от netty можно будет отказаться для сервера и клиента и все делать на CIO. так что дело времени
>дело времени это конечно да, но времени прошло уже очень много. за это время выросли целые экосистемы (го и нода), и вот начинаешь ты новый проект, где ио это кричтиная часть, смысл тебе брать jvm? его мало, надеется что запилят в будущем, ждать всяки "скоро", асинхронного jdbc... в других элксистемах это уже есть здесь и сейчас.

уделяли бы loom должное внимание, может бы и го даже не взлетел, имхо.

Роман
13.08.2018
10:15:56
не работает
заработало

Anton
13.08.2018
10:16:30
Александр
13.08.2018
10:17:22
ой опять граблями по воде, а не споры

сколько читаю, спорите на одни и теже темы

Google
Александр
13.08.2018
10:17:40
в особенноости про АИО

Роман
13.08.2018
10:18:01
это нормально, люди разные

в группе около 1+к людей

Александр
13.08.2018
10:18:35
да и лица с большего одни и теже спорят

Sergey
13.08.2018
10:20:06
>дело времени это конечно да, но времени прошло уже очень много. за это время выросли целые экосистемы (го и нода), и вот начинаешь ты новый проект, где ио это кричтиная часть, смысл тебе брать jvm? его мало, надеется что запилят в будущем, ждать всяки "скоро", асинхронного jdbc... в других элксистемах это уже есть здесь и сейчас.
времени мало прошло, корутины вот только будут релизится осенью же jdbc можно и в отдельном пуле гонять, тем самым еще сделав тротлинг. вряд ли ты на го будешь разрешать каждой горутине делать свой запрос и ложить базу jvm брали и будут брать) а на счет асинхронности, сделай мне на го 2 параллельных вызова сервиса и потом заюзать ответы от них, на том же котлине это решается в одну строчку го я буду брать в случаях когда нельзя транжирить память, когда нет нормальных либ под jvm (клиенты для кубера, авс и тд) и когда с этим кодом нужно будет работать опсам или чувакам из инфраструктуры

у меня больше от thread local пригорает и то что он везде юзается

Александр
13.08.2018
10:20:57
я его люблю

Sergey
13.08.2018
10:21:10
а с корутинами тяжко его юзать

Александр
13.08.2018
10:21:19
ааа, ну эти ваши котленские проблемы

Sergey
13.08.2018
10:21:21
но там делают костыль для этого

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

Александр
13.08.2018
10:22:33
ну так сохраняй его в поля самой джобы

Sergey
13.08.2018
10:22:49
ну и тут начинаются пляски)

Александр
13.08.2018
10:22:58
Sergey
13.08.2018
10:23:50
берешь тред локал, сохраняешь его в джобу, когда шедулер дошел до джобы то меняешь на этом потоке локал на тот что в джобе, после убираешь, берешь новую джобу и тд

с корутинами все тоже самое, это и есть боль

Александр
13.08.2018
10:24:41
ну так в трид локал концептуально ненадо сторить то что шарится между потоками

зачем так делать?

Sergey
13.08.2018
10:25:08
расскажи это логерам и их MDC

Google
Vladimir
13.08.2018
10:27:13
ну так в трид локал концептуально ненадо сторить то что шарится между потоками
Потоком хочется считать поток выполнения кода, выполняющего операцию, а не java.lang.Thread. А это одно и то же только для синхронного кода.

Vladimir
13.08.2018
10:29:29
ничего не понял что ты имел ввиду
Ну вот делаю я что-то асинхронное. И например у меня есть контекст (id запроса например). Было бы удобным класть такое в ThreadLocal, чтобы оно писалось в логи без явного таскания этого параметра с собой, не так ли?

Sergey
13.08.2018
10:30:59
эм, нет
предлагаешь эту мета инфу носить за собой везде в явном виде как это делается на го?

любой вызов функции начинается с передачи туда контекста?)

Александр
13.08.2018
10:31:15
предлагаю по всякой фигне трид локал не дергать вообще

Sergey
13.08.2018
10:31:28
(id запроса например) - это фигня?

Александр
13.08.2018
10:31:47
для трид локала? да

можно пример кода?

Sergey
13.08.2018
10:32:12
ок, как ты с трейсингом работаешь?

Александр
13.08.2018
10:33:36
ок, как ты с трейсингом работаешь?
прелагаю обсуждать на примерах кода :)

Sergey
13.08.2018
10:33:36
пришел от юзера запрос, нужно в логах найти все логи которые относятся именно к этому запросу

я думаю нет смысла дальше обсуждать)

Александр
13.08.2018
10:34:29
особенно в асинхронном коде, вообще наверное классный варик

Vladimir
13.08.2018
10:35:37
особенно в асинхронном коде, вообще наверное классный варик
А если откинуть эту проблему и представить, что код синхронный?

Sergey
13.08.2018
10:36:08
более того, эти айдишки еще между вызовами различных приложений нужно сохранять, distributed tracing и все такое

ну да, зачем их тоскать

Александр
13.08.2018
10:36:36
А если откинуть эту проблему и представить, что код синхронный?
явно так завязываться на синхронности - пожалуй нет

Google
Sergey
13.08.2018
10:37:33
и как трид локал тут спасет?
когда делает запрос на другое приложение, добавляет в хедер айдихи из тред локала

принимающая система читает из хедера, пишет себе в локал и поехали дальше

https://cloud.spring.io/spring-cloud-sleuth/ вот как один из вариантов того же спринга

Александр
13.08.2018
10:38:26
когда делает запрос на другое приложение, добавляет в хедер айдихи из тред локала
а я бы сам таскал, прозрачнее и независимее от синхронного подхода

Александр
13.08.2018
10:39:21
в явном виде?
в виде какого-нибудь соправаждающего обьекта

Sergey
13.08.2018
10:40:03
и тогда в половине методов везде будет в аргументах приниматься этот обьект, да здравствуют контексты го)

Vladimir
13.08.2018
10:41:02
Admin
ERROR: S client not available

Александр
13.08.2018
10:41:56
Т.е. это главный минус ThreadLocal, так?
смотря как ты обращаешься с самими инстансами трид локала, не хотелось бы что бы мапа трид локалов в каждом триде сильно распухала

и тогда в половине методов везде будет в аргументах приниматься этот обьект, да здравствуют контексты го)
вот шашечки или ехать?) мне в асинхронном коде не хочется ничего лишнего отлаживать только потому, что где-то кому-то больше нравится вот так

а в таком случае все прозрачно

раньше тридлокалы юзал очень локально для избегания лишних аллокаций

чисто как перформанс оптимизация

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

в 11 джаве он под все 3 ОС

в 10тке только линь

Роман
13.08.2018
10:53:10
а тесты производительности чего говорят?

Александр
13.08.2018
10:54:43
Google
Роман
13.08.2018
10:54:52
да

Александр
13.08.2018
10:55:04
да
я не гонял, но вот чуваки из твитера довольны

Роман
13.08.2018
10:55:21
главное чтоб на юзере не тестить её)

ResQ_Net Moon
13.08.2018
13:15:41
Есть такой код: StringBuilder sb = new StringBuilder(); HttpURLConnection uc = null; uc = (HttpURLConnection) new URL(url).openConnection(); uc.setRequestMethod("GET"); uc.connect(); String line; BufferedReader in = new BufferedReader( new InputStreamReader(uc.getInputStream(), "cp1251")); while ((line = in.readline())!=null) { sb.append(line); sb.append("\n"); } in.close(); uc.disconnect(); return sb.toString(); Почему вылазит ошибка readline is undefined method for the type BufferedReader

Beholder
13.08.2018
13:18:16
потому что надо посмотреть в документацию (или исходники) и увидеть что оно называется по-другому

ResQ_Net Moon
13.08.2018
13:18:36
Что именно

Beholder
13.08.2018
13:18:52
имя метода

ResQ_Net Moon
13.08.2018
13:20:35
Ааа, боже, с регистром ошибся

но в любом случае спасибо

Dmitry
13.08.2018
13:21:25
Остались еще люди, которые не пользуются IDE?))

Alessio
13.08.2018
13:22:05
sublime

Dmitry
13.08.2018
13:22:06
На жабке в сублиме писать? Знатный изврат))

ResQ_Net Moon
13.08.2018
13:22:16
С чего бы это

Dmitry
13.08.2018
13:22:33
С твоего вопроса

ResQ_Net Moon
13.08.2018
13:23:00
Ну дело тут даже не в саблайме

а в python (как бы это смешно не звучало) я python-программист

В чтении файлов там есть .readline По привычке написал не с того регистра

Alessio
13.08.2018
13:23:54
ну дела

Страница 2723 из 2890