BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース BoxがT3 JavaScriptフレームワークをリリース

BoxがT3 JavaScriptフレームワークをリリース

原文(投稿日:2015/04/23)へのリンク

オンラインストレージとコンテントプラットフォームのBoxが,フロントエンドJavaScriptフレームワークを新たにオープンソースにした。T3と名付けられたこのフレームワークの目標は,大規模アプリケーションをもっと小さな,独立したコード片に分解して,この種のアプリが遭遇する問題を解決することにある。

T3を紹介する記事の中で,BoxのプリンシパルアーキテクトのNicholas Zakas氏は,開発の目的について,巨大なコードベースで複数の開発者が作業する時にチームが直面した,内部的な問題を解決するためであったことを明かしている。“私たちが望みを叶えてくれる選択肢が他になかったのです”,Zakas氏はInfoQとのインタビューで語っている。

既存のソリューションのほとんどは,MVCベースのアーキテクチャの方向を向いていますが, 私たちは違うものが欲しかったのです。他にもいくつかの概念はありますが,既存のものはどれも十分でなかったので,T3を開発することにしました。

コンポーネントには次の3つの種類がある。

  • サービス
  • モジュール
  • ビヘイビア

ToDo Listのサンプルでは,プロジェクトはコードを提示するだけでなく,コードの各部分が何を行うのかも説明されている。例えば,アイテムの状態を管理するコードの説明では,次のように表記されている。

各モジュールはすべて独立していて,それぞれがtodo状態を管理するサービスと通信を行います。todo-dbサービスがアプリのライフサイクル全体に対して,タスクの追加,削除,生成を管理します。

T3のサービスの概念は,Angularのものなどと類似している。サービスの登録にはApplicationを使用する。

Application.addService('router', function(application) {
    return {
        route: function(url, state) {
            history.pushState(state, '', url);
        }
    };
});

依存性注入を利用するAngularと違い,T3のサービスには,Applicationグローバルインスタンス上の要求を通じてアクセスする。

var router = Application.getService('router');
router.route('/home', {});

Reactと同じくT3は,他のフレームワークの利用を妨げることはない。“BackboneやReact,あるいは他のフレームワークを,T3に加えて使用する妨げになるものは何もありません。T3は個々のコードを整理するのに役立つだけでなく,技術陣が必要とする,クライアント側スタック全体の把握を可能にしてくれます。” とZakas氏は述べている。

Hacker Newsの議論に参加した開発者たちは,チームの成果を称賛しながらも,T3のコンポーネントをEmberやAngular,Meteorのものと比較している。ユーザのDigitalSea氏はT3について,何も目新しいものがないことを不満に感じている

Boxが新たに,JavaScriptフレームワークを開発しなければならなかった理由が理解できません。一体何が不足なのでしょう?フロントエンド開発者として興味はありますが,他のフレームワークにはないものをT3が提供してくれているとは思えないのです。

Zakas氏はT3が,特定のタイプのアプリに適している,と述べている。“MVCアーキテクチャやシングルページアプリなど,他のアプローチでも動作は可能ですが,プログレッシブな拡張においては,間違いなくメリットがあります。” BoxではT3を,デスクトップアプリケーションとモバイルWebアプリケーションの両方で利用している。

T3はGitHubで公開されている。

この記事に星をつける

おすすめ度
スタイル

BT