
Mikhail
13.08.2018
10:07:51

Sergey
13.08.2018
10:08:11

Vladimir
13.08.2018
10:08:34

Роман
13.08.2018
10:08:55

Google

Митко Соловец?
13.08.2018
10:08:59

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

Митко Соловец?
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
уделяли бы loom должное внимание, может бы и го даже не взлетел, имхо.

Роман
13.08.2018
10:15:56

Andrey
13.08.2018
10:16:06

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

Александр
13.08.2018
10:27:45

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

Александр
13.08.2018
10:30:16

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

Александр
13.08.2018
10:36:49

Sergey
13.08.2018
10:37:33
принимающая система читает из хедера, пишет себе в локал и поехали дальше
https://cloud.spring.io/spring-cloud-sleuth/ вот как один из вариантов того же спринга

Александр
13.08.2018
10:38:26

Sergey
13.08.2018
10:38:59

Александр
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
а в таком случае все прозрачно
раньше тридлокалы юзал очень локально для избегания лишних аллокаций
чисто как перформанс оптимизация
вот хочу на грааль джит перейти у себя, там вроде эскейп анализ очень мощный
в 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?))

ResQ_Net Moon
13.08.2018
13:21:34
Gi

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
ну дела