Trend of JavaScript Architecture

jQuery から Backbone.js、

そしてその先へ。

jQuery


  • DOM の煩雑な API 仕様を簡略化
  • UA 間の非互換性への polyfill を提供
  • JavaScript のベストプラクティス


最大限ラクしてどこでも動くコードが書ける

  • 構造化の方法は未提供


"単語は提供するけど、文法は自分で考えてね"

Backbone.js


  • 構造化の手段を提供
  • 見通しの良いコードを書ける仕組み
  • "do one thing and do it well" の実現
  • 保守性の向上が期待できる


jQuery が提供しないレイヤーの提供

"文法を用意するから、
jQuery の単語で自由に文章を書いてね"

Perfect?


共通の

  • ワード
  • グラマー


他に必要なもの...?

Vocaburary!


いくら単語と文法を用意しても、
コミュニケーションをする者同士が
コンテキストを共有出来ないと

意味がない

Tons

of

vocabulary


プログラマが共有する語彙は沢山ある

Especially,

for

JavaScript-ers


たぶん特に JSers に必要な語彙は...

Decoupling


疎結合

別に JSers に限らずだけど。

  • JavaScript は密結合しやすい言語
  • ただ書いていくと変更出来ないコードに
  • でも機能追加変更は割とカジュアルに発生する業界

Love

Death-March, or protect

yourself





Solution?

Bacon.js



"A small functional reactive programming lib for JavaScript."

Decoupling


疎結合を実現するキーワード

  • Declarative
  • Stateless
  • Asynchronous
  • Compositional

Declarative


宣言的な定義...

「名は体を表す」ように、
function の役割を "do one thing and do it well" に。

Stateless


国境のない... ではなく、

前後関係に依存しない、
状態に依存しないコードの実現。

Asynchronous


もちろん、

非同期処理も。

Compositional


Observer pattern では解決出来ない、

様々な状態の複合的条件の組み合わせを、
一つのオブジェクトから参照可能にする魔法。

Functional Reactive Programming


Bacon.js の提供するパラダイムの総称。

略して FRP

Trend moves


Backbone.js による構造化の流行の先にあるのは、

Functional Reactive Programming による
複雑な問題の解決だ (キリッ

More


trend of javascript architecture

By Yu I.

trend of javascript architecture

  • 674