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をおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Ember.js - Ember 3.11 Released
blog.emberjs.com/2019/07/15/ember-3-11-released.html
Ember 3.11リリース。
...attributes
構文のサポート、helper、
modifierの追加。
Function.prototype.observes
の非推奨化など
Recommended security update | Yarn Blog
yarnpkg.com/blog/2019/07/12/recommended-security-update/
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 3.6 ベータリリース。
Generator/Iteratorの型改善、 Array Spreadの変換の改善、Promiseのawait
忘れなどのエラー表示改善など
laverdet/isolated-vm: Secure & isolated JS environments for nodejs
github.com/laverdet/isolated-vm
V8 Isolateを使ってNode.jsからJavaScriptを隔離した環境で実行するライブラリ
アーティクル
Use React.memo() wisely
dmitripavlutin.com/use-react-memo-wisely/
React.memo()
の役割と使い方について
Google deprecates XSS Auditor for Chrome | The Daily Swig
portswigger.net/daily-swig/google-deprecates-xss-auditor-for-chrome
MSEdgeに続いてChromeのXSS Auditorも非推奨となることについて。
ES proposal: private class fields
2ality.com/2019/07/private-class-fields.html
ECMAScript Proposalのprivate class fieldsについて
Is postMessage slow? — DasSur.ma
dassur.ma/things/is-postmessage-slow/
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
Lighthouseで計測した値をDatadogに保存してメトリクスの可視化を行う方法について
Weak references and finalizers · V8
v8.dev/features/weak-references
WeakMap
、WeakSet
のweakの動作について。
またECMAScript ProposalであるWeakRef
とFinalizationGroup
について。
Node.js 12: The future of server-side JavaScript - LogRocket Blog
blog.logrocket.com/node-js-12/
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(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
Rustで書かれたV8ベースのHTTPサーバ。ルーティングのハンドラはWorkerとして実行され、リクエストに対するレスポンスを返す
ソフトウェア、ツール、ライブラリ関係
zerobias/effector: The state manager ☄️
ステート管理ライブラリ。
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.
Kubernetesのヘルスチェックなどに対する抽象層を提供するNode.jsライブラリ
ehmicky/test-each: 🤖 Repeat tests. Repeat tests. Repeat tests.
Data Driven Testingを行うためのヘルパーライブラリ。
データからテストケースを作成するためのイテレートやSeed値を元にしたランダムな値を生成してテストできる