ECMAScript

ECMA262のIteration protocolsで遅延評価するIteratorを作る

これは何? ECMA262 6th以降にはiteration protocols(と呼ぶべきもの)が導入されている、というのは皆さんもちろんご存知のとおりだと思います。これを使ってIterator<T>.next()が呼ばれるまでmap()などを実行しない(lazy evaluationする)Iteratorを作って</t>…

RxJSをもくもくしてReactivePropertyの価値らしきものを気づかされた話(仮)

Reactive Extensions JS port(RxJS)をもくもくしていた結果、C#界隈がReactive Propertyを作り出した理由が(なんとなく)わかってきた。 Rxの流儀にのっとれば、ある値を使おうとする場合、その値を生成するObservableの結果を受けて、そのObservableも同…

option-tにPromiseへのキャストメソッドを用意したりなど

自作RustスタイルECMAScript用Option型ライブラリoption-tをいろいろアップデートしたので、リリースノートがてら書く。ご存知ない方はこちらをどうぞ。要はOption<T>/Maybe型だ。 Promiseへのキャストメソッドを用意した ECMA 262の文化には、すでにMaybeもど</t>…

Option/Maybeとかで解決していることを、さながらgolangのようにES6のdestructuring assignmentで解決する

ES6から使えるようになるdestructuring assignmentを使って、タプル的に返して受け取れば、複数の値を楽に受け取れるので、エラーハンドリング的なものが楽にできるようになりますよね!という話です。先日書いたライブラリで解決・緩和しようとしていた問題…

ES5の範囲でOption<T>型を表すライブラリ、option-t を作った

動機 初期状態で未選択なラジオボタンがあるようなフォームを作っている場合、ラジオボタンに対応するモデルの値を「この値は未選択である」というのをJSで表現するのは結構面倒くさい。チェックボックスであれば, booleanのどちらかで状態が確定するが、ラ…

状態を持ちたい訳ではないが全部関数の組み合わせにしたい訳ではない

何でもかんでもインスタンスを作る系統のオブジェクト指向は、本来持たなくても良い状態も持ってしまうコードを書きがちだしテストしにくいしデバッグしにくいので、基本的に参照透過な関数の組み合わせにするのが好きなのだけれども、そうはいってもArray.p…

ES6の前にES5のベストプラクティスを改めて考えたい

歴史認識 だいたい以下のような流れだと認識している。 IE8以前を含むECMAScript 3暗黒時代があった この時代をベースにベストプラクティスが構築 + HTML5ブームが発生した 暗黒時代なんで結構つらいし、IE9じゃないとECMAScript 5使えないし、結局辛い Coff…

Promiseはコールバックに対する聖杯ではない

ES6ならびにDOM4にPromiseが投入されることとなり、すっかりJavaScriptでよく陥るコールバック地獄に対する至高の解決策のように扱われているPromiseだが、万能の解・聖杯ではない。 たぶん誰かが既に似たようなこと書いてると思うけど、とりあえず自分の思…

軽量オブザーバJSライブラリのrev.2をリリースした

いわゆるリリースノート(宣伝とも言う)です。 少し前にこのブログで書いた、JS向けオブザーバパターンライブラリのrev.2をリリースしました。 Release · saneyuki/observer-js · GitHub リリース概要 TypeScript用型定義ファイルを追加 ObserverSubject.de…

JS用のオブザーバーライブラリを作った

超単機能オブザーバーJSライブラリを作った。 saneyuki/observer-js 動機 既存の有名MVCライブラリのどれもが気軽に使える規模・サイズじゃなかったのと、フレームワークというほど大きなものが欲しかった訳じゃなくて、本当に単機能なものが欲しかったので…

ES6 Promiseの何が美しいのか

この記事は某JavaScript Advent Calendar 2013の2日目ではありませんし、ECMAScript Advent Calendar 2013のn日目でもありません(そんなものは本稿執筆時点で存在していない事を確認しています)。単に締め切りのある原稿を書いていて、疲れてしまって好き…