9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

Uber 宣布开源 Fusion.js 框架

  • 2018-08-21
  • 本文字数:1172 字

    阅读完需:约 4 分钟

Uber 宣布开源 Fusion.js ,这是一个“基于插件的通用 Web 框架”。在发布说明中,Uber 的高级软件工程师 Leo Horie 说到,Uber 已经构建了上百个基于 Web 的应用,随着 Web 技术的快速变化和最佳实践的持续演化,让数百位 Web 工程师充分利用现代语言的特性,同时还要跟上 Web 平台的动态化发展确实是一项很大的挑战。而 Fusion.js 就是 Uber 为该问题所给出的解决方案。

在评估框架的时候,很关键的一点就是要理解框架的目标和目的,从而决定某个框架是否适合构建你的应用。Horie 是这样描述 Uber 的现状的:

需要改造陈旧的单体 Web 框架,解决数年的技术债所带来的挑战。但是,我们还希望让工程师能够继续使用他们所热爱的技术(如 React 和 Redux),同时保持与 Uber 的应用健康监控基础设施的兼容性。

为了达成这一目标,Fusion.js 能够解决 Uber 团队所识别出的如下痛点:

  • 在服务器端渲染、代码拆分和模块热加载时,使用的工具需要配置以及样板代码
  • 抽象服务端渲染时所面临的挑战
  • 大型代码库的耦合
  • 当出现副作用时的测试
  • 单体框架的灵活性

Uber 团队在与已有的解决方案进行协同工作时遇到了挑战,在集成国际化和其他特性时也困难重重。Fusion.js 还有一个主要目标就是避免单体的方式,从而保持 bundle 文件的体积比较小。

Horie 这样向工程师们推荐 Fusion.js:

Fusion.js 是一个基于 MIT 许可证的 JavaScript 框架,支持 React 和 Redux 等流行库,并提供了很多现代特性,如模块热加载、数据感知服务器端渲染和对 bundle 拆分的支持。

Fusion.js 应用重点强调的特点是通用性和基于插件。Fusion.js 有一个入口点文件,使得它能够在服务器端和客户端重用代码。Fusion.js 的插件是通用的,这样的话就能让开发人员很容易实现类似的功能。

除了 React 和 Redux 之外,Fusion.js 还利用 Flow 实现类型安全并使用 Koa 进行中间件管理。Fusion.js 支持像 Jest、Enzyme 和 Puppeteer 这样的测试工具,同时还为开发人员提供了工具,以便于借助fusion-test-utils 包来测试插件。

插件架构以及避免单体架构风格似乎在一定程度上与JavaScript 最近的发展趋势背道而驰,最近的趋势是单个包(monopackage)。随着ES 模块的广泛采用并且有webpack 这样的工具来处理代码的分割,我们比以往更容易减少bundle 的大小,而且无需将所有的包分离开来。但是,Uber 所强调的更小的bundle 体积是对其工程团队在构建复杂Web 应用时所面临挑战的直接回应。

这个项目的最初反馈毁誉参半,有些工程师质疑为何采用Flow 而不是TypeScript,有些人则不明白为何还需要另外一个框架。现在判断Fusion.js 是否能够在Uber 之外得到关注还为时尚早,但是看到有这样的组织发布对他们有益的基础设施还是很令人鼓舞的。

Fusion.js 可以基于 MIT 许可证获取,他们鼓励工程师通过 GitHub 为该项目做出贡献。

查看英文原文: Uber Announces Open Source Fusion.js Framework

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2018-08-21 09:313090

评论

发布
暂无评论
发现更多内容

怎么添加或删除电脑上的应用软件呢?

InfoQ IT百科

将node项目部署到云服务器详细教程

CRMEB

24小时自助洗车加盟怎么收费?

共享电单车厂家

自助洗车加盟 24小时自助洗车

常见的杀毒软件有哪些?

InfoQ IT百科

淘宝小程序体验优化:数据分析和优化实践

阿里巴巴终端技术

小程序 数据分析 体验优化 性能模型

浅析mysql性能优化

乌龟哥哥

4月月更

截图快捷键是什么?

InfoQ IT百科

java高级用法之:绑定CPU的线程Thread-Affinity

程序那些事

Java Netty 程序那些事 4月月更

活动报名 | 如何基于开源项目 Tapdata PDK,快速完成数据源和目标的开发?

tapdata

数据库

怎么建立无法删除的文件夹?

InfoQ IT百科

post接口请求测试,通俗易懂!

Liam

测试 Postman swagger 测试工具 jmetere

如何使用hardhat进行合约uups模式升级

BSN研习社

区块链

如何将PDF转换成Word?

InfoQ IT百科

TASKCTL 用户权限操作设置

TASKCTL

DevOps 分布式 敏捷开发 ETL系统 自动化运维

自助洗车加盟!自助洗车品牌大全

共享电单车厂家

自助洗车加盟 自助洗车品牌

限时好礼 | MongoDB又有新书籍出炉啦!

MongoDB中文社区

mongodb

怎么转换视频的格式?

InfoQ IT百科

百万奖金,首届船海数据智能应用创新大赛正式开赛

科技热闻

TASKCTL 调度平台服务节点管理

TASKCTL

DevOps 分布式 自动化部署 Kafka ETL TASKCTL

png、jpg这两种图片格式有什么不同?

InfoQ IT百科

电脑上微信聊天记录的默认保存路径是在哪里?

InfoQ IT百科

如何用Excel画图?

InfoQ IT百科

6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

MASA技术团队

C# .net 测试 压测 测试工具

深入浅出 Zookeeper 中的 ZAB 协议

悟空聊架构

zookeeper ZAB 4月日更 悟空聊架构 4月月更

在 Amazon QuickSight 中使用 Athena 数据连接器可视化 DynamoDB 数据

亚马逊云科技 (Amazon Web Services)

DevOps 亚马逊云科技 career tutorial

百万奖金,首届船海数据智能应用创新大赛正式开赛

科技热闻

深挖房地产行业数智化转型升级价值,推动地产管理革新

数商云

产业互联网 数字化转型 企业数字化

自助洗车机加盟项目要怎么加盟

共享电单车厂家

自助洗车加盟 自助洗车机项目

加盟自助洗车需要符合什么条件

共享电单车厂家

加盟自助洗车 自助洗车加盟条件

如何发起 MQTT 亿级连接和千万消息吞吐性能测试

阿里巴巴云原生

24小时自助洗车设备厂家哪家好?

共享电单车厂家

自助洗车机厂家 24小时自助洗车 自助洗车机设备

  • 扫码添加小助手
    领取最新资料包
Uber宣布开源Fusion.js框架_JavaScript_Dylan Schiemann_InfoQ精选文章