Асинхронне програмування: види, класифікація, принципи програмування, концепція, значення і застосування

Переваги і недоліки

Асинхронне програмування на основі продовжувачів хороший варіант для ситуацій з простою логікою управління потоком. Зазвичай це відноситься до програм в Node JS, які дозволяють визначати неблокуючий відповідь на вхідні запити.

Переваги моделі:

  • Прості схеми запиту та відповіді.
  • Узгодженість зі схемами функціонального програмування.
  • Легко зрозуміти як концептуальний механізм.
  • Недоліки:

  • Коли логіка управління розроблена недостатньо, процес ускладнюється, що призводить до створення коду з розподіленої функціональної логікою, який важко читати, розуміти і підтримувати.
  • Складність у визначенні логіки управління потоками.
  • Складно настроювані механізми синхронізації.
  • Логіка управління розподіляється між кожною неблокірующіх гілкою.
  • Модель, керована подіями

    Подія є сигналом бізнес-екосистемі. Анатомічно вони зазвичай складаються з типу, тимчасової мітки і набору даних, що характеризують контекст, в якому відбулася подія. Архітектура подій (EDA) забезпечує механізм зв’язку між клієнтами і постачальниками в відношеннях 1: N і з номінальною розв’язкою. Одне з багатьох його застосувань – усунення проблем асинхронної обробки даних.

    У централізованих архітектурах, керованих подіями, існує центральна комунікаційна шина-посередник, яка відповідає за забезпечення ефективності процесу реєстрації прослуховуючих клієнтів і запуску повідомлень на вимогу постачальників до них. Цей механізм припускає потужність N:N, а схема називається шаблоном PUB/SUB.

    В розподілених керованих подіями архітектурах кожен провайдер відповідає за керування підпискою своїх клієнтів і за відправку повідомлень, при виникненні події. Механізм зв’язку також номінально відокремлений, але зазвичай кількість провайдерів і клієнтів становить 1:N. Ця схема відповідає реальній схемі або джерелами подій в Node JS jargon.