BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース UberはオープンソースのFusion.jsフレームワークを発表した。

UberはオープンソースのFusion.jsフレームワークを発表した。

原文(投稿日:2018/08/16)へのリンク

UberはFusion.jsを発表した。これはオープンソースの「プラグインベースのUniversal Web Framework」である。この発表において、UberのシニアソフトウェアエンジニアであるLeo Horie氏は、Uberは数百のWebアプリケーションを構築し、Webテクノロジは迅速に変化し、ベストプラクティスは絶えず変化し続けていると説明した。何百人ものWebエンジニアが最新の言語機能を活用しながら、Webプラットフォームのダイナミックな性質を維持することは難しい課題だ。Fusion.jsは、この問題に対するUberのソリューションである。

フレームワークの評価には、フレームワークがアプリケーションを構築するのに適しているかどうかを判断するゴールと目的を理解することが重要だ。Horie氏は次のように説明する。Uberでは:

長年の技術的な負債に対処するために老朽化したWebフレームワークを改訂する必要がありました。しかし私たちは、Uberアプリのヘルスモニタリングインフラストラクチャとの互換性を維持しながら、(React,やReduxなど)エンジニアが好んでいるテクノロジを使い続けることも望みました。

このゴールを達成するためにFusion.jsはUberチームによって特定されたペインポイントを解決する:

  • サーバーサイドレンダリング、コード分割、ホットモジュール再読み込みに多くのツールを使用する時の構成と定型文
  • サーバーサイドレンダリングを抽象化する際の課題
  • 大規模コードベースの結合
  • 副作用が発生した時のテスト
  • モノリシックフレームワークにおける一般的な柔軟性

Uberのチームは、国際化やその他の必要な機能に関する問題を既存のソリューションで解決しようとした時に課題を発見した。バンドルサイズを小さく保つためにFusion.jsへのモノリシックアプローチを避けることも最優先の目標であった。

Horie氏は、次の以下が必要なエンジニアにFusion.jsをお勧めしている:

ReactやReduxのように人気のあるライブラリをサポートし、モジュール再読み込み、データを意識したサーバーサイドレンダリング、バンドル設定のサポートなどのモダンな機能があるMITライセンスされたJavaScriptフレームワーク

Fusion.jsアプリケーションは、ユニバーサルでプラグインベースであることに重点を置いている。Fusion.jsアプリケーションは、1つのエントリーポイントを持ち、サーバーとクライアントでコードの再利用ができる。Fusion.jsプラグインはユニバーサルであり、開発者は同様の利点を簡単得ることができる。

ReactとReduxを超えて、Fusion.jsは、型のためにFlowと、ミドルウェア管理のためのKoaを活用している。Jest、Enzyme、Puppeteerなどのテストツールがサポートされるほか、Fusion.jsは、fusion-test-utilsパッケージにより開発者がプラグインをテストするためのはツールを提供する。

モノリシックアーキテクチャを避けるためのプラグインアーキテクチャとdesireは、JavaScriptがmonopackagesに向かう傾向に幾分反する。ESモジュールや、コードを分割するためのwebpackなどのツールの普及に伴い、全てのパッケージを分離しなくても、バンドルサイズを小さくすることが以前よりも容易になった。しかしUberはバンドルサイズを小さくすることに焦点を置いており、複雑なWebアプリケーションを構築するにあたり、エンジニアリング組織が直面した課題に直接対応している。

プロジェクトの初期のフィードバックは混在しており、一部のエンジニアはTypeScriptではなくFlowを使うことに疑問を持っており、また、その他のフレームワークの必要性についても疑問を呈している。Fusion.jsがUber以外でも牽引力を持つのかを判断するのは時期尚早だが、組織が有益なインフラストラクチャをリリースすることを推奨している。

Fusion.jsはMITライセンスで提供されている。コントリビューションは、GitHub経由が推奨されている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT