Рубрика «callback»

Всем привет. На связи Омельницкий Сергей. Не так давно я вел стрим по реактивному программированию, где рассказывал про асинхронность в JavaScript. Сегодня я бы хотел законспектировать этот материал.

Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) - 1

Но перед тем как начать основной материал нам нужно сделать вводную. Итак, давайте начнем с определений: что такое стек и очередь?

Стек — это коллекция, элементы которой получают по принципу «последний вошел, первый вышел» LIFO

Очередь — это коллекция, элементы которой получают по принципу («первый вошел, первый вышел» FIFO

Окей, продолжим.

Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) - 2

JavaScript — это однопоточный язык программирования. Это значит, что он имеется только один поток выполнения и один стек, в который помещаются функции в очередь на выполнение. Следовательно в один момент времени JavaScript может выполнить только одну операцию, другие операции при этом будут ждать своей очереди в стеке, пока их не вызовут.

Читать полностью »

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

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

Читать полностью »

Я хочу показать в этой статье как у нас в фирме генерируется бекенд (и немного фронтенд) код, зачем вообще это нужно и как это лучше делать.

Что именно будем генерировать — не так важно.
Важно что мы опишем 3 вида объектов на основе которых сгенерируем взаимодействие фронтенда с бекендом, а кое где и полностью реализацию бекенда

Эти типы объектов:
1. Messages — объекты, которые будучи сериализoванными в JSON участвуют в обмене информации между фронтендом и бекендом
2. Endpoints — URI, который вызывает фронтенд вместе с описанием HTTP метода, параметров запроса, типа Request Body и типа респонса
3. Entities — Это такие messages, для которых них есть стандартные endpoints для Create/Update/List/Delete (может быть не все), они хранятся в базе данных и для них есть Data Access Object, или Spring JPA repository — вообщем зависит от технологии, но какой то доступ к базе данных

Фронтендом я не занимаюсь вообще, но
1) Знаю, что он пишется на Typescript, поэтому мы генерируем и классы тайпскрипта
2) Большая часть требований к бекенду приходит от разработчиков фронтенда.

Требования к коду

Читать полностью »

К написанию этой публикации меня сподвигла публикация на Хабре довольно объемной статьи: «Ностальгии пост. Тайны цен Интернета: почему мегабит может стоить от $0 до $200 или как получить 100 Гбит / с за копейки?», которая, увы, получалась слишком перегруженной из-за объема рассматриваемого материала и была бы совершенно неполноценной без этого раздела. Тем более я родом из Украины, помню и знаю тему из собственного опыта, потому хотелось бы отдельно остановиться на истории развития Интернет в нашем регионе и поделиться памятными моментами.

20 лет эволюции сети Интернет в Украине, а какой вы помните сеть 20 или 10 лет назад? - 1

Тем более, что в этом году исполняется 20 лет с момента, когда «Укртелеком» получил первый в Украине зарубежный канал огромной на то время ёмкости — 2 Мбит / с в Лондон. Да, да, 2 Мбит / с в 1997 году на всю страну! А каким помните Интернет Вы? В комментариях к этой публикации предлагаю поделиться Вашим опытом, когда Вы впервые вышли в сеть и как это было. Нужно это для формирования общей картины того, насколько подешевела передача данных и какие уникальные возможности мы имеем с Вами сегодня в сравнении с эпохой зарождения интернет-провайдеров. Начнём!Читать полностью »

Синхронный код на JavaScript, автор которого не стремился сбить с толку тех, кто этот код будет читать, обычно выглядит просто и понятно. Команды, из которых он состоит, выполняются в том порядке, в котором они следуют в тексте программы. Немного путаницы может внести поднятие объявлений переменных и функций, но чтобы превратить эту особенность JS в проблему, надо очень постараться. У синхронного кода на JavaScript есть лишь один серьёзный недостаток: на нём одном далеко не уехать.

JavaScript: методы асинхронного программирования - 1

Практически каждая полезная JS-программа написана с привлечением асинхронных методов разработки. Здесь в дело вступают функции обратного вызова, в просторечии — «коллбэки». Здесь в ходу «обещания», или Promise-объекты, называемые обычно промисами. Тут можно столкнуться с генераторами и с конструкциями async/await. Асинхронный код, в сравнении с синхронным, обычно сложнее писать, читать и поддерживать. Иногда он превращается в совершенно жуткие структуры вроде ада коллбэков. Однако, без него не обойтись.

Сегодня предлагаем поговорить об особенностях коллбэков, промисов, генераторов и конструкций async/await, и подумать о том, как писать простой, понятный и эффективный асинхронный код.
Читать полностью »

После пяти лет работы с Node.js я многое понял. Я уже делился некоторыми историями, но в этот раз хочу рассказать о том, какие знания дались труднее всего. Баги, проблемы, сюрпризы и уроки, которые вы можете использовать в собственных проектах!

Базовые концепции

В каждой новой платформе есть свои хитрости, но в данный момент эти концепции для меня вторичны. Разобраться в своём баге — хороший способ гарантированного обучения. Даже если это немного болезненно!

Классы

Когда я только начал работать с Node.js, то написал скрапер. Очень быстро я понял, что если ничего не предпринять, то он будет осуществлять много запросов параллельно. Одно это стало важным открытием. Но поскольку я ещё не полностью усвоил мощь экосистемы, то сел и написал собственный ограничитель параллелизма. Он работал и проверял, что в каждый момент времени активны не более N запросов одновременно.
Читать полностью »

в 9:09, , рубрики: callback, javascript, promise, promises

Перевод первой части отличной статьи про промисы. Базовые приемы создания и управления промисами.

Промисы используются для операций, вычисление которых занимает неопределенное время. Примером подобной операции может быть сетевой запрос, когда мы запрашиваем данные у API и не можем точно определить, когда будет получен ответ.

Читать полностью »

«Ого, уложились в 28 секунд! Думал, не успеете. Молодцы!». Уже четыре месяца так начинаются телефонные разговоры потенциальных клиентов с «Командой приключений „АльпИндустрия“».
«Люди удивляются быстрому обратному звонку. Но мы успели к этому привыкнуть, — говорит директор компании Петр Тосунидис. — Клиентам нравится, и нравится продавцам: первый разговор начинается с позитива и упрощает дальнейшую продажу».

Как замена 8-800 на обратный звонок с сайта увеличила продажи на 30% - 1

Читать полностью »

В течении нескольких месяцев мы собирали данные о популярных настройках сервиса и исследовали их влияние на конверсию с клиентских сайтов. Подробности эксперимента в статье!
Как наши клиенты конверсию повышали - 1
Читать полностью »

В этой статье вы найдете обзор известных сервисов для онлайн-консультирования, которые обещают упростить маркетологам работу с фидбеком. Доброго утра и приятного прочтения!

Обзор 5 популярных онлайн-чатов - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js