Fork me on GitHub

2014-05-12のJS: browserify 4.0.0、JSテスト環境の移行、ES6-Learning

Edit on GitHub 編集履歴を見る

JSer.info #174 - browserify 4.0.0がリリースされました。(もう4.1.2まででてました)

Semantic Versioning的な上げ方な気がしますが、4.0.0での変更点について以下にまとめられています。


kintoneのJSユニットテスト最新事情 | Cybozu Inside Out | サイボウズエンジニアのブログ という記事では、 JsUnitベースのテスト環境から、Karma( Mocha + expect.js + Sinon.JS )へのテスト環境へ移行について書かれています。

元は単独のHTMLとしてテストが独立しているためDOMの追加やグローバルによる汚染が無いですが、Karma等のTest Runnerは同じHTML上でテスト走らせるため、cleanup処理が抜けていると汚染が起きてしまいます。

そのようなケースにどう対応していったかについても書かれていて興味深いです。

よく使われるテストライブラリでも以下の3種類で結構壁があります。(主に非同期周り)

QUnit | Jasmine 1.x | Mocha / Jasmine 2.x

理論的には 変換ツール等 を書いて自動的にできなくもないですが、FacebookのES6移行の話でも出てきたような移行する際のルールを明確化することや変換が失敗したことを検知する仕組みなどが必要になってくると思います。

なので、既存のテストも変換するかは時と場合による感じになる気がします。

長々と書きましたが、テストに限らず最近はこういった環境の移行をするという話が多いので(特にES6やモジュール周り)、色々と考えてみると面白いかもしれませんね。


ericdouglas/ES6-Learning というリポジトリでは、ES6に関する記事や書籍や動画等のリンクがまとまっています。

個人的にはtagtreeのES6 - episode 1lukehoban/es6featuresとリストには載ってないですがECMAScript 6入门あたりが分かりやすいかなーと思います。

簡単にコードを試したい場合はES6 Fiddleを利用するのがお手軽です。

ツールに関してはaddyosmani/es6-toolsを参照するのがいいと思います。


ヘッドライン

mobileiosAndroidSelenium

appium1.0.0リリース

browserifyReleaseNote

browserify 4.0.0リリース。

アーティクル

JavaScriptbrowserセキュリティ

Service Worker の最初のドラフトがリリースされた。

オフラインアプリで使うようなキャッシュの仕様。

今のところセキュリティの観点からSSL下でないと使えない仕様になってる。

JavaScriptセキュリティ

JavaScriptで脆弱性を作り出しやすい所と注意点。

JavaScripttestingbrowser

それぞれのテストが独立したtestbedとなるHTMLを持つ方式から、

test runnerとしてKarmaを採用し乗り換えた時に起きた問題と対策、乗り換えたことによって得られた効果について

JavaScripttutorial

JavaScriptのprototypeチェーン、スコープと変数のlookupについての解説。

図がキレイで分かりやすい。

JavaScript

ビルトインオブジェクトのサブクラス的な実装をする方法について。(Speaking JavaScript )

Arrayのサブクラスの実装例、Errorのサブクラス、delegateによる実装について書かれてる。

JavaScriptbrowsertutorial

Navigation Timing APIについての連載。

Navigation Timingの使い方、計測できるモノなどについて

JavaScripttestingtutorial

sinon.jsを使ったテストダブルを使ったテストのチュートリアル

ECMAScriptlinksまとめ

ES6のチュートリアルや記事、書籍、スライドやポッドキャスト等のリソースまとめ

JavaScriptECMAScript

ES6のArray likeやiterableオブジェクトを配列にするArray.from、可変長の引数を受けて配列にするArray.of、新たに追加されたentries、keys、valuesについて

gulpnode.js

gulpとstreamについて詳しく書かれてる。

buffer <-> stream、いつもpluginが必要という訳ではないという話、Orchestratorについて

スライド、動画関係

gulptutorial動画

gulpチュートリアル動画 @ tagtree

JavaScripttesting動画スライド

JasmineとCoffeeScriptを使ったテスト。

XHRに対してはFake server、UI Eventじはテストしやすくするためにも、自分の手に届くようにラッパーを作る、非同期コード、DOMへのテストの方針について書かれてる。

Long版 : Test Double | Our Thinking | JavaScript Testing Tactics.

node.jslibraryスライド

NodeのウェブアプリケーションフレームワークであるBigPipeについてのスライド

サイト、サービス

WebComponents

WebComponentsについてのドキュメントやプラクティスを集約するサイト

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

JavaScriptASTTools

gofmtみたいなJavaScriptの整形/検索/置換ツール。

整形だけではなくルールを使った置換等も行える。

JavaScript ASTを使ったツール。

JavaScriptlibraryeditor

SalesforceによるJavaScriptのリッチテキストエディタライブラリ

JavaScriptlibrary

ビジュアルプログラミング言語 http://vvvv.org/ のJavaScript版

mailJavaScriptlibrary

IMAP、SMTPクライアント、Emailパーサとビルダーをまとめたライブラリ

JavaScriptnode.jsURL

https://github.com/medialize/URI.js をベースにしたURL コンストラクタの実装。

文字列からURLオブジェクトを作成出来る

書籍関係

JavaScriptboook

June 2014発売

JavaScriptのthisとprototypeについての書籍

JavaScriptbookECMAScript

現状とES6。

ES6の機能紹介,ES7についての書籍

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