Издање ЈаваСцрипт платформе на страни сервера Ноде.јс 13.0

Доступан издање Ноде.јс 13.0, платформы для выполнения сетевых приложений на языке JavaScript. Одновременно завершена стабилизация прошлой ветки Node.js 12.x, которая переведена в категорию выпусков с длительным сроком поддержки, обновления для которых выпускаются в течение 4 лет. Поддержка прошлой LTS-ветки Node.js 10.0 продлится до апреля 2021 года, а позапрошлой LTS-ветки 8.0 до января 2020 года.

Главни побољшања:

  • В8 мотор је ажуриран на верзију 7.8, в которой задействованы новые методы оптимизации производительности, улучшена деструктуризация объектов, уменьшено потребление памяти и сокращено время подготовки к выполнению WebAssembly;
  • По умолчанию включена полная поддержка интернационализации и Unicode на базе библиотек ИЦУ (International Components for Unicode), позволяющая разработчикам писать код, подржавајући работу с разными языками и локалями. Модуль full-icu теперь установлен по умолчанию;
  • Стабилизирован API Workers Threads, дозвољавајући создавать многопоточные циклы обработки событий (event loop). Реализация основана на модуле worker_threads, позволяющем запускать JavaScript-код в несколько параллельных потоков. Стабильная поддержка API Workers Threads также бэкепортирована в LTS-ветку Node.js 12.x;
  • Повышены требования к платформам. Для сборки теперь потребно как минимум macOS 10.11 (требуется Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Улучшена поддержка Python 3. При наличии в системе Python 2 и Python 3, по-прежнему используется Python 2, но добавлена возможность сборки при наличии в системе только Python 3;
  • Удалена старая реализация HTTP-парсера («—http-parser=legacy»). Удалены или переведены в разряд устаревших вызовы и свойства FSWatcher.prototype.start(), ChildProcess._channel, метод open() в объектах ReadStream и WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Пратите изашао обновление 13.0.1, в котором по горячим следам устранено несколько ошибок. В том числе решена проблема с выводом в npm 6.12.0 предупреждения об использовании неподдерживаемой версии.

Подсетимо се да платформа Ноде.јс може да се користи како за серверску подршку веб апликација, тако и за креирање обичних клијентских и серверских мрежних програма. За проширење функционалности апликација за Ноде.јс, велики број збирка модула, у којем се могу пронаћи модули са имплементацијом сервера и клијената ХТТП, СМТП, КСМПП, ДНС, ФТП, ИМАП, ПОП3, модули за интеграцију са разним веб оквирима, ВебСоцкет и Ајак руковаоци, конектори за ДБМС (МиСКЛ, ПостгреСКЛ, СКЛите , МонгоДБ ), шаблонске машине, ЦСС машине, имплементације криптографских алгоритама и система ауторизације (ОАутх), КСМЛ парсери.

За руковање великим бројем паралелних захтева, Ноде.јс користи модел извршавања асинхроног кода заснован на обради догађаја без блокирања и дефинисању руковалаца повратним позивима. Подржане методе за мултиплексирање веза укључују еполл, ккуеуе, /дев/полл и селецт. Библиотека се користи за мултиплексирање веза либув, што је надградња преко либев на Уник системима и преко ИОЦП-а на Виндовс-у. Библиотека се користи за креирање скупа нити либеио, за обављање ДНС упита у неблокирајућем режиму је интегрисан ц-аре. Сви системски позиви који узрокују блокирање се извршавају унутар скупа нити, а затим, као руковаоци сигнала, прослеђују резултат свог рада назад кроз неименовану цев. Извршење ЈаваСцрипт кода је обезбеђено коришћењем машине коју је развио Гоогле V8 (Поред тога, Мицрософт развија верзију Ноде.јс са Цхакра-Цоре мотором).

У својој сржи, Ноде.јс је сличан оквирима Перл АниЕвент, Руби Евент Мацхине, Питхон Твистед и имплементација догађаја у Тцл-у, али петља догађаја у Ноде.јс је скривена од програмера и подсећа на руковање догађајима у веб апликацији која ради у претраживачу. Приликом писања апликација за ноде.јс, потребно је узети у обзир специфичности програмирања вођеног догађајима, на пример, уместо да радите „вар ресулт = дб.куери(“селецт..”);” са чекањем завршетка рада и накнадном обрадом резултата, Ноде.јс користи принцип асинхроног извршавања, тј. код се трансформише у „дб.куери(“селецт..”, фунцтион (ресулт) {ресулт процессинг});”, у коме ће контрола одмах прећи на даљи код, а резултат упита ће бити обрађен како подаци стигну. .

Извор: опеннет.ру

Додај коментар