Fork me on GitHub

2016-12-20のJS: RxJS v5、Angular、date-fns

Edit on GitHub 編集履歴を見る

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のLTSについては特に決まっていないようです。


date-fns - modern JavaScript date utility libraryというライブラリはMoment.jsのように日付周りを扱うutility集ライブラリです。
Lodashのように、それぞれの操作を独立した関数として扱うことが目的の一つとなっています。
そのため、必要なものだけを読み込んで使うことができます。

また、Moment.jsは基本的にMutableなAPIとなっていますが、date-fnsはImmutableなAPIとなっています。

まだ開発中の部分もありますが、現在の状況は次にまとめられています。


お知らせ

JSer.info 6周年と300回記念イベント - connpassの抽選結果が発表されています。
まだ、発表枠があるので何か話したい事がある人は申し込んで見てください。

また、当日JavaScript Discussionというコーナーで次の質問ボードを元に議論する時間が設けています。
質問、聞きたいこと、話したいこと、主張を書き込むことができます。
当日も時間を取りますが、事前に書いてもらっても問題ありません。

気になる質問は :+1: で投票すると上に来るのでテーマとして取り上げやすくなります。


ヘッドライン


rxjs/CHANGELOG.md at master · ReactiveX/rxjs

github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md

JavaScript library ReleaseNote

RxJS 5.0.0リリース


jsdom/Changelog.md at 9.9.0 · tmpvar/jsdom

github.com/tmpvar/jsdom/blob/9.9.0/Changelog.md

JavaScript DOM library ReleaseNote

jsdom 9.9.0リリース。
document.createCDATASectionnode.wholeTextのサポート、バグ修正など


Release v5.0.0 · reactjs/react-redux

github.com/reactjs/react-redux/releases/tag/v5.0.0

React redux ReleaseNote

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

webpack 2.2.0 RCリリース。
2.x系初のRCリリースとなってる


Release v0.37.0 · facebook/flow

github.com/facebook/flow/releases/tag/v0.37.0

flowtype ReleaseNote

Flow v0.37.0 リリース。
built-in libの定義を更新、declare module内でimport typeimport typeofを使えるようになるなど


Angular: Angular 1.6.0 released

angularjs.blogspot.com/2016/12/angular-160-released.html

AngularJS ReleaseNote

AngularJS 1.6.0リリース。
jqLiteをjQuery 3の挙動に合わせるように、expression sandboxを削除。
また、JSONPリクエストはホワイトリストがデフォルトになるなど多數のBreaking Changeが含まれている


アーティクル


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

AngularJSの次のメジャーバージョンは4を予定している話。
既に@angular/routerがv3であるため、合わせるためにv4へあげる。
2017年3月にリリースする予定


Performance Calendar » Prefer DEFER Over ASYNC

calendar.perfplanet.com/2016/prefer-defer-over-async/

JavaScript browser performance

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

読みやすいJavaScriptのコードを書くためのプラクティス


Writing Declaration Files for @types | TypeScript

blogs.msdn.microsoft.com/typescript/2016/12/14/writing-dts-files-for-types/

TypeScript

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

MVC Flux JavaScript

MVVMとFluxのアーキテクチャに似ている部分と異なる部分について


SurviveJS - Inferno - Blazing fast, React-like UI library - Interview with Dominic Gannaway

survivejs.com/blog/inferno-interview/

JavaScript React

ReactライクなVirtual DOMを使ったUIライブラリであるInfernoの特徴について。
どのような仕組みで動いているのか、Reactなどとの違いについて


The Inner Workings Of Virtual DOM – Medium

medium.com/@rajaraodv/the-inner-workings-of-virtual-dom-666ee7ad47cf

VirtualDOM React

(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 JavaScript

HTML5 Form Validation APIについて。
WebKitもサポートしたので、すべてのブラウザで利用できるようになった


スライド、動画関係


Professor Frisby Introduces Composable Functional JavaScript - Course by @drboolean @eggheadio

egghead.io/courses/professor-frisby-introduces-function-composition

JavaScript 関数型プログラミング

JavaScriptでのFunctionalプログラミングについてのスクリーンキャスト。
Either的な実装やカリー化などについて解説してる


Vue.js Fundamentals - YouTube

www.youtube.com/playlist?list=PLwAKR305CRO_1yAao-8aZiQnBqJeyng4O

JavaScript library video

Vue.js 2.0のチュートリアル動画


ECMAScript: latest and upcoming features // Speaker Deck

speakerdeck.com/rauschma/ecmascript-latest-and-upcoming-features

ECMAScript slide

ES2016/ES2017と今Stage 3であるProposalについての紹介スライド


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


Npm Desktop Manager

720kb.github.io/ndm/

npm GUI

npmのパッケージを管理するGUIアプリケーション


date-fns/date-fns: ⏳ Modern JavaScript date utility library ⌛️

github.com/date-fns/date-fns

JavaScript library

Date周りの操作を提供するライブラリ。
lodashのように利用する関数だけを取り出して使えるようにするのが目的となってる


simple-statistics/simple-statistics: simple statistics for node & browser javascript

github.com/simple-statistics/simple-statistics

JavaScript 統計

統計的な関数のコレクションライブラリ。
Pythonのsimplestatisticsのport。


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