Fork me on GitHub

2017-10-30のJS: Node.js 8.8.0、Chrome 63β、Property-Based Testing

Edit on GitHub 編集履歴を見る

JSer.info #355 - Node.js v8.8.0がリリースされました。

http2モジュールがデフォルトで有効化、モジュールのhookを処理を扱えるコマンドライン引数として--loaderがサポートされています。


Chrome 63βがリリースされました。

Dynamic import、Async iterator、Device Memory API、Promise#finallyのサポートなど
また、プッシュ通知などの許可ダイアログの変更が行われています。

EventTargetのコールバックに不正な値を渡した場合にTypeErrorを投げるような仕様追従、印刷時にbeforeprintafterprintイベントに対応、非推奨となっていた/deep/の削除など


Property-Based Testing for Godly Testsというスライドでは、testcheck-jsを使ったProperty-Based Testingについて書かれています。

Example-Based Test、Fizz Test、Property-Based Testのカバーできる範囲の違いや特徴について紹介しています。
HaskellのQuickCheckなどが有名ですが、Property-Based Testではテストする値の範囲を指定し、その範囲から自動生成された値を使ったテストを行います。
そのため、特定の値を固定値として指定するExample-Based Testよりも、Property-Based Testのカバーできる範囲は広いという話などが書かれています。一方、その仕組みのため速くはない点などについて書かれています。

また、Flowの型定義からのテスト範囲の自動生成についてなどについても書かれています。


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

JSer.info Sponsors

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


ヘッドライン


Node v8.8.0 (Current) | Node.js

nodejs.org/en/blog/release/v8.8.0/

node.js ReleaseNote

Node.js 8.8.0リリース。
http2モジュールがデフォルトで有効化、モジュールのhookを処理を扱えるコマンドライン引数として--loaderの追加など


V8 JavaScript Engine: V8 Release 6.3

v8project.blogspot.com/2017/10/v8-release-63.html

V8 ReleaseNote

V8 6.3リリース。
パフォーマンス改善、import()Promise#finally、Aynsc iteratorのサポートなど


Release 0.23.0 · avajs/ava

github.com/avajs/ava/releases/tag/v0.23.0

testing JavaScript library ReleaseNote

AVA 0.23.0リリース。
NODE_ENV=testを設定するように、snapshotLocationpacakge.jsonに書くことでsnapshotファイルの保存場所を指定できるように


Release 2.4.0 · fuse-box/fuse-box

github.com/fuse-box/fuse-box/releases/tag/v2.4.0

JavaScript Tools ReleaseNote

FuseBox 2.4.0 リリース。
Quantum上でのUglify-esのサポート、Vue周りの対応改善、CLIをAPIとして使えるように


Chromium Blog: Chrome 63 Beta: Dynamic module imports, async iterators and generators, Device Memory API, and permissions UI changes

blog.chromium.org/2017/10/chrome-63-beta-dynamic-module-imports_27.html

Chrome ReleaseNote

Chrome 63 Betaリリース。
Dynamic import、Async iterator、Device Memory API、Promise#finallyの実装、プッシュ通知などの許可ダイアログの変更など。
また、EventTargetの仕様追従、印刷時にbeforeprintafterprintイベントを発火するように、/deep/の削除など


アーティクル


Saying Goodbye to Firebug ★ Mozilla Hacks – the Web developer blog

hacks.mozilla.org/2017/10/saying-goodbye-to-firebug/

Firebug 歴史 firefox debug addon

FirebugはFirefox57で開発は終了し、Firefoxの開発者ツールが代替となる。
FirebugからFirefoxの開発者ツールへのマイグレーションガイドも公開されている。また、Firebugの歴史について。


MicrosoftのNapa.jsでJavaScriptをマルチスレッド化する | PLAID engineer blog

tech.plaid.co.jp/js_multi_threading/

node.js JavaScript library article

マルチプロセスのWorkerを扱うことができるnapajaについて。
どのようなモチベーションや構造になっているかについて。
Zoneというワーカーのまとめ役やデータのやり取りの方法についてなど


HTML Web Component using Vanilla JavaScript – Ayush Gupta – Full Stack Web Developer

ayushgp.github.io/html-web-components-using-vanilla-js/

WebComponents JavaScript article

Web Components入門記事。
<user-card />というデータを取得して表示する要素を例にCustom Elementのライフサイクル、template要素、ShadowDOMについて紹介している


State of Modules in JavaScript - Blog | SitePen

www.sitepen.com/blog/2017/10/26/state-of-modules-in-javascript/

ECMAScript JavaScript module

ES moduleについての解説記事。
import/exportやdynamic import、Node.jsやwebpackなどのbundlerでの扱いについてなど


Unpopular Metrics about JS Bundlers – Andrea Giammarchi – Medium

medium.com/@WebReflection/unpopular-metrics-about-js-bundlers-a3c56ea5390d

JavaScript Tools module article

小さなbundleツールであるasbundleについて。 rollupより機能的にも小さくシンプル。ES moduleをbundleするだけのような機能を持っている


Can You Afford It?: Real-world Web Performance Budgets – Infrequently Noted

infrequently.org/2017/10/can-you-afford-it-real-world-web-performance-budgets/

article performance browser

初回ロードのTime-to-Interactive (TTI)が5秒以下、それ以降は2秒以下というPerformance Budgetsを元にそれを満たすための配分について。
これ満たすための考え方や技術的な手法、補助するツールなどについて


スライド、動画関係


Chrome Dev Summit 2017 - YouTube

www.youtube.com/playlist?list=PLNYkxOF6rcICUD5nBfRdAR6Fveosnqa5m

Chrome イベント video

Chrome Dev Summit 2017の動画まとめ


とにかく楽してVue.jsでTypeScriptを使いたい

www.slideshare.net/sakura_pr/vuejstype-script-81228009

JavaScript Vue slide

Vue 2.5のTypeScriptサポートについてのスライド。
JavaScriptで書かれたVueアプリケーションをTypeScriptに移行する手順について


Redux. From twitter hype to production by Jenya Terpil

slides.com/jenyaterpil/redux-from-twitter-hype-to-production#/

redux slide

Reduxの動作フローについてのスライド。
アニメーション画像によってView->Action->Reducer->Stateの流れについてを可視化している。


Property-Based Testing for Godly Tests

www.slideshare.net/garbles/propertybased-testing-for-godly-tests

JavaScript testing slide

Property-Based Testingについてのスライド。
Example-Based Test、Fizz Test、
Property-Based Testのカバーできる範囲の違いや特徴について。
testcheckを使ったテストやFlowの型定義からの自動生成についてなど


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


webpackmonitor/webpackmonitor: A tool for monitoring webpack optimization metrics through the development process

github.com/webpackmonitor/webpackmonitor

webpack Tools

webpackのstats.json結果をビジュアライズしてくれるツール。


State of Vue.js Report · Monterail

www.monterail.com/state-of-vuejs-report

Vue PDF

Vueに関する80ページほどのレポート。Vue自体の状況、アンケートベースのレポート、利用してる企業のケーススタディなどについて書かれている


Apollo Client 2.0 – Apollo GraphQL

dev-blog.apollodata.com/apollo-client-2-0-5c8d0affcec7

GraphQL JavaScript library

Apollo Client 2.0について


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


vitalets/websocket-as-promised: Promise-based API for WebSockets

github.com/vitalets/websocket-as-promised

Promises WebSocket library

PromiseベースのWebSocketライブラリ。


github.com/nicojs/node-install-local

npm yarn Tools

npm5やyarnはローカルのパッケージをsymlinkでインストールしてしまうため、symlinkに対応してないツールなどが動作しなくなる。
通常のパッケージと同じようにディレクトリにインストールすることができるツール


softvar/awesome-web-storage: Everything you need to know about Client-side Storage.

github.com/softvar/awesome-web-storage

JavaScript document

Web Storageについてのまとめたドキュメント。
cookie、localStorage、sessionStorageについての比較、関連ライブラリ、ツールなどについて


feimosi/frameworks-code-comparison: Code comparison of modern frameworks, based on React, Angular and Vue.js

github.com/feimosi/frameworks-code-comparison

Angular React Vue library

Angular, React, Vueのコンポーネントで共通して行う処理の扱い方について比較したリポジトリ。
それぞれのライブラリごとの短い解説とコードスニペットを紹介してる。


書籍関係


Angular Development with Typescript: Yakov Fain, Anton Moiseev: 9781617295348: Amazon.com: Books

www.amazon.com/Angular-Development-Typescript-Yakov-Fain/dp/1617295345

Angular TypeScript book

2018年5月30日発売
AngularとTypeScriptについての本


Amazon.com: TypeScript 2.0 Cookbook eBook: Shiv Shankar Kushwaha: Kindle Store

www.amazon.com/TypeScript-Cookbook-Shiv-Shankar-Kushwaha-ebook/dp/B01CR5GCXY

TypeScript book

2018年8月発売
TypeScriptクックブック


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