BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース TwitterはイベントベースのコンポーネントフレームワークであるFlightをオープンソースした

TwitterはイベントベースのコンポーネントフレームワークであるFlightをオープンソースした

原文(投稿日:2013/02/01)へのリンク

 

Twitterは、Flightオープンソースにした。このフレームワークは社内で、彼らのウェブサイトに様々な機能を提供するために実稼働で使われている。

Twitter Flightは、イベントベースのフレームワークで既存のDOM構造に機能を追加するのに役立つ。Flightはデータをモデル化しない、HTMLをレンダリングするフレームワークでもない、リクエストのルーティング、ページテンプレート、ブラウザ対サーバ・レンダリングも処理しない。その代わりに、DOMノードに付加されたコンポーネントが高度に分離されたフレームワークで、これらのノードでイベントが呼び出された時に、目的の機能を提供する。

Flightコンポーネントは完全にお互いを知らない。コンポーネントは他のコンポーネントへの参照を保持することができない。コンポーネントは別々に定義され、インスタンスはノードに加えられる時に、生成される。コンポーネントは加えられたノードへの参照は保持している。次にコンポーネントはイベントを登録し、DOMイベントメカニズムを使って、イベントを送受する。コンポーネントがイベントを受けとっても、そのイベントはどのノードやコンポーネントから来たかは知らない。コンポーネントは、定義された時に決められたそれぞれのイベントに関連付けられた機能を実行するだけである。

このイベントメカニズムを使って、Flightでは、開発者は他のコンポーネントに依存すること無く、非結合のコンポーネントを書き、テストし、デバッグできる。コンポーネントは、他のコンポーネントが自分達の仕事をするためにそこに、いなくても、動くはずである。

フレームワークはまた、ミックスインを定義している。これはコンポーネントや他のミックスイン間で共有できる小さな機能である。ミックスインは、JavaやC#のようなOOP言語におけるインターフェースに似ている。

Twitterは、昨年彼らのウェブサイトを刷新した 時に実稼働でFlightを使い始めた。今では、彼らはMIT ライセンスの元で、そのコードをオープンソースし、デモアプリケーションドキュメントも付けて、それをどう設定し、コンポーネントの作成、テスト、デバッグの仕方を説明している。

Flightには若干依存するものがある。ES5-shimは古いブラウザをサポートするため、JQueryはDOM操作APIのために要る。フレームワークは全ての主要なブラウザ、Firefox, Safari, Chrome, Opera、IE7+で動作する。

 

この記事に星をつける

おすすめ度
スタイル

BT