Как стать автором
Обновить

Курс «Асинхронное программирование для начинающих»

Время на прочтение 1 мин
Количество просмотров 4.3K
Блог компании KTS Python *Учебный процесс в IT

В понедельник, 20 декабря, стартует второй поток курса «Асинхронное программирование на Python для начинающих» от школы Metaclass

Курс подойдет тем, кто уже работает с Python в вебе или анализе данных, но хочет разобраться в asyncio, подтянуть теорию и попробовать ее на практике.

Курс состоит из 7 модулей с видеоуроками, заданий с автопроверкой, онлайн-разборами ДЗ и менторской поддержкой.

Также для всех участников курса мы подготовили выделенные виртуалки для каждого ДЗ: писать код можно будет прямо в браузере на нашей платформе — вы можете посмотреть демо.

Сегодня, 8 декабря в 19:00, мы проведем вебинар про курс, на котором преподаватели ответят на вопросы по программе и разыграют бесплатное место на продвинутый трек курса.

→ Записаться на вебинар можно по ссылке, всех ждем!

Читать далее
Всего голосов 12: ↑9 и ↓3 +6
Комментарии 2

Погружение в Async-Await в Android

Время на прочтение 5 мин
Количество просмотров 21K
Разработка под Android *Kotlin *
Перевод

В предыдущей статье я сделал беглый обзор async-await в Android. Теперь пришло время погрузиться немного глубже в грядущий функционал kotlin версии 1.1.


Для чего вообще async-await?


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

Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 11

Async/await: 6 причин забыть о промисах

Время на прочтение 7 мин
Количество просмотров 159K
Блог компании RUVDS.com JavaScript *Node.JS *
Перевод
Если вы не в курсе, в Node.js, начиная с версии 7.6, встроена поддержка механизма async/await. Говорят о нём, конечно, уже давно, но одно дело, когда для использования некоей функциональности нужны «костыли», и совсем другое, когда всё это идёт, что называется, «из коробки». Если вы ещё не пробовали async/await — обязательно попробуйте.

image

Сегодня мы рассмотрим шесть особенностей async/await, позволяющих отнести новый подход к написанию асинхронного кода к разряду инструментов, которые стоит освоить и использовать везде, где это возможно, заменив ими то, что было раньше.
Читать дальше →
Всего голосов 55: ↑48 и ↓7 +41
Комментарии 182

Пишем симпатичные Node.js-API с использованием async/await и базы данных Firebase

Время на прочтение 5 мин
Количество просмотров 23K
Блог компании RUVDS.com JavaScript *Node.JS *
Перевод
Мы уже рассказывали об основах работы с async/await в Node.js, и о том, как использование этого нового механизма позволяет сделать код лучше. Сегодня поговорим о том, как создавать, используя async/await, RESTful API, взаимодействующие с базой данных Firebase. Особое внимание обратим на то, как писать красивый, удобный и понятный асинхронный код. Можете прямо сейчас попрощаться с адом коллбэков.


Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 6

Simplify working with parallel tasks in C# (updated)

Время на прочтение 7 мин
Количество просмотров 21K
.NET *C# *

image


No doubts that async/await pattern has significantly simplified working with asynchronous operations in C#. However, this simplification relates only to the situation when asynchronous operations are executed consequently. If we need to execute several asynchronous operations simultaneously (e.g. we need to call several micro-services) then we do not have many built-in capabilities and most probably Task.WhenAll will be used:


Task<SomeType1> someAsyncOp1 = SomeAsyncOperation1();
Task<SomeType2> someAsyncOp2 = SomeAsyncOperation2();
Task<SomeType3> someAsyncOp3 = SomeAsyncOperation3();
Task<SomeType4> someAsyncOp4 = SomeAsyncOperation4();
await Task.WhenAll(someAsyncOp1, someAsyncOp2, someAsyncOp4);
var result = new SomeContainer(
     someAsyncOp1.Result,someAsyncOp2.Result,someAsyncOp3.Result, someAsyncOp4.Result);

This is a working solution, but it is quite verbose and not very reliable (you can forget to add a new task to “WhenAll”). I would prefer something like that instead:


var result =  await 
    from r1 in SomeAsyncOperation1()
    from r2 in SomeAsyncOperation2()
    from r3 in SomeAsyncOperation3()
    from r4 in SomeAsyncOperation4()
    select new SomeContainer(r1, r2, r3, r4);

Further I will tell you what is necessary for this construction to work...

Read more →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 4

JavaScript. Работаем с исключениями и данными в конструкциях async/await без блоков try-catch

Время на прочтение 2 мин
Количество просмотров 10K
Разработка веб-сайтов *JavaScript *Node.JS *
Перевод
Появившиеся в JavaScript новые асинхроные конструкции async/await выглядят проще, чем Promise, и, конечно, значительно читабельнее, чем «callback-джунгли». Но одна вещь беспокоила меня — это использование try-catch. Сначала я подумал, что это не проблема, но, к несчастью, мне пришлось работать с цепочкой вызовов API, в которой каждый вызов API имел свое сообщение об ошибке, которое должно было прологировано. Вскоре я понял, что создаю «try/catch-джунгли», которые ничем не лучше «callback-джунглей».
Читать дальше →
Всего голосов 16: ↑10 и ↓6 +4
Комментарии 24

Quantum Mechanics of Calculations in JS

Время на прочтение 15 мин
Количество просмотров 8.5K
Ненормальное программирование *JavaScript *Node.JS *
Recovery mode

Здравствуйте, меня зовут Дмитрий Карловский и я… безработный. Поэтому у меня есть много свободного времени для занятия музыкой, спортом, творчеством, языками, JS-конференциями и компьютерной наукой. О последнем исследовании в области полуавтоматического разбиения долгих вычислений на небольшие кванты по несколько миллисекунд, в результате которого появилась миниатюрная библиотека $mol_fiber, я вам сегодня и расскажу. Но сперва, давайте обозначим проблемы, которые мы будем решать..


Кванты!


Это — текстовая версия одноимённого выступления на HolyJS 2018 Piter. Вы можете либо читать её как статью, либо открыть в интерфейсе проведения презентаций, либо посмотреть видеозапись.

Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 16

Асинхронная бизнес-логика в наши дни

Время на прочтение 19 мин
Количество просмотров 15K
Open source *JavaScript *Программирование *C++ *Node.JS *

Вкратце:


  • Пруф уже реализован на C++, JS и PHP, подходит для Java.
  • Быстрее чем coroutine и Promise, больше фич.
  • Не требует выделения отдельного программного стека.
  • Дружит со всеми средствами безопасности и отладки.
  • Работает на любой архитектуре и не требует особых флагов компилятора.

Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Комментарии 57

Разъяснительная беседа об асинхронном программировании в Javascript

Время на прочтение 15 мин
Количество просмотров 19K
Блог компании Издательский дом «Питер» JavaScript *Программирование *Профессиональная литература *
Перевод
Привет всем!

Как вы, возможно, помните, еще в октябре у нас переводилась интересная статья о применении таймеров в Javascript. Она вызвала огромную дискуссию, по результатам которой мы давно хотели вернуться к этой теме и предложить вам подробный разбор асинхронного программирования в этом языке. Рады, что нам удалось найти достойный материал и опубликовать его еще до конца года. Приятного чтения!
Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 16

Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET

Время на прочтение 9 мин
Количество просмотров 45K
Блог компании Dodo Engineering Программирование *.NET *C# *
Из песочницы

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



Читать дальше →
Всего голосов 49: ↑48 и ↓1 +47
Комментарии 64

Moscow Python Conf ++ через три дня: о чем расскажет Bobuk и кто в это время выступит в параллельных залах?

Время на прочтение 6 мин
Количество просмотров 3.1K
Блог компании Конференции Олега Бунина (Онтико) Разработка веб-сайтов *Open source *Python *Программирование *
Эксперимент по подготовке докладов на Moscow Python Conf ++ с нуля на финишной прямой. Слайды готовы, прогоны провели, осталось только дождаться премьеры — уже в эту пятницу 5 апреля. В расписании 24 доклада про использование Python в продакшене крупных компаний. Под катом — взгляд на организацию глазами программного комитета и смешные проблемы вроде «кого ставить в параллель хедлайнеру, чтобы не было пустых залов и обиженных спикеров».
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 8

.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 1

Время на прочтение 18 мин
Количество просмотров 55K
Системное администрирование *.NET *ASP *C# *
Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight.
Вторая часть доступна здесь

Необходимость делать что-то асинхронно, не дожидаясь результат здесь и сейчас, или разделять большую работу между несколькими выполняющими ее единицами была и до появления компьютеров. С их появлением такая необходимость стала очень ощутимой. Сейчас, в 2019, набирая эту статью на ноутбуке с 8 ядерным процессором Intel Core, на котором параллельно этому работает не одна сотня процессов, а потоков и того больше. Рядом, лежит уже немного потрепанный, купленный пару лет назад телефон, у него на борту 8 ядерный процессор. На тематических ресурсах полно статей и видео, где их авторы восхищаются флагманскими смартфонами этого года куда ставят 16ти-ядерные процессоры. MS Azure предоставляет менее чем за 20$/час виртуальную машину со 128 ядерным процессором и 2 TB RAM. К сожалению невозможно извлечь максимум и обуздать эту мощь не умея управлять взаимодействием потоков.
Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 5

Асинхронное программирование (полный курс)

Время на прочтение 2 мин
Количество просмотров 88K
Разработка веб-сайтов *JavaScript *Программирование *Node.JS *Учебный процесс в IT
Туториал

Методы асинхронного программирования


Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.

Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Комментарии 17

.NET: Tools for working with multi-threading and asynchrony – Part 1

Время на прочтение 18 мин
Количество просмотров 19K
.NET *Системное программирование *ASP *C# *
I have originally posted this article in CodingSight blog
The second part of the article is available here

The need to do things in an asynchronous way – that is, dividing big tasks between multiple working units – was present long before the appearance of computers. However, when they did appear, this need became even more obvious. It is now 2019, and I’m writing this article on a laptop powered by an 8-core Intel Core CPU which, in addition to this, is simultaneously working on hundreds of processes, with the number of threads being even larger. Next to me, there lies a slightly outdated smartphone which I bought a couple of years ago – and it also houses an 8-core processor. Specialized web resources contain a wide variety of articles praising this year’s flagship smartphones equipped with 16-core CPUs. For less then $20 per hour, MS Azure can give you access to a 128-core virtual machine with 2 TB RAM. But, unfortunately, you cannot get the most out of this power unless you know how to control interaction between threads.
Read more →
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 4

.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 2

Время на прочтение 13 мин
Количество просмотров 50K
Системное администрирование *.NET *ASP *C# *
Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight.

Я продолжаю создавать текстовую версию своего выступления на митапе по многопоточности. С первой частью можно ознакомиться здесь или здесь, там речь больше шла о базовом наборе инструментов, чтобы запустить поток или Task, способах просмотреть их состояние и некоторых сладких мелочах, вроде PLinq. В этой статье хочу больше остановится на проблемах, которые могут возникнуть в многопоточной среде и некоторых способах их решения.

Содержание



Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 5

.NET – Tools for working with multithreading and asynchrony – Part 2

Время на прочтение 13 мин
Количество просмотров 6.2K
.NET *ASP *C# *
I have originally posted this article in CodingSight blog.
It's also available in Russian here.


This article comprises the second part of my speech at the multithreading meetup. You can have a look at the first part here and here. In the first part, I focused on the basic set of tools used to start a thread or a Task, the ways to track their state, and some additional neat things such as PLinq. In this part, I will fix on the issues you may encounter in a multi-threaded environment and some of the ways to resolve them.

Contents



Read more →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 1

Асинхронные Stream в C# 8

Время на прочтение 10 мин
Количество просмотров 31K
Блог компании Семинары Станислава Сидристого Программирование *.NET *C# *Параллельное программирование *
Туториал
Перевод

Функционал Async/Await появился в C# 5, чтобы улучшить скорость отклика пользовательского интерфейса и веб-доступ к ресурсам. Другими словами, асинхронные методы помогают разработчикам выполнять асинхронные операции, которые не блокируют потоки и возвращают один скалярный результат. После многочисленных попыток Microsoft упростить асинхронные операции, шаблон async/await завоевал хорошую репутацию среди разработчиков благодаря простому подходу.


Существующие асинхронные методы значительно ограничены тем, что должны возвращать только одно значение. Давайте рассмотрим некий обычный для такого синтаксиса метод async Task<int> DoAnythingAsync(). Результатом его работы является некоторое одно значение. Из-за такого ограничения нельзя использовать эту функцию с ключевым словом yield и асинхронным интерфейсом IEnumerable<int> (чтобы вернуть результат асинхронного перечисления).


Читать дальше →
Всего голосов 43: ↑42 и ↓1 +41
Комментарии 25

Тяжёлое бремя времени. Доклад Яндекса о типичных ошибках в работе со временем

Время на прочтение 12 мин
Количество просмотров 21K
Блог компании Яндекс Разработка веб-сайтов *Open source *JavaScript *Java *
В коде самых разных проектов нередко приходится оперировать временем — например, чтобы завязать логику работы приложения на текущее время у пользователя. Старший разработчик интерфейсов Виктор Хомяков victor-homyakov описал типичные ошибки, которые встречались ему в проектах на языках Java, C# и JavaScript от разных авторов. Перед ними вставали одни и те же задачи: получить текущую дату и время, измерить интервалы или выполнить код асинхронно.



— До Яндекса я работал в других продуктовых компаниях. Это не как фрилансер — написал, сдал и забыл. Приходится очень долго работать с одной кодовой базой. И я, собственно, смотрел, читал, писал много кода на разных языках и увидел много чего интересного. В итоге у меня родилась тема этого рассказа.

Читать дальше →
Всего голосов 63: ↑53 и ↓10 +43
Комментарии 49

Какого цвета ваша функция?

Время на прочтение 13 мин
Количество просмотров 19K
JavaScript *Программирование *C# *Go *Параллельное программирование *
Перевод

Не знаю как вам, но для меня нет лучшего начала дня, чем потрепаться о программировании. Кровь кипит при виде удачной критики одного из "жирных" языков, которым пользуются плебеи, мучаясь с ним на протяжении рабочего дня между стыдливыми посещениями StackOverflow.


(Тем временем, вы и я используем только самый просветленный язык и отточенные инструменты, разработанные для ловких рук таких мастеров, как мы).


Конечно, как автор проповеди, я иду на риск. Вам может нравиться язык, который я высмеиваю! Безрассудный памфлет мог бы неосторожно привлечь в мой блог яростную толпу черни с вилами и факелами наперевес.


Чтобы защититься от праведного огня и не оскорбить ваши (вероятно деликатные) чувства, я буду рассказывать о языке...

Читать дальше →
Всего голосов 54: ↑47 и ↓7 +40
Комментарии 37

Async/await в C#: концепция, внутреннее устройство, полезные приемы

Время на прочтение 24 мин
Количество просмотров 161K
.NET *C# *Параллельное программирование *
Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использовать асинхронность в большинстве случаев нужно лишь знание синтаксиса и никаких других подробностей. Но если лезть вглубь, тема довольно объемная и сложная. Ее излагали многие, каждый в своем стиле. Есть очень много классных статей по этой теме, но все равно существует масса заблуждений вокруг нее. Постараемся исправить положение и разжевать материал настолько, насколько это возможно, не жертвуя ни глубиной, ни пониманием.


Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Комментарии 27