Lançamento da plataforma JavaScript do lado do servidor Node.js 16.0

Foi lançado o Node.js 16.0, uma plataforma para execução de aplicações de rede em JavaScript. O Node.js 16.0 é classificado como branch de suporte de longo prazo, mas esse status será atribuído apenas em outubro, após a estabilização. O Node.js 16.0 terá suporte até abril de 2023. A manutenção da ramificação LTS anterior do Node.js 14.0 durará até abril de 2023, e do penúltimo ramo LTS 12.0 até abril de 2022. O suporte para a filial 10.0 LTS será descontinuado em 10 dias.

Principais melhorias:

  • O motor V8 foi atualizado para a versão 9.0 (Node.js 15 usou a versão 8.6), que permite a implementação de recursos como a propriedade “índices” para expressões regulares (inclui um array com as posições inicial e final dos grupos de correspondências) , o método Atomics em Node.js 16 .waitAsync (versão assíncrona de Atomics.wait), suporte para usar a palavra-chave await em módulos de nível superior. As chamadas de função foram aceleradas em situações onde o número de argumentos passados ​​não corresponde aos parâmetros definidos na função.
  • A API Timers Promises foi estabilizada, fornecendo um conjunto alternativo de funções para trabalhar com timers que retornam objetos Promise como saída, o que elimina a necessidade de usar util.promisify(). importar { setTimeout } de 'temporizadores/promessas'; função assíncrona run() {await setTimeout(5000); console.log('Olá, mundo!'); } correr();
  • Foi adicionada uma implementação experimental da API Web Crypto, projetada para realizar operações criptográficas básicas no lado de aplicativos da web, como manipulação de hashes criptográficos, geração e verificação de assinaturas digitais, codificação e decodificação de dados usando vários métodos de criptografia e geração criptograficamente segura. Números aleatórios. A API também fornece funções para gerar e gerenciar chaves.
  • N-API (API para desenvolvimento de complementos) foi atualizada para a versão 8.
  • A transição para a nova versão do gerenciador de pacotes NPM 7.10 foi feita.
  • Estabilizou a implementação da classe AbortController, que é baseada na API Web AbortController e permite que sinais sejam cancelados em APIs selecionadas baseadas em Promise.
  • O suporte para a terceira versão do formato Source Map, usado para comparar módulos gerados, processados ​​ou empacotados com o código-fonte original, foi estabilizado.
  • Para compatibilidade com APIs Web legadas, os métodos buffer.atob(data) e buffer.btoa(data) foram adicionados.
  • Já começou a formação de montagens para novos dispositivos Apple equipados com o chip M1 ARM.
  • Na plataforma Linux, os requisitos da versão do compilador foram aumentados para GCC 8.3.

Lembre-se de que a plataforma Node.js pode ser usada tanto para suporte de aplicativos da Web no lado do servidor quanto para a criação de programas comuns de rede de clientes e servidores. Para ampliar a funcionalidade das aplicações para Node.js, foi preparado um grande acervo de módulos, onde você encontra módulos com implementação de servidores e clientes HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para integração com diversos frameworks web, manipuladores WebSocket e Ajax, conectores para SGBD (MySQL, PostgreSQL, SQLite, MongoDB), motores de templates, motores CSS, implementações de algoritmos criptográficos e sistemas de autorização (OAuth), analisadores XML.

Para lidar com um grande número de solicitações paralelas, o Node.js usa um modelo de execução de código assíncrono baseado no processamento de eventos sem bloqueio e na definição de manipuladores de retorno de chamada. Os métodos suportados para conexões de multiplexação incluem epoll, kqueue, /dev/poll e select. Para multiplexação de conexões, é utilizada a biblioteca libuv, que é um complemento da libev em sistemas Unix e do IOCP no Windows. A biblioteca libeio é usada para criar um pool de threads e c-ares é integrado para realizar consultas DNS em modo sem bloqueio. Todas as chamadas do sistema que causam bloqueio são executadas dentro do pool de threads e então, como manipuladores de sinal, passam o resultado de seu trabalho de volta por meio de um canal sem nome. A execução do código JavaScript é garantida através da utilização do motor V8 desenvolvido pelo Google (além disso, a Microsoft está desenvolvendo uma versão do Node.js com o motor Chakra-Core).

Em sua essência, o Node.js é semelhante aos frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted e à implementação de eventos em Tcl, mas o loop de eventos no Node.js está oculto do desenvolvedor e se assemelha ao processamento de eventos em um aplicativo da web rodando no navegador. Ao escrever aplicativos para node.js, é necessário levar em consideração as especificidades da programação orientada a eventos, por exemplo, em vez de fazer “var result = db.query(“select..”);” com a espera pela conclusão do trabalho e posterior processamento dos resultados, o Node.js utiliza o princípio da execução assíncrona, ou seja, o código é transformado em “db.query(“select..”, function (result) {processamento de resultado});”, no qual o controle passará imediatamente para outro código, e o resultado da consulta será processado conforme os dados chegam.

Além disso, pode-se destacar que a empresa Deno, fundada pelo criador do Node.js para desenvolver a plataforma Deno de próxima geração, recebeu US$ 4.9 milhões em investimentos. Em sua finalidade, Deno é semelhante ao Node.js, mas tenta eliminar os erros conceituais cometidos na arquitetura Node.js e fornecer aos usuários um ambiente mais seguro. Observa-se que as soluções de negócios da Deno serão construídas em produtos completamente abertos, e o modelo Open Core com funcionalidade paga separada é considerado inaceitável para a plataforma Deno.

Fonte: opennet.ru

Adicionar um comentário