Почему мы перешли на Node.js 10

Posted on Posted in releases & updates

24 апреля 2018 года была выпущена новая версия Node.js 10. Версия 10 вносит много значимых изменений во всей кодовой базе Node.js. В октябре 10 версия получила статус ветки с длительным сроком поддержки (Long Term Support — LTS). Разработчики SAYMON, бэкенд которого написан на JavaScript, с нетерпением ожидали этот релиз. Давайте рассмотрим его особенности и улучшения.

Node.js — платформа для выполнения высокопроизводительных сетевых приложений на языке JavaScript.

 

Что нового в Node.js 10

 

  • Стабилизирован N-API

N-API — API для построения нативных модулей.

N-API появился в Node 8. В 10 версии его статус изменился с “Экспериментального” на “Стабильный”. Основная идея N-API — это стабильность и совместимость при работе с различными версиями Node.js, что упрощает поддержку расширений и их разработку без перекомпиляции.

N-API

 

  • Использование OpenSSL 1.1.0

С выходом релиза, Node.js оснащён криптографической поддержкой. В OpenSSL 1.1.0 полностью перезаписан генератор случайных чисел, благодаря которому криптографические алгоритмы используют случайные числа. Разработчики OpenSSL заверяют, что это значительно повысит уровень безопасности. За счёт перехода Node.js на OpenSSL 1.1.0 удалось обеспечить поддержку потокового шифра ChaCha20 и алгоритма аутентификации сообщений Poly1305. Данные алгоритмы были разработаны для обеспечения наивысшей безопасности без больших вычислительных затрат.

 

  • Добавлены коды ошибок (Error#code)

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

 

  • Обновление движка V8 до 6.6

V8 — это движок, занятый выполнением JS-кода.

Ранее Node.js работал на V8 JavaScript Engine. Node.js 10 оснащён последней версией — Engine 6.6, поставляемой с Chrome 66. Обновлённый движок обеспечивает ускорение метода Array#reduce до 10 раз, оптимизацию производительности асинхронных операций и сокращение потребления памяти в V8.

PPI

Помимо улучшения показателей работы системы, разработчикам нашей команды было важно масштабировать и поддерживать разработанный внутри проекта фреймворк — Comedy. Благодаря развитию нативных модулей, предоставляется дополнительная возможность создавать расширяемые программные решения. А  экспериментально добавленный fs/promises помогает выявить узкие места, провалы в производительности и с точностью измерить время выполнения кода.


Скачайте обновлённую версию SAYMON с бэкендом на Node.js 10