Fork me on GitHub

2014-01-06のJS:Koa 0.2.0、jQuery Mobile 1.4.0、Functional JavaScript

Edit on GitHub 編集履歴を見る

JSer.info #156 - NodeのWebフレームワークであるKoa 0.2.0(0.2.1)がリリースされました。
socket errorのハンドリングができるようになったり、デバッグしやすくなるなどの改善されているようです。


jQuery Mobile 1.4.0 がリリースされました。
α、βで既に入っていたDOM操作を減らしてパフォーマンスの改善、テーマを継承する際にCSSだけで変更出来るようにselectorの追加、SVGアイコンの採用等が含まれています。

細かな変更点は以下にまとめられています。


Functional JavaScript for crawling the Web | Code | Nicolas Perriaultという記事では、
Functional ProgrammingなアプローチをJavaScriptに適応した書き方について紹介されています。

DOM操作を目的とした話で、高階関数を使ってNodeから値を取る関数や、NodeListの最初の要素を取る関数等を作り、
それを組み合わせて使うようなアプローチについて書かれています。

また、単純に関数呼び出しを合わせるだけだとa(b(c(d(e(f(g(h(foo))))))));のようにひどく読みにくいものが出来てしまうので、
それを解決するために関数合成や、ES6の機能の=>やRest Arguments等も使いコード自体をスッキリさせているので、話し的にも読みやすく書かれています。

JavaScriptでのFunctional Programmingについてはfunctional javascriptという書籍によく書かれていますが、
書籍はES5ベースの話なので、上記の記事のようにES6のsyntaxを使うとより気持ちよく書けるという感じがでていていい内容だと思います。

追記: functional javascriptの翻訳本の発売が決まったようです。


ヘッドライン

node.js ReleaseNote

NodeのウェブフレームワークKoa 0.2.0リリース。
Socketのエラーハンドリング、Debug用のComposeモジュールの改善等

jQuery mobile ReleaseNote

jQuery Mobile 1.4.0リリース。

JavaScript Tools ReleaseNote

eslint 0.2.0リリース。
ルールの追加等

アーティクル

gulp JavaScript console Tools tutorial

タスク実行ツールのgulpについての導入方法や設定コードの書き方についてのチュートリアル

JavaScript firefox

サロゲートペアを考慮した文字数カウント(正規表現、ES6 Iterator)
コードポイントの取得/文字生成について。

node.js API testing tutorial

supertestを使ったNodeウェブアプリのAPIをテスト駆動開発していくチュートリアル

JavaScript DOM

FunctionalアプローチでDOMを見ていく話。
どのような感じで関数を書いていくか等分かりやすい。
関数呼出を重ねすぎると読みにくくなるので、関数合成的なsequence関数を作ったり、ES6の=>やRest Argumentsの利用などを使ってより小さく書くなどしてる。
それぞれが関数であるのでテスト等も書きやすい。

JavaScript testing

Sinon.jsのFake Timer、spy、Fake Serversを使ったテストについて。

node.js

NodeのStreamを使ったAPIの実装について。
テストの書き方、Streamの実装方法を、APIレンスポンスを返す実装を書きながら見ていく話

JavaScript node.js

3種類の非同期なコードの構造の改善について。
EvenetEmitterを使った方法、Q(Promises)を使った方法、stepを使った方法、それぞれの実装とメリット/デメリットについて書かれてる

サイト、サービス、ソフトウェア関係

node.js リファレンス document

Node.jsのドキュメントビューアサイト

ツール、ライブラリ関係

node.js testing

TAP系の出力を見やすく表示するCLI

書籍関係

d3.js book

D3.jsについての書籍
$0から任意の値段購入できる

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