Fork me on GitHub

2017-02-14のJS: V8 5.7とES2015+のパフォーマンス、npm入門、TypeScriptガイドライン

Edit on GitHub 編集履歴を見る

JSer.info #318 - V8 version 5.7がリリースされました

version 5.5で公開されたasync/awaitやPromiseなどのパフォーマンス改善、RegExpのパフォーマンス改善などが行われています。また、WebAssemblyがデフォルトで有効化されています。

ES6 code currently is substantially slower than ES
-- An update on strong mode

V8においてES2015以降の実装は進んでいましたが、その実装がES5に比べて最適化が進んでいませんでした。
そのためネイティブのES2015+よりも、それをES5相当へ変換した場合に実行速度が良くなるケースもあります。
次のページでそのようなケースがあることについて書かれています。

V8ではネイティブなES2015+の実行速度を改善していくプランを立てていて、今回その一部が入った形です。

(マイクロベンチのような)実行速度だけではなく、コードのファイルサイズやパース/コンパイル速度がパフォーマンスに与える影響については次の記事を読んでみると面白いかもしれません。


npm for Beginners: A Guide for Front-end Developersという記事では、npmについて詳しく解説されています。

npmという言葉がウェブサイト、npm registry、npm clientの3つを示していることや、npmの使い方、モジュールのインストール方法、コマンドの使い方、関連するツールなどを紹介しています。


私的TypeScriptとの関わり方ガイドライン - 角待ちは対空という記事では、普段JavaScriptを書いている人がTypeScriptに触れる場合の考え方などについて書かれています。

anyの扱い方、コンパイルオプション、TypeScript特有のキーワードや読むと良いドキュメントなどについて書かれています。


ヘッドライン


V8 JavaScript Engine: V8 Release 5.7

v8project.blogspot.com/2017/02/v8-release-57.html

V8 ReleaseNote WebAssembly


V8 5.7リリース。
async/awaitやES2015のパフォーマンス改善、String#padStartIntl.DateTimeFormat#formatToPartsのサポート。
wasmがデフォルトで有効化など


Release v4.3.0 · npm/npm

github.com/npm/npm/releases/tag/v4.3.0

npm ReleaseNote


npm 4.3.0プレリリース。
--auth-typeの追加、起動速度の改善など


JS1k 2017 - A magical JavaScript golfing competition

js1k.com/2017-magic/

JavaScript イベント


1024bytesでJavaScriptのデモを作るコンテンストであるJS1kの2017年の募集が開始された


アーティクル


npm for Beginners: A Guide for Front-end Developers

www.impressivewebs.com/npm-for-beginners-a-guide-for-front-end-developers/

npm tutorial article


npmとは何か、npmの使い方のチュートリアル。
よく見るプロジェクトのディレクトリ構造、node_modulesディレクトリ、npmコマンドとオプションについて


Snapshot testing the hard way | Better world by better software

glebbahmutov.com/blog/snapshot-testing/

JavaScript testing


JestにはSnapshotテストがあるが、テストフレームワークに依存しないでSnapshotテストを行う方法について


私的TypeScriptとの関わり方ガイドライン - 角待ちは対空

blog.yux3.net/entry/2017/02/05/000805

TypeScript tutorial


普段JavaScriptを使って書いてる人向けのTypeScriptの考え方について。
典型的なエラーの意味や、コンパイラオプション、_ prefixやthisへ型付けなど特殊な部分について。
また、TypeScript特有のキーワードや参考となるドキュメントについて


JavaScript Start-up Performance – Dev Channel – Medium

medium.com/@addyosmani/javascript-start-up-performance-69200f43b201

JavaScript performance


JavaScriptの起動速度について。
モバイル等CPU処理速度が遅いとパースとコンパイルに時間がかかる。
そのため、ファイルサイズやパース、コンパイル時間は重要となる。
開発者ツールを使っての計測方法、User Timing API、V8のCode Caching、scriptのロード方法の最適化などについて


イベント駆動型サービス実行基盤としての Service Worker - Qiita

qiita.com/nhiroki/items/65efc9e41ec1d928afcd

JavaScript ServiceWorker 歴史 opinion


Better AppCacheから始まったService Workerが、ページに依存しない生存期間へ変化していき、fetch以外のイベントもハンドリングできる基盤となっていった変遷について。


Roundup: Vue.js State Management Libraries ← Alligator.io

alligator.io/vuejs/roundup-state-management-libraries/

JavaScript Vue library article


Vue.jsにおけるステート管理ライブラリの比較。 特徴やメリット・デメリットについてそれぞれ書かれている


Advanced JavaScript ES2015 Template Strings with Tagged Templates | appendTo

appendto.com/2017/02/advanced-javascript-es2015-template-strings-with-tagged-templates/

JavaScript template article


Tagged Template Literalについての解説。 サンプルを用いながら、タグ関数の引数について解説してる


スライド、動画関係


Progressive Transpilation at Netflix and the road to running native ES2015 in production // Speaker Deck

speakerdeck.com/betaorbust/progressive-transpilation-at-netflix-and-the-road-to-running-native-es2015-in-production

JavaScript slide ECMAScript browser


Netflixのブラウザ別にTranspileしたJavaScriptを配信するためにやっていることについて。
モダンなブラウザはES2015に対応しているため、変換やpolyfillなどの分として20-40%程度payloadが小さくできる。
一方、圧縮ツールやES2015対応してるかの判定方法などの問題について


AVA Casts

avacasts.com/

JavaScript testing video


AVAについてのスクリーンキャスト


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


bahmutov/snap-shot: Jest-like snapshot feature for the rest of us, works magically by finding the right caller function

github.com/bahmutov/snap-shot

JavaScript React library testing


JestのようなSnapshotテストを行うテストライブラリ


Mnemonist

yomguithereal.github.io/mnemonist/

JavaScript library


様々なデータ構造を実装したJavaScriptライブラリ。
Queue、Trie、Linked List、Bloom Filterなど


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


harksys/npmvet: A simple CLI tool for vetting npm package versions

github.com/harksys/npmvet

JavaScript node.js Tools console npm


package.jsonnode_modulesにインストールされているパッケージのバージョンを比較/ロックされているかをチェック出来るツール。
手元と毎回新規インストールされるCIにおけるバージョンを揃えるのが目的


Simple Statistics

simplestatistics.org/

JavaScript 統計 library


統計向けのメソッドを実装しているJavaScriptライブラリ


abrahamjagadeesh/npm-module-stats: Get recursive file size and dependencies of any NPM module without installing the module

github.com/abrahamjagadeesh/npm-module-stats

npm Tools library


指定したモジュールの依存しているnpmモジュールのファイルサイズを一覧できるツール


davidmfoley/node-trucker: Hauls your node.js source files around

github.com/davidmfoley/node-trucker

JavaScript CoffeeScript Tools リファクタリング


JavaScriptファイル間の依存関係を扱ったファイル移動ツール。
ファイルの移動を行ったときに、そのファイルを参照しているファイルにかかれているimportパスも書き換えることができる。

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