サーバーサイド JavaScript Node.js 13.0 リリース

利用可能 解放する node.js 13.0、JavaScript でネットワーク アプリケーションを実行するためのプラットフォーム。 同時に、Node.js 12.x の以前のブランチの安定化が完了し、長期サポート リリースのカテゴリに移行され、更新は 4 年間リリースされます。 Node.js 10.0 の以前の LTS ブランチのサポートは 2021 年 8.0 月まで、最後の LTS ブランチ 2020 のサポートは XNUMX 年 XNUMX 月まで続きます。

メイン 改善:

  • V8エンジンがバージョンアップされました 7.8新しいパフォーマンス最適化技術を使用し、オブジェクトの分割を改善し、メモリ消費を削減し、WebAssembly 実行の準備時間を短縮します。
  • 国際化とライブラリベースの Unicode の完全なサポートがデフォルトで有効になっています ICU (International Components for Unicode)、開発者がコードを記述できるようにします。 協力的な さまざまな言語とロケールで動作します。 full-icu モジュールがデフォルトでインストールされるようになりました。
  • APIの安定化 ワーカースレッド, 許可する マルチスレッドのイベントループを作成します。 この実装は、worker_threads モジュールに基づいており、これにより、複数の並列スレッドで JavaScript コードを実行できます。 Workers Threads API の安定したサポートも、Node.js 12.x の LTS ブランチにバックポートされました。
  • プラットフォームの要件が増加しました。 今すぐ組み立てるには 必須 少なくとも 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、ReadStream および WriteStream オブジェクトの open() メソッド、request.connection、response.connection、module.createRequireFromPath();
  • 続く 出てきた アップデート 13.0.1 では、いくつかのバグが迅速に修正されました。 特に、npm 6.12.0 でサポートされていないバージョンの使用に関する警告が表示される問題は解決されました。

Node.js プラットフォームは、Web アプリケーションのサーバー保守と、通常のクライアントおよびサーバーのネットワーク プログラムの作成の両方に使用できることを思い出してください。 Node.js のアプリケーションの機能を拡張するには、大規模な モジュールのコレクションここには、HTTP、SMTP、XMPP、DNS、FTP、IMAP、POP3 サーバーとクライアントを実装したモジュール、さまざまな Web フレームワークとの統合用モジュール、WebSocket および Ajax ハンドラー、DBMS へのコネクタ (MySQL、PostgreSQL、SQLite) があります。 、MongoDB )、テンプレート エンジン、CSS エンジン、暗号化アルゴリズムと認証システム (OAuth) の実装、XML パーサー。

多数の並列リクエストを確実に処理するために、Node.js はノンブロッキング イベント処理とコールバック ハンドラーの定義に基づいた非同期コード実行モデルを使用します。 接続を多重化するためにサポートされているメソッドは、epoll、kqueue、/dev/poll、および select です。 ライブラリは多重接続に使用されます リブブ、それは上の上部構造です リベフ Unix システムでは、Windows では IOCP を介して。 ライブラリはスレッド プールの作成に使用されます リベイオ、統合されたノンブロッキングモードでDNSクエリを実行します。 ケアレス。 ブロッキングを引き起こすすべてのシステム コールはスレッド プール内で実行され、シグナル ハンドラーと同様に、名前のないパイプ (パイプ) を介して作業の結果を転送します。 JavaScript コードの実行は、Google が開発したエンジンを使用して提供されます。 V8 (さらに、Microsoft は Chakra-Core エンジンを備えた Node.js バリアントを開発中です)。

Node.js は本質的にフレームワークに似ています。 Perlの任意のイベント, Rubyイベントマシン, パイソンツイスト и 実装 Tcl ではイベントを処理しますが、Node.js のイベント ループは開発者には隠されており、ブラウザーで実行される Web アプリケーションのイベント処理に似ています。 Node.js のアプリケーションを作成するときは、たとえば、「var result = db.query("select..");」を実行する代わりに、イベント駆動型プログラミングの詳細を考慮する必要があります。 作業の完了を待機し、その後結果を処理することで、Node.js は非同期実行の原則を使用します。 コードは「db.query("select..", function (result) {結果処理});」に変換され、制御が即座に次のコードに渡され、データが到着するとクエリ結果が処理されます。 。

出所: オープンネット.ru

コメントを追加します