脸书采用VS Code作为默认开发工具,与微软联手强化远程开发

脸书宣布将把Visual Studio Code当作脸书的默认开发环境,并与微软合作,强化远程开发扩展组件,支持工程师大规模地进行远程开发,并且也持续的为内部开发专用的扩展组件。

过去脸书内部没有强制工程师使用一样的开发环境,Vim以及Emacs都有人使用,也有许多任务程师使用脸书内部的统一开发环境Nuclide。Nuclide是一组创建在Atom编辑器上的组件,支持脸书开发人员的日常工作流程以及多种开发语言,虽然在2018年脸书就已经淘汰Nuclide开源的版本,但是内部仍然还继续使用。

2018年末脸书决定要将Nuclide搬迁到Visual Studio Code,而为了将原本Nuclide中的功能搬到Visual Studio Code上,脸书内部进行了大量的开发工作,目前内部Visual Studio Code的Beta测试版也已经受脸书工程师广泛采用。

脸书提到,之所以会选择Visual Studio Code作为脸书内部的统一开发环境,因为Visual Studio Code是一个开源项目,可以在macOS、Windows和Linux上运行,并且具有强健且明确定义的扩展组件API,企业可以自行开发需要的功能。

脸书大量使用Visual Studio Code远程开发功能,脸书提到,即便工程师在本机端安装了Visual Studio Code,但大多数的开发都是在远程数据中心里的开发服务器中完成的,远程开发带来三个优势,除了开发工作可以直接使用比本机计算机更高级的硬件之外,企业也可以为每个项目的相依项目,创建专用的环境,而不需要担心配置冲突造成的错误,另外,远程开发让工程师可以快速地在多重开发环境切换,不会影响本机资源以及工具性能,能加速开发工作流程。

由于过去开发Nuclide的经验,脸书现在与微软合作,除了使用微软的Visual Studio Code远程开发扩展组件之外,他们也将参与扩展组件的开发工作,让Visual Studio Code能够支持大规模的远程开发。

脸书提到,他们也还持续的为Visual Studio Code开发一些内部使用的扩展组件,包括改善内部使用的开发语言Flow对LSP(Language Service Protocol)的支持,使其与Visual Studio Code更良好地兼容,而在程序代码控制方面,脸书内部使用Mercurial作为程序代码控制基础设施,并且正在开发扩展组件使Visual Studio Code能直接操作程序代码。