JSer.info #157 - JavaScriptをマクロを使って展開出来るSweet.js v0.4.0がリリースされました。
sweet.jsについての紹介とES6のsyntaxをmacroで実装したものについて紹介されてるStop Writing JavaScript Compilers! Make Macros Insteadを読んでみるといいかもしれません。
ジェネレータの解説と非同期への適用 - Block Rockin’ Codes では、ES6 generatorについてスクリーンキャストで解説されています。
Generatorの基本的な仕組み(どのような流れて動くのか)やcoのようなgenerator関数を渡して使うライブラリがどのような仕組みで動いてるかなどが紹介されています。
Why I am switching to promises という記事ではES6 Promisesの利点やユースケース、既存のコールバックスタイルからどのように移行していくかなど実践的な内容になってます。
また、Promiseのチュートリアルが書かれているPromise nuggetsというものも公開されているので合わせて読むといいです。(現在進行形ですが)
Refactoring your JavaScript code with Grasp | Grasp - JavaScript structural search, replace, and refactorというJS ASTを使ったgrep/sedのようなコマンドラインツールを使ったリファクタリングについて書かれています。
単純な文字列置換とは違ったメリットなどユースケースが紹介されていて、以下でも簡単に記事の紹介を書いてます。
Info
TumblrではMarkdownをサポートしてるので、このブログも Markdownで投稿出来るようにしました。
HTMLからMarkdownにした理由としては、Graspを使ったJavaScriptのリファクタリングのような簡単な紹介記事を書こうとしたら、リッチエディタだと予期せぬ変換が発生したり、やる気が出なかったのでMarkdownにしました。
JSer.infoのアーカイブの方もjQueryUIで適当に実装したままだとMarkdownで出力するのが難しい感じだったので、適当にknockout-sortableを使って書きなおしたりしました。
ヘッドライン
Release Infix macros · mozilla/sweet.js
マクロを扱えるsweet.js 0.4.0リリース
RequireJS 2.1.10 Released ~ James Burke
RequireJS 2.1.10リリース。
nodeIdCompat、bundlesオプションの追加
Release Now passing all relevant tests · andyearnshaw/Intl.js
ECMAScript Internationalization API (ECMA-402)の実装であるIntl.js 0.1.0がリリース。
test262 suiteを全てパスした
- ECMAScript Internationalization API Specification – ECMA-402 Edition 1.0
- ECMAScript Language – test262
アーティクル
Why I am switching to promises
Promiseの利点について。
throw-safeなエラーハンドリング、パフォーマンスとメモリ消費、promise.nodeifyを使ったコールバックスタイルとの互換性、Promiseの書き方やユースケース等まとまってる
Stop Writing JavaScript Compilers! Make Macros Instead
JavaScriptのマクロを書けるsweet.jsの使い方とsweet.jsを使ってES6のsyntaxをいくつか実装したmacroについて
sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
sweet.jsを使ったshift/resetのような実装
SVG - Super Vector Graphics
SVGについての連載。
SVGの基本や利点や扱い方、クロスブラウザでの表示や最適化、fallbackについて書かれてる
Ten reasons we switched from an icon font to SVG - Ian Feather
アイコンフォントとSVGを比べた時にSVGのメリットについて。
ジェネレータの解説と非同期への適用 - Block Rockin’ Codes
NodeでのGeneratorについてのスクリーンキャスト。
generatorの使い方、next()でどこまで進むか、非同期処理の同期化、ユーザー側とライブラリ側を分けるための抽象化(coライクのものを作る)、throwでのエラー処理、thunkifyのやってる事
Refactoring your JavaScript code with Grasp | Grasp - JavaScript structural search, replace, and refactor
JS ASTを元にしたgrep/sedのようなツールであるGraspのユースケース紹介。
実際にどのようにリファクタリングを行えるかが書かれてる
Dependency injection in JavaScript
JavaScriptでDIを実装してみるチュートリアル。
AMDライクな依存関係を示すモジュールの定義をするアプローチとAngularJSみたいなリフレクションで関数定義から依存関係を取得するアプローチについて書かれてる
サイト、サービス
Promise nuggets
Promisesに関するチュートリアル。
Promisesの使い方やパターンについて書かれている。
ソフトウェア、ツール、ライブラリ関係
Frida
プロセスのトレース、関数のhook等を出来るツール https://github.com/frida/frida-gum/
V8とPythonを使ったバインディングがあり、JavaScriptでスクリプトを書いてプロセスを監視したりデバッグに使える。
lo-th/Oimo.js
Three.jsを使った物理エンジンライブラリ。
AS3のOimoPhysicsのJavaScriptポート。
groupon/testium
WebDriverとmochaを使ったIntegration testを行えるツール。
webdriver-http-syncをベースにしていて同期的にテストを書けるのが特徴
- I-Tier: Testium - Groupon Engineering Blog
- Groupon: Node.js向け結合テストツールtestiumをオープンソースで提供 - ワザノバ | wazanova
Lineman | Build awesome web apps, easily.
Yeomanのようなウェブアプリのワークフロー管理ツール。
プロジェクトのテンプレート、ジェネレータやAPIのStubやProxy、Gruntのタスク管理等
書籍関係
tooling/book-of-modern-frontend-tooling
モダンなフロントエンド向けツールについて書かれている書籍。
Github上で書かれいるのでコントリビューションも出来る
O’Reilly Japan - JavaScriptで学ぶ関数型プログラミング
2014年01月18日発売
Functional JavaScriptの翻訳本
Amazon: HTML5 Web標準API バイブル [単行本]: 羽田野 太巳
2014年1月20日発売
様々なWebPlatform APIについてチュートリアル方式で解説した書籍
Amazon: サードパーティJavaScript [大型本]: Ben Vinegar, Anton Kovalyov, 水野貴明
2014年2月1日発売
Third-party JavaScriptの翻訳本
Amazon: Dart for Absolute Beginners [Paperback]: David Kopec
2014年7月14日発売
Dart初心者向けの書籍