JSer.info #310 - RxJS 5がリリースされました。
MicrosoftがメンテナンスしていたReactive-Extensions/RxJS(RxJS 4)を書き直したバージョンで、互換性がある部分はありますがAPIも色々変更されています。
v4からv5へのマイグレーションは次のドキュメントにまとめられています。
RxJS v5は現在Stage 1のECMAScript Observable Proposalに準拠した実装です。
(Stage 1なので仕様自体が変わる可能性はあります)
また、デバッグのしやすさやパフォーマンスなどが改善され、Rxの特徴と言えるOperatorが整理されています。
AngularJS 1.xの最新版であるAngularJS 1.6.0がリリースされました。
詳しい変更点はCHANGELOGにかかれています。
jqLiteをjQuery 3の挙動に合わせるように変更、Expression Sandboxを削除。
また、JSONPリクエストはホワイトリストがデフォルトになるなど多数のBreaking Changeが含まれています。
AngularJS 1.xはsemverではありませんが、2.0からはsemverに沿う方針へ変更されています。
加えて2.0はタイムラインベースのアップデートも行うため、Angaular 2からは半年ごとのmajorアップデートを行います。
また、3.xは@angular/router
がすでにv3を使っていて、バージョンがずれてしまうため、次のメジャーバージョンはv4となるそうです。
詳しくは、次の記事で解説されています。
- Angular: Ok... let me explain: it's going to be Angular 4.0, or just Angular
- Angularの次バージョンは「Angular 4」に、2017年3月リリース。今後は単に「Angular」と呼んでほしいと - Publickey
AngularのLTSについては特に決まっていないようです。
date-fns - modern JavaScript date utility libraryというライブラリはMoment.jsのように日付周りを扱うutility集ライブラリです。
Lodashのように、それぞれの操作を独立した関数として扱うことが目的の一つとなっています。
そのため、必要なものだけを読み込んで使うことができます。
また、Moment.jsは基本的にMutableなAPIとなっていますが、date-fnsはImmutableなAPIとなっています。
- Moment.jsでもImmutableに扱うAPIの提案がでています
- Support a pseudo-immutable API (first-party Frozen Moment) by butterflyhug · Pull Request #2 · moment/moment-rfcs
まだ開発中の部分もありますが、現在の状況は次にまとめられています。
お知らせ
JSer.info 6周年と300回記念イベント - connpassの抽選結果が発表されています。
まだ、発表枠があるので何か話したい事がある人は申し込んで見てください。
また、当日JavaScript Discussionというコーナーで次の質問ボードを元に議論する時間が設けています。
質問、聞きたいこと、話したいこと、主張を書き込むことができます。
当日も時間を取りますが、事前に書いてもらっても問題ありません。
気になる質問は で投票すると上に来るのでテーマとして取り上げやすくなります。
ヘッドライン
rxjs/CHANGELOG.md at master · ReactiveX/rxjs
github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md
RxJS 5.0.0リリース
jsdom/Changelog.md at 9.9.0 · tmpvar/jsdom
github.com/tmpvar/jsdom/blob/9.9.0/Changelog.md
jsdom 9.9.0リリース。
document.createCDATASection
、node.wholeText
のサポート、バグ修正など
Release v5.0.0 · reactjs/react-redux
github.com/reactjs/react-redux/releases/tag/v5.0.0
React-Redux v5.0.0リリース。
後方互換性はあるけどメジャーアップデート、connect()
のオプションを追加、connectAdvanced()
を追加など
webpack 2.2: The Release Candidate – webpack – Medium
medium.com/webpack/webpack-2-2-the-release-candidate-2e614d05d75f
webpack 2.2.0 RCリリース。
2.x系初のRCリリースとなってる
Release v0.37.0 · facebook/flow
github.com/facebook/flow/releases/tag/v0.37.0
Flow v0.37.0 リリース。
built-in libの定義を更新、declare module
内でimport type
とimport typeof
を使えるようになるなど
Angular: Angular 1.6.0 released
angularjs.blogspot.com/2016/12/angular-160-released.html
AngularJS 1.6.0リリース。
jqLiteをjQuery 3の挙動に合わせるように、expression sandboxを削除。
また、JSONPリクエストはホワイトリストがデフォルトになるなど多數のBreaking Changeが含まれている
- angular.js/CHANGELOG.md at master · angular/angular.js
- AngularJS: Developer Guide: Migrating from Previous Versions
- Angular: Angular 1.6 - Expression Sandbox Removal
アーティクル
Angular: Ok... let me explain: it's going to be Angular 4.0, or just Angular
angularjs.blogspot.com/2016/12/ok-let-me-explain-its-going-to-be.html
AngularJSの次のメジャーバージョンは4を予定している話。
既に@angular/router
がv3であるため、合わせるためにv4へあげる。
2017年3月にリリースする予定
Performance Calendar » Prefer DEFER Over ASYNC
calendar.perfplanet.com/2016/prefer-defer-over-async/
deferとasync属性について。 どちらもHTMLパースのブロックはしないが、レンダリングのブロックは発生する。
deferは常にdomInteractiveが起きてから実行するため一定、しかしasyncはダウンロード速度によってはメインと被ることもある。
メインコンテンツに関係ないレンダリングを行うスクリプトはdefer属性を試すことで、メインのレンダリングが邪魔されずに進むかを確認した方が良いという話。
JavaScript Clean Coding Best Practices | @RisingStack
blog.risingstack.com/javascript-clean-coding-best-practices-node-js-at-scale/
読みやすいJavaScriptのコードを書くためのプラクティス
Writing Declaration Files for @types | TypeScript
blogs.msdn.microsoft.com/typescript/2016/12/14/writing-dts-files-for-types/
TypeSriptのDefinitelyTyped向けに型定義ファイルを書く方法について
手で書く方法とdts-genを使う方法について
実況中継シリーズ Vue.jsで実現するMVVMパターン Fluxアーキテクチャとの距離 - Re.Ra.Ku アドベントカレンダー day 13 - Re.Ra.Ku tech blog
techblog.reraku.co.jp/entry/2016/12/13/080000
MVVMとFluxのアーキテクチャに似ている部分と異なる部分について
SurviveJS - Inferno - Blazing fast, React-like UI library - Interview with Dominic Gannaway
survivejs.com/blog/inferno-interview/
ReactライクなVirtual DOMを使ったUIライブラリであるInfernoの特徴について。
どのような仕組みで動いているのか、Reactなどとの違いについて
The Inner Workings Of Virtual DOM – Medium
medium.com/@rajaraodv/the-inner-workings-of-virtual-dom-666ee7ad47cf
(Preactの)Virtual DOMがどのような処理を経てレンダリングされているのかを追った記事。
Virtual DOMの最適化処理についてなど
Cross-Browser HTML5 Form Validation is Finally Here! Now What? -Telerik Developer Network
developer.telerik.com/topics/web-development/cross-browser-html5-form-validation-finally-now/
HTML5 Form Validation APIについて。
WebKitもサポートしたので、すべてのブラウザで利用できるようになった
スライド、動画関係
Professor Frisby Introduces Composable Functional JavaScript - Course by @drboolean @eggheadio
egghead.io/courses/professor-frisby-introduces-function-composition
JavaScriptでのFunctionalプログラミングについてのスクリーンキャスト。
Either的な実装やカリー化などについて解説してる
Vue.js Fundamentals - YouTube
www.youtube.com/playlist?list=PLwAKR305CRO_1yAao-8aZiQnBqJeyng4O
Vue.js 2.0のチュートリアル動画
ECMAScript: latest and upcoming features // Speaker Deck
speakerdeck.com/rauschma/ecmascript-latest-and-upcoming-features
ES2016/ES2017と今Stage 3であるProposalについての紹介スライド
ソフトウェア、ツール、ライブラリ関係
Npm Desktop Manager
npmのパッケージを管理するGUIアプリケーション
date-fns/date-fns: ⏳ Modern JavaScript date utility library ⌛️
Date周りの操作を提供するライブラリ。
lodashのように利用する関数だけを取り出して使えるようにするのが目的となってる
simple-statistics/simple-statistics: simple statistics for node & browser javascript
github.com/simple-statistics/simple-statistics
統計的な関数のコレクションライブラリ。
Pythonのsimplestatisticsのport。