Size: a a a

2020 February 15

B

Bogdan in rust_offtopic
Aleksandr Khristenko
Как может нравится js? Его решения: слабая типизация и использование одного оператора для сложения и конкатенации, динамический this столько боли принесли.
Первое мне не силтно мешало, а с this поррой бывает боль, да.

Ну тайпскрипт это все чинит же.
источник

B

Bogdan in rust_offtopic
Pavel
не знаю, как там в расте фьючи работают и кто их так называл. Смотри, если у тебя есть задача, которую надо выполнить — она так и называется — Task, задача ещё не выполняется, или уже выполняется, или она уже выполнена, но это само определение задачи — ЧТО надо сделать. Future — это результат отправки задачи на исполнение. Тоесть, когда у тебя есть задача и ты отправляешь её исполняться — с помощью этого хендла в момент 0+T от получения фьючи ты можешь получить результат. Имея только задачу — ты не получишь результат, пока не выполнишь её. Имея фьючу ты получишь результат тогда, когда он тебе нужен будет, не парясь, когда именно он исполнялся и исполнялся ли, мб его просто сразу тебе уже готовым отдали. Если тебе нжуно что-то ленивое — есть Callable. Просто вызываешь его, когда тебе нужно посчитать.
Терминология в разных языках это боль.

По сути в С# Task<T> это CompletionStage<T> в джавке, и Future в расте.

Но как говорил торт, футуры бывают poll бейзед, как в расте.

Я долго не мог понять зачем они в расте пол бейзед, кроме как защита от аллокаций в хипе.

Потом я просветлился и понял, что это гениально.
источник

B

Bogdan in rust_offtopic
Полбейсед футуры позволяют элементарно сделать такую вещь как AsyncLocal без никакой поддержки от рантайма, чисто внутри либы
источник

B

Bogdan in rust_offtopic
К примеру в дотнете вшито в язык AsyncLocal, в джаве вобще анриал, а в расте изи можно сделать на уровне либы, как сделала либа traceing
источник

B

Bogdan in rust_offtopic
Еще бесплатно получаем читабельные и содержательные стектрейсы(я как увидел стек в асинхронном коде раста тотплакал от счастья)
источник

P

Pavel in rust_offtopic
Bogdan
Полбейсед футуры позволяют элементарно сделать такую вещь как AsyncLocal без никакой поддержки от рантайма, чисто внутри либы
что такое AsyncLocal?
источник

B

Bogdan in rust_offtopic
Pavel
что такое AsyncLocal?
Это как ThreadLocal только не для треда а для асинхронной задачи
источник

P

Pavel in rust_offtopic
Bogdan
Это как ThreadLocal только не для треда а для асинхронной задачи
это ужасно
источник

B

Bogdan in rust_offtopic
Pavel
это ужасно
Это тебе кажется)
источник

P

Pavel in rust_offtopic
Тредлокалы надо запретить
источник

B

Bogdan in rust_offtopic
Для дебага хотябы, NDC
источник

B

Bogdan in rust_offtopic
Pavel
Тредлокалы надо запретить
А как ты получишь в недрах спринга текущий HttpRequest на сервере?
источник

P

Pavel in rust_offtopic
Bogdan
А как ты получишь в недрах спринга текущий HttpRequest на сервере?
недры спринга пусть имеют параметр метода
источник

B

Bogdan in rust_offtopic
Хотел сказать в юзеркоде, в глубине, не тотляпнул
источник

B

Bogdan in rust_offtopic
Pavel
недры спринга пусть имеют параметр метода
Ну а если в контроллер параметром его не передали?
источник

B

Bogdan in rust_offtopic
Мне лично кажется бредом тянуть 10 параметров
источник

B

Bogdan in rust_offtopic
Того что модет лежать в контексте
источник

B

Bogdan in rust_offtopic
Я понимаю
источник

P

Pavel in rust_offtopic
Bogdan
Мне лично кажется бредом тянуть 10 параметров
достаточно тянуть один
источник

B

Bogdan in rust_offtopic
Почему контекст плохо, ибо сложно понять потом что происходит
источник