歌舞伎座.tech#7「Reactive Extensions」での発表資料 http://kbkz.connpass.com/event/12597/Read less
追記: 情報が色々と古くなったため、2020年に書き直した版へのリンクを張っておきます。 この記事は VirtualDOM Advent Calendar 2014 - Qiita の初日です。 初日ということで、基調講演風に、Virtual DOMとはなにか、なぜ僕はこんな興奮しているのか!という話から。 Virtual DOMとはなにか 既存の概念で当てはめると、JavaScriptのMVC, MVW(Whatever)フレームワークのViewに位置します。が、その程度では終わりません。仮想DOMとは世界を革命する力であり、このjQueryのDOM操作で汚れきったフロントエンドを救う救世主なのです。 現時点で自分が知っている限りは、以下の実装を指します。 facebook/react 最も使われてるFacebookの実装 Matt-Esch/virtual-dom Altenative
もう半年以上前に作ったやつですけどせっかくなので解説。 JavaScriptでプログラミングをやっていると人は誰しもシンセを作りたくなるかと思います。僕も3年くらい前にWeb Audio Synthというのを作りました。 いまはウェブブラウザもオーディオやMIDIのAPIが充実してきてシンプルな単音のシンセを作るのは簡単になりました。でもちょっと和音を弾きたくなってポリシンセに拡張しようと思うとこれがけっこう大変だったりします。 同時発音数6ボイスのポリシンセを作るとなったら、ほんとうにモノシンセを6個分実装する必要があります。さらに、和音を弾いている最中に追加で音を重ねるときなど空いているボイスをさがして割り当てるといったオブジェクトプーリングの仕組みが必要になります。 また、いくつかシンセを作っていると、鍵盤のUIやMIDI入力の対応など定型的で毎回同じ作業があることに気づいてきます。
function Person() { this.name = "takashi"; this.age = 20; }; Person.prototype.echo = function () { return "Hello " + this.name + " !!"; }; コンストラクタ、メソッドを書いただけで、コード量が増えてきましたね。 毎回クラス名とprototypeと書く必要があります。 めげてきましたか? 私はめげてます。 次は継承してみましょう。 function inherits(ctor, superCtor) { ctor.super = superCtor; ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writ
進化の早いJavaScript界隈に新しいアプローチのフレームワークが登場しました。Jan Lehnardt氏が中心になって開発されているHoodieはフロントエンドとバックエンドを完全に分離する事でそれぞれの開発効率を最大限にするnoBackendの実装の一つです。Hoodieはサーバーサイド用のモジュールとクライアント用のライブラリの2つから成っており、サーバーサイドが起動している状態であればクライアント側からは例えば下記のコードだけでユーザの登録ができます。 hoodie = new Hoodie('http://localhost:6007/_api'); hoodie.account.signUp('joe@example.com', 'secret'); すでに登録されたデータを取得する場合は下記のようになります。 var type = 'task'; hoodie.store
結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 一年ほど前に JavaScript - jQuery.Deferredを使って楽しい非同期生活を送る方法 - Qiita [キータ] という記事を書きました。 で、一年経って、ふと、「もっと分かりやすくjQuery.Deferredの便利さを説明できるんじゃないか」と思い立ってざざざっと書いてみました。 小話と言うにはちょっと長いけど。 -- jQuery.Deferredを使うと嬉しいのは、jQuery.Deferredの仕様を満たす部品同士を簡単に組み合わせることが可能だからです。中には処理を書き下すことができるとかコールバックのネストを防げるのがいいとか言う人もいますが、個人的にこっちのほうがよっぽど重要だと感じます。 例えるならレゴブロックです。レゴブロックはあの凸と凹を持ってるブロックを自由に組み合
Thomas Schranz氏は自社製品の Blossom を,Dart に移植すると ブログ記事 に発表した。Blossom は開発チームのための製品で,Webベースのカンバン方式ボードである。DartはGoogleの開発した,JavaScriptの代替として利用可能な新しいWebプログラミング言語とプラットフォームだ。 今回の決定について氏は,JavaScriptエコシステムのフラグメンテーションに対して同社がこれまで長く抱いていた不満の結果だ,と 書いている。 Blossom ではJavaScriptを積極的に利用しました。JavaScriptはいろいろな面で素晴らしい言語です。ただし,その暗黒面を回避する手段を知っているならば,ですが。というのは,JavaScriptのエコシステムには,多くの面で重要なものが欠けていると思うからなのです。コア部分に関しては特にです。 何か事を始めよ
Captcha security check ectjs.com is for sale Please prove you're not a robot View Price Processing
Kei Nakazawa @muo_jp https://t.co/cVgJrfc3 JSXからJSコード生成周辺の最適化ここらかな。クラスや関数を出来る限りfinalに、即値演算をプリプロセス、5ステートメント以内でローカル変数を含まない関数をインライン展開、単純なif-ret展開ってとこか。かっこいいやだー #jsx 2012-05-31 08:16:35
*JSはJavaScriptにC言語ライクのメモリ管理を実装するライブラリです。 JavaScriptがどうも手になじまない…そう感じているコンパイル系言語を得意とする方に試してもらいたいのが*JSです。JavaScriptにC言語に似た特性を追加するJavaScriptライブラリです。 変数の型を指定できます。異なる型にキャストしようとするとエラーになります。 データ型と演算です。 ポインタです。 関数の戻り値も指定できます。 swap関数で変数を入れ替えている例です。 mallocもあります。 *JSを使うと型の定義、構造体、ポインタ、メモリの確保と解放などおおよそスクリプト言語のJavaScriptとは思えないほどの機能が追加されます。これまでにないJavaScriptを体験したい人はぜひお試しを。 *JSはJavaScript製のソフトウェア(ソースコードは公開されていますがライセ
js.jsはJavaScriptによるJavaScript実装です。サードパーティのJavaScriptをサンドボックス化し安全に実行します。 最近ブログパーツやシェアボタンをはじめとして外部サービスのJavaScriptコードを埋め込んで動作させたりすることが増えています。しかし外部のサービスにセキュリティ上の問題がある可能性もあります。そこで作られているのがJavaScriptによるJavaScript実装であるjs.jsです。 デモです。 コードです。"1 + 1"を実行しています。 他の計算処理を行っているデモです。 Tweetボタンを表示するデモです。Twitterから送られるものをそのまま実行する訳ではないのが肝です。 js.jsは文字列のJavaScriptコードを評価し、安全に実行できます。サンドボックス状態で実行するのでセキュアです。ただし完全に独立する訳ではなく、コール
ベンチマークのソースコードは、 http://bit.ly/pNNmGY で公開されているようです。 疑問に思ったポイントは、javascriptの文字列連結が速すぎることですね。。 buf+=s+s+s 0.066 私の環境で測定してみたところ、0.022でした。 比較して、C++で0.450、Java7で0.350です。 該当のコード
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く