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

Архітектурні принципи Node

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

JavaScript асинхронен за своєю природою, як і Node. Платформа для запуску серверного JavaScript Node.js була представлена в 2009 році з використанням асинхронної моделі вводу-виводу, керованої подіями, що робить її ефективною і масштабованої.

Чат є найбільш типовим прикладом багатокористувацького програми Node.js в реальному часі. Починаючи з IRC для багатьох пропрієтарних і відкритих протоколів на нестандартних портах, з’явилася можливість реалізовувати всі в сучасних Noje.js з WebSockets, які працюють за замовчуванням на тому ж порту 80, який прослуховує нові повідомлення, відправлені їх клієнтами. На стороні клієнта є HTML-сторінка з кількома налаштованими обробниками, одна для кнопки «Надіслати», що вибирає повідомлення і відправляє його в WebSocket, та інша, яка прослуховує повідомлення, що надходять на клієнт. Очевидно, що це проста і базова модель, але заснована на інший дисперсії складності.

Неактивна модель, яку Node JS використовує API для підтримки асинхронного програмування, є кроком до продовження. Кожна неблокирующая операція отримує функцію в якості останнього параметра, яка включає логіку продовження. Вона буде викликана після закінчення операції, як для обробки результатів у разі успіху, так і для усунення помилок. Функція продовження дозволяє вказати операції блокування, як вона повинна продовжуватися після завершення операції.