
Рубрика «async/await»
Swift async-await. Чем он лучше GCD?
2023-04-08 в 13:33, admin, рубрики: async/await, concurrency, GCD, iOS, kandinsky art, swift, разработка под iOS
Асинхронность в С++20. Доклад в Яндексе
2021-09-21 в 9:54, admin, рубрики: async/await, c++, асинхронное программирование, Блог компании Яндекс, Компиляторы, планировщики, примитивы, Программирование, Совершенный код— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать полностью »
Магические сигнатуры методов в C#
2020-07-01 в 10:30, admin, рубрики: .net, async/await, await, C#, деконструкторы, инициализация, методы, ПрограммированиеПредставляю вашему вниманию перевод статьи The Magical Methods in C# автора CEZARY PIĄTEK.
Есть определенный набор сигнатур методов в C#, имеющих поддержку на уровне языка. Методы с такими сигнатурами позволяют использовать специальный синтаксис со всеми его преимуществами. Например, с их помощью можно упростить наш код или создать DSL для того, чтобы выразить решение проблемы более красивым образом. Я встречаюсь с такими методами повсеместно, так что я решил написать пост и обобщить все мои находки по этой теме, а именно:
- Синтаксис инициализации коллекций
- Синтаксис инициализации словарей
- Деконструкторы
- Пользовательские awaitable типы
- Паттерн query expressionЧитать полностью »
Асинхронщина в Rust: Стандартная библиотека и async-.await
2020-06-01 в 7:20, admin, рубрики: async/await, futures, green threads, promises, Rust, асинхронное I/O, асинхронное программирование, корутины, очередь событий, параллельное программирование, планировщик, рантайм, реактор, сетевое программирование, системное программирование, язык программирования rustВведение
Перед вами руководство по специфике асинхронного программирования на языке Rust — точка входа в экосистему библиотек, справочник, на который можно опираться при проектировании системы и решении нетривиальных задач. К прочтению рекомендую и опытным разработчикам, и новичкам в Rust, только решивших окунуться в эту кроличью нору.
Вас ждёт целый цикл статей разного уровня сложности и погружения, затрагивающий не только асинхронное программирование, но и полезные шаблоны проектирования в Rust, такие как перенос инвариантов бизнес-логики на уровень системы типов, индуктивные вычисления на типах и декларативное программирование посредством комбинаторов.
Сегодня мы рассмотрим API стандартной библиотеки для асинхронного программирования и сам долгожданный синтаксис async/.await
.
Async programming in .NET: Best practices
2020-03-10 в 12:40, admin, рубрики: .net, async/await, Asynchronous Programming, ПрограммированиеПоявление async/await в C# привело к пересмотру того, как писать простой и корректный параллельный код. Зачастую, используя асинхронное программирование, программисты не только не решают проблемы, которые были с потоками, но и привносят новые. Дедлоки и рейсы никуда не пропадают — их просто становится труднее диагностировать.
Дмитрий Иванов — Software Analysis TeamLead в Huawei, в прошлом техлид JetBrains Rider и разработчик ядра ReSharper: структур данных, кэшей, многопоточности, регулярный спикер конференции DotNext.
Под катом — видеозапись и текстовая расшифровка доклада Дмитрия с конференции DotNext 2019 Piter.
Читать полностью »
Асинхронное программирование с async-await
2020-03-05 в 4:55, admin, рубрики: async, async/await, javascript, асинхронность, Программирование, разработка, Разработка веб-сайтовДоброго времени суток, друзья!
Сравнительно новыми дополнениями JavaScript являются асинхронные функции и ключевое слово await. Эти возможности в основном являются синтаксическим сахаром над обещаниями (промисами), облегчая написание и чтение асинхронного кода. Они делают асинхронный код похожим на синхронный. Данная статья поможет вам разобраться, что к чему.
Условия: базовая компьютерная грамотность, знание основ JS, понимание азов асинхронного кода и обещаний.
Цель: понять, как устроены обещания, и как они используются.
Читать полностью »
Последовательный fetch и 5 способов решения
2020-02-29 в 17:36, admin, рубрики: async generator, async/await, fetch, generator, javascript, promise, recursion, Программирование, техническое интервьюНа технических собеседованиях, помимо проверки теоретических знаний, принято задавать задачки, чтоб оценить уровень практических знаний кандидата, его способность писать код, способность мыслить логически и алгоритмически. Часто в этот список входят алгоритмические задачи. Все уже к ним привыкли и при подготовке, в первую очередь, смотрят именно на них.Читать полностью »
Распространенные ошибки при работе с промисами в JavaScript, о которых должен знать каждый (перевод)
2020-01-18 в 13:12, admin, рубрики: async/await, javascript, promise, Программирование, промис, Разработка веб-сайтовДоброго времени суток, друзья!
Представляю вашему вниманию перевод статьи Apal Shah «Common Javascript Promise mistakes every beginner should know and avoid».
Распространенные ошибки при работе с промисами в JavaScript, о которых должен знать каждый
(я намеренно опустил слова «начинающий разработчик». Думаю, Вы поймете почему, после прочтения статьи — прим. пер.)
Хотел бы я знать об этих ошибках, когда изучал JavaScript и промисы.
Всякий раз, когда ко мне обращается какой-нибудь разработчик и жалуется на то, что его код не работает или медленно выполняется, я прежде всего обращаю внимание на эти ошибки. Когда я начал программировать 4 года назад, я не знал о них и привык их игнорировать. Однако после назначения в проект, который обрабатывает около миллиона запросов в течение нескольких минут, у меня не было другого выбора, кроме как оптимизировать свой код (поскольку мы достигли уровня, когда дальнейшее вертикальное масштабирование стало невозможным).
Поэтому в данной статье я бы хотел поговорить о самых распространенных ошибках при работе с промисами в JS, на которые многие не обращают внимания.
Читать полностью »
5 фич JavaScript, без которых я не мог бы писать код (перевод)
2020-01-13 в 15:32, admin, рубрики: async/await, javascript, Node, node.js, promise, React, ReactJSДоброго времени суток, друзья!
Представляю Вашему вниманию перевод статьи Kent Dodds «5 JavaScript Features I Couldn't Code Without».
Это мой первый перевод, так что буду рад любым замечаниям.
5 фич JavaScript, без которых я не мог бы писать код
Прежде чем мы начнем, позвольте мне немного рассказать о коде, который я пишу. Почти весь мой код состоит из Javascript, плюс немного HTML и CSS. Я пишу как клиентский, так и серверный JS. Я тестирую свой код. Я создаю и распространяю библиотеки с открытым исходным кодом, которые используются тысячами разработчиков по всему миру. Для фронтенда я использую React, для бэкенда — Express или бессерверные вычисления.
Вот 5 фич JS, без которых я не мог бы писать код. В произвольном порядке. Разумеется, «без которых я не мог бы писать код» — это гипербола. Это фичи, которые мне по-настоящему нравятся и используются мной постоянно.
Читать полностью »
Какую цену мы платим за использование async-await в языках JS – C# – Rust
2020-01-13 в 11:47, admin, рубрики: async/await, C#, javascript, node.js, Rust, zero-cost, бенчмаркинг, высокая производительность, ПрограммированиеПривет, Хабр !
Работая с Javascript / Typescript, я давно заметил, что асинхронное API работает медленней чем аналогичное синхронное, и даже знал что так должно быть. Но на последнем проекте асинхронная работа с файловой системой стала узким местом, и я озаботился замерами.
Известно, что await можно использовать только внутри функций или блоков async, а это значит, что если у вас самый нижний уровень API асинхронный, то придется использовать async/await практически везде, даже там, где оно очевидно не нужно.
К примеру, мы пишем сервисную функцию, которая достает из хранилища объект по ключу. В качестве хранилища мы можем использовать файл, БД, микросервис, то есть медленный источник с асинхронным интерфейсом. Для улучшения производительности — внутри нашей функции мы кэшируем ранее извлеченные объекты (складываем их в Map). По мере работы программы — реальных обращений к хранилищу становится все меньше, объекты отдаются из быстрого кэша, но интерфейс функции остается асинхронным!
Какую цену мне приходится платить за каждый асинхронный вызов?
Результаты тестов удручают...