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

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

«Простота сложна. Никогда не бывает просто делать вещи простыми. Простые решения требуют самого передового мышления». —Ричи Нортон

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

Давайте рассмотрим простой пример, где у нас есть г-н Марк, возможно, один из вас, которому было поручено провести презентацию в Лас-Вегасе. Марк взволнован и начал составлять свой план выполнения ниже.

  • Соберите чемоданы в дорогу и оставайтесь на конференции.
  • Из-за своей тяги к вкусной еде решил поесть в своем любимом ресторане по дороге в аэропорт.
  • Поездка в аэропорт.
  • Сядьте на рейс.
  • Подготовка к презентации.

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

Довольно прямолинейно, правильно, Марк выполняет задачу по одной в определенной последовательности, и он полностью готов к достижению своей цели , что гипотетически заняло у него около 240 минут его задача.

Это был способ выполнения программы в течение некоторого времени, пока не появился асинхронный способ программирования.

Асинхронный способ — весь текущий Fuzz о

В асинхронном режиме Марк, собирая сумку, смог заказать еду с помощью своего любимого приложения для доставки еды (развитие технологий), и еда была доставлена ​​ему домой, пока он был занят упаковкой своих вещей. Обе задачи по упаковке и еде выполнялись одновременно, поэтому задача, которая заняла 90 минут синхронно (60 минут + 30 минут), заняла всего 60 минут.

Подобным образом Марк во время своего полета сумел исказить свою презентацию, так что задание, на которое ушло 120 минут, он умудрился выполнить за 90 минут. Оптимизировав задачу и повысив свою эффективность, он смог достичь своей цели всего за180 минут.

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

Резюме

Мы начали эту статью с обещания сделать ее простой и держаться подальше от жаргона программирования, и надеемся, что не разочаровали, если мы это сделали, всегда есть следующий раз, чтобы сделать лучше.

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

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

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

До следующего раза.. Приятного чтения…