阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Facebook 开源 Nuclide 项目

  • 2015-06-30
  • 本文字数:1420 字

    阅读完需:约 5 分钟

作为全球最大的社交网站,Facebook 与“开源”关系密切。其开源项目负责人James Pearce 曾公开表示,Facebook 不仅起源于开源平台,也一直致力于建设一个完整的开源“栈”环境。仅2014 年,Facebook 就设立了107 项开源项目,使其总的开源项目超过200 个。通过开源项目的方式,Facebook 创建良好的生态环境,吸引了外界大量的优秀开发者为其工作。近日, Facebook 正式开源了Nuclide 项目

其实,在相继开源 Hack HHVM React Native 后,Facebook 就开始考虑 Nuclide 项目的开源工作。作为基于文档编辑器 Atom 的软件包库,Nuclide 提供了类似 IDE 的功能,主要用于简化原生移动应用的开发。在项目启动之初,Facebook 团队就试图寻找一个支持可再开发、开源的编辑器作为起点。GitHub 去年开源的 Atom 在线文本编辑器正好满足了该需求。Atom 利用当前流行的 web 技术进行开发,允许用户使用自己的 React 或者 ES7。它提供了一个强大的原生 shell,能够很好的集成移动平台编译器或者开发工具。而且,Atom 针对多个语言都拥有完善的社区生态系统。最后,其丰富、可扩展的 API 支持用户快速开发 Nuclide 定制的功能。因此,Facebook 最终选择了 Atom 作为 Nuclide 项目的基础。

那么,究竟什么是 Nuclide 呢?Nuclide 就是一套基于 Atom 的软件包库,其代码托管在 GitHub 上。由于没有复制 Atom 编辑器的核心代码,当前初始版本的 Nuclide 可以安装在标准的 Atom 版本上,并支持用户继续使用除 Nuclide 外的其他社区软件包。Nuclide 的主要功能如下:

  • 支持远程开发 在 Facebook,网页和后端工程师都会在远程数据中心的服务器上进行工作。Nuclide 支持用户通过 SSH 连接到服务器上的轻量级节点 daemon 上,使得远程文件编辑和语法 / 类型检查成为可能。当然,这对于虚拟机同样适用,用户可以在 HHVM 上进行本地开发。
  • 支持 Hack 编程语言 Hack 的代码库是 Facebook 最大的代码库之一。从一开始,Nuclide 项目就考虑要支持 Hack 语言,包括了语法高亮、类型检查、自动完成以及 click-to-symbol 特性等。
  • 支持 Flow JavaScript 类型检查器 对于本地和远程的 JavaScript 开发,Flow 引入了类型完整性和针对 React 组件及应用程序的快速反映能力。正如对 Hack 的支持,Nuclide 支持 @flow 注释文件的特定 Flow 装饰和编辑器特性。
  • 支持 Mercurial 分布式版本控制系统 Facebook 目前采用 Mercurial 作为主要的源代码控制平台。因此 Nuclide 需要支持 Mercurial。对于本地和远程开发,Nuclide 支持文件树中高亮的修改、书签的设定以及只读的 diff 浏览器。
  • 支持一步到位的搜索 Nuclide 包括了统一的搜索工具包,支持在一个大的多语言代码库中高效而迅速的寻找文件和符号。

Facebook 的软件工程师 Michael Bolin 表示,Facebook 当前发布的软件包将仅仅是一个起点。未来,Facebook 将会和社区开发人员合作进行包的迭代优化工作。此外,Facebook 还有更大宏达的计划——统一的跨平台开发者体验。支持 iOS、React 以及 React Native 都是未来要实现的功能。而且,对于服务器和移动客户端都十分重要的调试功能也是未来要添加的功能。Michael 表示,正如 Buck 和 Infer 项目一样,Nuclide 项目未来将会在功能方面不断完善。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-30 04:535213
用户头像

发布了 268 篇内容, 共 118.2 次阅读, 收获喜欢 24 次。

关注

评论

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

仅使用 CSS 创建打字机动画效果

互联网工科生

CSS JavaScript 前端

软件测试 | Java设计模式——适配器设计

测吧(北京)科技有限公司

测试

Nevercenter CameraBag Photo for Mac(照片滤镜软件) 2023.3.0激活版

mac

苹果mac Windows软件 Nevercenter CameraBag 相机和滤镜应用程序

什么是CAE软件?哪个CAE软件好用?

智造软件

CAE 仿真软件 CAE软件

搭载KaihongOS的工业平板、机器人、无人机等产品通过OpenHarmony3.2 Release版本兼容性测评

Geek_2d6073

实时入库不用愁,HStore帮分忧

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

使用 Signia 实现 React 状态管理

高端章鱼哥

React Signia

华为与二十多家伙伴达成游戏先锋合作,共筑鸿蒙生态繁荣

最新动态

软件测试/测试开发丨Python 内置库 日期与时间处理

测试人

Python 软件测试 内置库

关于文件传输软件和传输大文件你需要知道的一切

镭速

传输大文件

解锁Spring组件扫描的新视角

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

啾啾火箭队 宇宙 ChuChu Rocket Universe for Mac(益智解谜游戏)v1.3.0中文版

mac

mac游戏 苹果mac ChuChu Rocket Universe 益智游戏

软件测试 | 设计模式——代理设计

测吧(北京)科技有限公司

测试

杭钢集团:以一体化管控赋能为引领提升五大能力

用友BIP

数智化转型

速度提升10倍,腾讯基于Iceberg的数据治理与优化实践

腾讯云大数据

数据湖

golang trace view 视图详解

蓝胖子的编程梦

golang Profile pprof Trace go tool

一条SQL如何被MySQL架构中的各个组件操作执行的?

砖业洋__

MySQL MySQL架构 MySQL优化器 MySQL执行器 MySQL存储引擎

软件测试 | Java接口的实际应用—制定标准

测吧(北京)科技有限公司

测试

Hybrid技术的下一站是什么?

FinFish

Hybrid 小程序技术 小程序容器技术 Hybrid App

AI概念引爆ChinaJoy,聆心智能助力数字娱乐产业新应用

硬科技星球

使用TransBigData快速高效地处理、分析、挖掘出租车GPS数据

TiAmo

数据可视化 交互式可视化工具 TransBigData

平台赋能技术创新,和鲸科技持续助力气象顶尖算法大赛

ModelWhale

人工智能 算法 气象 大气科学 在线编程

华为阅读与商务印书馆达成全面合作 携手传承中外经典名著

最新动态

Hybrid App 性能优化的一些技术探讨

Onegun

性能 Hybrid

常见的CAE软件有哪些?

思茂信息

仿真软件 仿真技术 abaqus有限元仿真 CAE软件 结构分析软件

软件测试 | Java抽象类的实际应用——模版设计

测吧(北京)科技有限公司

测试

技术创新、鸿蒙赋能,华为阅读带来全新商业机会

最新动态

以数驱动 | 智能分析云助力流程制造行业绿色高效运营

用友BIP

智能分析

亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证,联合方案带来约20%性能提升

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 8 月 PK 榜

C4D软件都应用在影视后期什么领域?

Finovy Cloud

探索 TypeScript 元组的用例

这我可不懂

typescript 数组 元组

Facebook开源Nuclide项目_移动_张天雷_InfoQ精选文章