ヽ(´・肉・`)ノログ

How do we fighting without fighting?

ember.jsやってみる2

http://emberjs.com/ から Starter Kit をダウンロードする.

解凍して,git リポジトリに登録しておく.

Ember.js Guides

To get started, select a topic from the left. They are presented in the order that we think will be most useful to you as you're learning Ember.js

(始めるにあたり,トピックを左から選んでね.Ember.js を学ぶのに役に立つと思う順番にしてあるよ.) ということなので,左上から始めていこう.

Concepts

Core Concepts

理解しておくと良い Ember.js のコンセプトについて書いてある.

ネイティブアプリと競えるような,大きな web アプリケーションを作れるようにしたい.そのために,洗練されたツールと,コンセプトを誤解なく説明できる良い呼び名の 2 つが必要.

ずっと Cocoa のようなネイティブアプリフレームワークからアイディアを借りてたけど,しっくりこなかったので Ruby on Rails や Backbone.js のようなプロジェクトから借りることにした.

全体として Ember.js はネイティブアプリの資産を受けついで,軽量なウェブアプリの感性で使えるツールになっている.

Concepts

Templates

Handlebars というテンプレート言語で書き,アプリケーションのユーザーインタフェースについて記述する.普通の HTML に加えて,以下の点ができるようになる.

Views

ビューはテンプレートの中に埋めこんでおいて,プリミティブなイベント(クリックやタップやスワイプなど)をアプリケーションで意味のあるイベントに変換してコントローラーに送る.

例えば,ビューが「クリック」イベントを(イベントの意味がわかりやすい)「アイテム削除」イベントに変換して,コントローラに送った場合,コントローラが「アイテム削除」イベントを実装していなければ,イベントは現在のルーターに送られる.

↑(「例えば」の意味がわからなかった)

Controllers

コントローラはアプリケーションの状態を取っておくオブジェクト.テンプレートはコントローラーに繋げられて,コントローラーの現在の状態を HTML に変換する.

コントローラはテンプレート用にモデルを再表現することがしばしばある.そういう場合,モデルのプロパティはコントローラを通してテンプレートに送られ,コントローラ部分でテンプレートが期待している形に変換したり,値を追加したりできる.

Models

モデルは永続化した状態を取っておくオブジェクト.アプリケーションが操作したり,ユーザーに値を渡す元となるデータのこと.モデルはふつう,サーバーから読み込まれて,クライアントで変更があった場合にセーブするためにサーバーに送られる.

Ember Data を使って,Ember.js の関連や計算結果などを保持したまま,普通の JSON 形式でサーバーに送ることができる.

Router

ルーターはアプリケーションの状態を管理するのに責任を持つオブジェクト.

ユーザーがアプリケーションを始めたとき,ルーターは URL を見て,意図通りのテンプレートが表示されるようにする.そしてそのテンプレートに意図通りのモデルを組み合わせる.

ユーザーがアプリケーションの状態を変更したとき,ルーターは自動的に URL を最新にする.ユーザーは URL を保存でき,後で保存した状態から再開したり,他の人と状態を共有できたりする.


以上が Ember アプリを作るときに知っておくべきコアコンセプトになる.もしあなたがこれらを守るなら,私たちは複雑なシステムでもスケールアップするようにデザインしてきている.だからたとえ新しい機能を追加してもあなたがシステム全体を書き変えなくてもすむようになっている.

私たちは複数の開発者が問題を見ることができ,フレームワークのパターンを使い,同じ解決策に到達することが大事だと考えている.上記のオブジェクトの役割がわかったなら,深く Ember.js のことを理解する用意ができたので,それぞれのオブジェクトが詳しくはどう動くのかを学んでいこう.

このエントリーをはてなブックマークに追加