Fork me on GitHub

2019-07-23のJS: TypeScript 3.6 Beta、postMessageとパフォーマンス、Node.js 12の変更点

Edit on GitHub 編集履歴を見る

JSer.info #445 - TypeScript 3.6 Betaがリリースされました。

Generator/Iteratorの型改善、 次のようなArray Spreadの変換においてエッジケースで仕様との挙動の違いがあった問題が修正されています。

[...Array(5)]

また、Promiseのawait忘れなどから起きる型の不一致に関するエラー表示改善なども含まれています。


Is postMessage slow? — DasSur.maという記事ではpostMessageで送信するペイロードのパフォーマンスについて書かれています。

postMessageの仕様ではオブジェクトを送る際にStructured Clone algorithmでのシリアライズの仕組みが含まれています。
Structured Clone algorithmとJSON.stringify/JSON.parseとのパフォーマンスの比較やImmerJSを使って送るオブジェクト自体を小さくする方法に紹介されています。

また、ArrayBufferなどはTransferable型であるため、シリアライズのコストがなく送ることができるためサイズが大きな場合は優位な点や
WebAssembly、SharedArrayBufferについても触れています。

postMessageで送るペイロードとしてオブジェクトとバイナリをどちらを使うかの基準や計測したデータについても書かれています。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Ember.js - Ember 3.11 Released

blog.emberjs.com/2019/07/15/ember-3-11-released.html

JavaScript ReleaseNote

Ember 3.11リリース。
...attributes構文のサポート、helper、 modifierの追加。
Function.prototype.observesの非推奨化など


yarnpkg.com/blog/2019/07/12/recommended-security-update/

yarn ReleaseNote security

Yarn 1.17.3リリース。
*.yarnpkg.com*.npmjs.org, *.npmjs.comのレジストリに対する通信は自動的にhttpsで通信するようにする修正


Announcing TypeScript 3.6 Beta | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-3-6-beta/

TypeScript ReleaseNote

TypeScript 3.6 ベータリリース。
Generator/Iteratorの型改善、 Array Spreadの変換の改善、Promiseのawait忘れなどのエラー表示改善など


laverdet/isolated-vm: Secure & isolated JS environments for nodejs

github.com/laverdet/isolated-vm

node.js library V8 JavaScript

V8 Isolateを使ってNode.jsからJavaScriptを隔離した環境で実行するライブラリ


アーティクル


Use React.memo() wisely

dmitripavlutin.com/use-react-memo-wisely/

React performance article

React.memo()の役割と使い方について


Google deprecates XSS Auditor for Chrome | The Daily Swig

portswigger.net/daily-swig/google-deprecates-xss-auditor-for-chrome

Chrome XSS article

MSEdgeに続いてChromeのXSS Auditorも非推奨となることについて。


ES proposal: private class fields

2ality.com/2019/07/private-class-fields.html

ECMAScript proposal article

ECMAScript Proposalのprivate class fieldsについて


Is postMessage slow? — DasSur.ma

dassur.ma/things/is-postmessage-slow/

JavaScript browser performance article

postMessageのパフォーマンスについての記事。Structured Clone algorithmとJSONシリアライズでのパフォーマンス比較。
ImmerJSを使った送信するオブジェクトの最小化、ArrayBufferのtransferableなバイナリフォーマットのパフォーマンス。
100kbまではオブジェクト、それ以上のサイズならバイナリを検討することについて。


Datadog と Lighthouse を利用した WebPerf の継続的計測 | mediba Creator × Engineer Blog

ceblog.mediba.jp/post/186341145447/webperf-measuring-with-lighthouse-and-datadog

browser performance article

Lighthouseで計測した値をDatadogに保存してメトリクスの可視化を行う方法について


Weak references and finalizers · V8

v8.dev/features/weak-references

JavaScript ECMAScript proposal article

WeakMapWeakSetのweakの動作について。
またECMAScript ProposalであるWeakRefFinalizationGroupについて。


Node.js 12: The future of server-side JavaScript - LogRocket Blog

blog.logrocket.com/node-js-12/

node.js article

Node.js 12の主な変更点について。
V8の更新によるパフォーマンス改善、TLS 1.3の対応、ヒープサイズがメモリサイズによって決まるように、HTTPパーサの改善、Diagnostic reportsやheap dumpの同梱など。
またworker_threadのexperimentalフラグが外れ、試験的な機能としてES modulesの対応など


スライド、動画関係


Introduction - Content Security Policy

csp.withgoogle.com/docs/index.html

CSP security browser XSS

CSP(Content Security Policy)についての解説サイト。
CSPとはどのようにXSSを防ぐのか、使う理由/使わない理由、CSPの設定、FAQなどが書かれている


サイト、サービス、ドキュメント


IntrinsicLabs/osgood: Osgood is a secure, fast, and simple platform for running JavaScript HTTP servers.

github.com/IntrinsicLabs/osgood

V8 server Rust

Rustで書かれたV8ベースのHTTPサーバ。ルーティングのハンドラはWorkerとして実行され、リクエストに対するレスポンスを返す


ソフトウェア、ツール、ライブラリ関係


zerobias/effector: The state manager ☄️

github.com/zerobias/effector

JavaScript library

ステート管理ライブラリ。
EventsやEffectsを使い、StoreのStateを更新という一連の流れの名前空間を管理するDomainのAPIを提供しています。
VueやReactなどUIフレームワーク向けのアダプターも提供しています。


gajus/lightship: Abstracts readiness/ liveness checks and graceful shutdown of Node.js services running in Kubernetes.

github.com/gajus/lightship

Kubernetes node.js

Kubernetesのヘルスチェックなどに対する抽象層を提供するNode.jsライブラリ


ehmicky/test-each: 🤖 Repeat tests. Repeat tests. Repeat tests.

github.com/ehmicky/test-each

JavaScript library testing

Data Driven Testingを行うためのヘルパーライブラリ。
データからテストケースを作成するためのイテレートやSeed値を元にしたランダムな値を生成してテストできる


この記事へ修正リクエストをする
JSer.info Slackに参加する