JSer.info #154 - JavaScripttテストフレームワークのJasmine2.0がリリースされました。(一つ前は1.3.x)
- Jasmine 2.0 Release
- jasmine/release_notes/20.md at master · pivotal/jasmine (リリースノート)
- introduction.js ドキュメントも2.0が別々のページになってる
DailyJS: JavaScript Developer Survey 2013: Resultsのアンケートでは、Mochaに押されながらも利用者が一番多いテストフレームワークでした。
Jasmine2.0では破壊的な変更も多いですが、Mochaのようなdoneを使った非同期テストの対応やspyやassertionの改善、
custom matcherの仕組みの変更やレポーター画面変更や、Nodeの対応の改善等かなり幅広い変更が入っています。
JavaScript Promises: There and back again - HTML5 Rocksという記事ではES6 Promisesについてよくまとまっています。
jQueryのDeferred等のPromisesライクなものを扱う方法や、thenやcatch、allといったメソッド等、Promisesを扱うのに必要な事について書かれているので一度読んでおくと思います。
KoaというNodeのExpressの次世代とも言えるようなウェブアプリケーションフレームワークが公開されました。
特徴的なのはES6のgeneratorをベースとしている事や、Core自体はひとつもミドルウェアが入ってないことなどが挙げられます。
これによりコードベースが小さくなることやエラーハンドリングのし易さなどより強固なウェブフレームワークを作る事を目的としています。
Generatorを使うとコードを非同期処理も同期的な感じにできて見やすく書けることや、
上記のPromisesの記事でも出ていますが、Promisesと合わせることで一つのtry-catch内に非同期処理を並べてまとめてエラーハンドリング出来たりする等、
コードの書き方も結構変えられる部分が出てきます。
- Promises and Generators: Control Flow Utopia
- Harmony generators and promises for Node.js async fun and profit - Atlassian Blogs - Error handling FTW
- Google Chromeに入ったジェネレータとPromiseで非同期処理に革命が起きた - 素人がプログラミングを勉強していたブログ
gulpというストリーミングベースのビルドシステムが公開されました。
(コマンドラインのパイプで繋いでいく感じをイメージするといいです)
JavaScriptのビルドシステムというとGruntが大分定着した感じだと思いますが、
Gruntはひとつのタスクが複数の役割を持っていたり、コードで書きはしますが実際はオブジェクトの設定を並べる感じのものとなっています。
gulpはオブジェクトの設定を並べる感じではなく、コードでパイプを繋いだタスクを定義して行く感じになっていて、
gulp自体が持つAPIもシンプルで、一つのプラグインは一つのことをするという原則を持たせています。
また、ストリーミングをベースとするので一時的フォルダなどを作らなくても良いことになります。
以下でGruntとの違いなどについて説明されています。
- Gulp by Eric Schoffstall
- No Need To Grunt, Take A Gulp Of Fresh Air | Travis Maynard
- Writing a gulp plugin · wearefractal/gulp Wiki プラグインのガイドライン
gulpの根幹にあるストリーミングという概念については以下のドキュメントを参照するといいです。
jasmine/release_notes/20.md at v2.0.0 · pivotal/jasmine
https://github.com/pivotal/jasmine/blob/v2.0.0/release_notes/20.md
Jasmine 2.0リリース。
mochaスタイル(done)の非同期テストに対応、RubyベースのCLIがNode/Gruntに変更、IE8未満は非サポート、spiesのsyntax変更等
Brackets Sprint 35 Build – Brackets Blog
http://blog.brackets.io/2013/12/20/brackets-sprint-35-build/
Brackets Sprint 35 リリース.
Mac ChromeでのLive Preivewの改善、利用するJSとLESSを最適化して起動時間の改善等
jQuery 1.11.0/2.1.0 Beta 3 Released | Official jQuery Blog
http://blog.jquery.com/2013/12/20/jquery-1-11-02-1-0-beta-3-released/
jQuery 1.11.0と2.1.0 β3リリース.
Dojo 1.9.2 and more | The Dojo Toolkit Blog
http://dojotoolkit.org/blog/dojo-1-9-2-and-more
Dojo 1.9.2リリース.
IE11サポート, Pointer Eventsへの対応.
Dojo2.0でDOH testsを http://intern.io/ に移行させる計画
Node v0.10.24 (Stable)
http://blog.nodejs.org/2013/12/19/node-v0-10-24-stable/
Node v0.10.24リリース.
PhoneGap | PhoneGap 3.3.0 Released
http://phonegap.com/blog/2013/12/13/phonegap-release/
PhoneGap 3.3.0リリース.
Android KitKat対応
React | React v0.5.2, v0.4.2
http://facebook.github.io/react/blog/2013/12/18/react-v0.5.2-v0.4.2.html
React v0.5.2, v0.4.2リリース.
XSS脆弱性に関するセキュリティ修正
RxJS 2.2 Released - Reactive Extensions Team Blog - Site Home - MSDN Blogs
http://blogs.msdn.com/b/rxteam/archive/2013/12/13/rxjs-2-2-released.aspx
RxJS 2.2リリース.
ES5をサポートしてるブラウザがメインとなり、レガシーブラウザはrx.compat.jsでのpolyfill実装となる.
rx.asyncにPromisesとのブリッジの追加等
YUI 3.14.1 Released - YUI Blog
http://www.yuiblog.com/blog/2013/12/18/yui-3-14-1-released/
YUI 3.14.1 リリース.
IE11、Android4.4対応
JavaScript Promises: There and back again - HTML5 Rocks
http://www.html5rocks.com/en/tutorials/es6/promises/
ES6 Promisesについて。
既存のPromiseライクも扱えるようにするPromise.cast、Promise.thenの使い方、エラーハンドリング、Promiseとeach、Promise.all、Generatorと合わせた場合について
スプリットコンソール、ミニファイ済み JS の整形表示など – Firefox 開発ツール エピソード 28 | Mozilla Developer Street (modest)
https://dev.mozilla.jp/2013/12/split-console-pretty-print-minified-js-and-more-firefox-developer-tools-episode-28/
Firefox DevToolsにEscキーでコンソールを分割表示する機能、jsの整形機能、デバッグ地のツールチップ、カラーピッカーの追加等
DevTools Digest December 2013 - HTML5Rocks Updates
http://updates.html5rocks.com/2013/12/DevTools-Digest-December-2013
Chrome DevTools の最近アップデート内容についてのまとめ
Experiments with Koa and JavaScript Generators - Steve Sanderson’s blog - As seen on YouTube™
http://blog.stevensanderson.com/2013/12/21/experiments-with-koa-and-javascript-generators/
Expressの人達により作られてるGeneratorsベースのKoaについて。
Generatorを使った書き方、エラーハンドリング、非同期処理、Key-value objectsのyeild等
Choosing a JavaScript MVC FrameworkFunny Ant
http://www.funnyant.com/choosing-javascript-mvc-framework/
JavaScript MV*ライブラリ比較
[翻訳] MCSS (Multilayer CSS) | Unformed Building
http://unformedbuilding.com/articles/mcss-ja/
CSS管理ルールのMultilayer CSSについてのドキュメント翻訳
スムーズなアニメーションを実装するコツと仕組みを説明するよ。CPUとGPUを理解しハードウェアアクセラレーションを駆使するのだ!(Frontrend Advent Calendar 2013 – 06日目) | Ginpen.com
http://ginpen.com/2013/12/06/hardware-acceleration/
CSSアニメーションとGPUレイヤーについて.
GPUを使った場合のアニメーションが何故高速なのか、また適応範囲が大きすぎるが逆に問題が起きるのかが見た目で分かりやすくまとまってる。
WebStormによるJavaScript開発のすすめ - maru source
http://blog.h13i32maru.jp/entry/2013/12/20/091619
WebStormの機能紹介まとめ
俺のWeb Workersがこんなに遅いわけがない
http://lab.sonicmoov.com/development/web-workers/
WebWorkerのTransferable Objectsについての解説.
データをコピーせずに所有権を渡す事でオーバーヘッドが少なくなる
JSDoc vs YUIDoc vs Doxx vs Docco – Choosing a JavaScript documentation generator | The FusionCharts Blog
http://blog.fusioncharts.com/2013/12/jsdoc-vs-yuidoc-vs-doxx-vs-docco-choosing-a-javascript-documentation-generator/
JavaScriptのドキュメントツールの比較
Node 2013
http://gergelyke.github.io/node2013/
タイムライン表示で振り返るNore,jsの歴史
Prune: Automatically create QA environments for GitHub pull requests
http://prune.io/
Visual Regression Testingサービス.
Githubのpull-requestと連動して、指定ブラウザでのスクリーンショットをissueに貼り付けて見た目を比較出来る。
palantir/eclipse-typescript
https://github.com/palantir/eclipse-typescript
TypeScriptサポートをするEclipseプラグイン
Inspect Object :: Add-ons for Firefox
https://addons.mozilla.org/ja/firefox/addon/inspect-object/
Firefox Dev Toolsに選択中の要素のDOMオブジェクトを表示するボタンを追加するアドオン.
inspect($0)を行うのと同様の事をしてる。
wearefractal/gulp
https://github.com/wearefractal/gulp/
ストリーミングベースなビルドシステム.
Gruntのようにオブジェクトベースな設定ではなく、コードとして設定する方向が強くでてる。
またプラグインがひとつのアクションだけを持つように推奨されてる
http://travismaynard.com/writing/no-need-to-grunt-take-a-gulp-of-fresh-air
Koa - next generation web framework for node.js
http://koajs.com/
Expressの人たちが作ってるNodeのウェブフレームワーク.
Generatorが前提の構造になっており、Expressとアーキテクチャが違うので新規作成されてる。
Myth - CSS the way it was imagined.
http://www.myth.io/
CSSプリプロセッサ.
CSS Variablesやcolor()、calc()などCSSの仕様策定が進められてる機能を使えるTranspiler的なツール
andyearnshaw/Intl.js
https://github.com/andyearnshaw/Intl.js
ECMAScript Internationalization API (ECMA-402) 互換のAPIを実装しているライブラリ
blakeembrey/dombars
https://github.com/blakeembrey/dombars
handlebarsを使ったテンプレートにpub/subなイベントやカスタムテンプレートのヘルパーを使えるライブラリ
shootaroo/jit-grunt
https://github.com/shootaroo/jit-grunt
Gruntモジュールを遅延ロードする補助ライブラリ
palantir/tslint
https://github.com/palantir/tslint
TypeScriptをLintするツール.
ESLintみたいにルールごとに実装されている
palantir/coffeescript-to-typescript
https://github.com/palantir/coffeescript-to-typescript
CoffeeScriptをTypeScriptに変換するツール.
annotations.js
http://dacap.github.io/annotations.js/
google-code-prettifyでシンタックスハイライトしたコードに、コメントで指定した部分にアノテーション的な表示を行えるライブラリ
Speaking JavaScript - O’Reilly Media
http://shop.oreilly.com/product/0636920029564.do
2014年2月発売
Dr. Axel による JavaScriptという言語の機能、ベストプラクティスやパターン、落とし穴等についての書籍
Learning Web App Development - O’Reilly Media
http://shop.oreilly.com/product/0636920030621.do
2014年2月発売
ウェブアプリ開発についての書籍
https://github.com/semmypurewal/LearningWebAppDev
Amazon: [iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus) [単行本(ソフトカバー)]: 久保田 光則, アシアル株式会社
http://www.amazon.co.jp/o/ASIN/4774162116/amazon0abac-22/ref=nosim
2013年12月20日発売
Apache Cordova(PhoneGap)、WebViewアプリについての書籍
http://blog.asial.co.jp/1238