感谢支持ayqy个人订阅号,每周义务推送1篇(only unique one)原创精品博文,话题包括但不限于前端、Node、Android、数学(WebGL)、语文(课外书读后感)、英语(文档翻译) 如果觉得弱水三千,一瓢太少,可以去 http://blog.ayqy.net 看个痛快
不不不,早在 2010 年就有成熟的产品了:Cloud9 IDE
时至如今,云 IDE 已经相当常见了,比如:
一般的开发工作流中,我们会建立一套本地环境,包括顺手的 IDE 和整套本地工具,但这种本地开发模式存在一些问题:
于是,远程开发的理念应运而生,连接远程测试服务器,直接在服务器环境完成日常开发工作,免去本地重建并维护一套测试环境的成本
现有的远程开发模式下,工程师大多通过终端交互工具连接远程机器,并通过 vim、naro 等文本编辑器来开发。而这些编辑器通常对项目文件管理、运行任务、调试器、智能提示/补全等基础功能的支持不那么友好,并不能像本地 IDE 一样提供舒适的开发环境。开发体验下降的同时,也限制了开发效率
那么,有没有两全其美的办法?
有,把 IDE 也搬到远程,即云 IDE
P.S.或者把云拽下来,即,本地 IDE 提供远程开发能力,但理念上与云 IDE 并无二致(本地 IDE 相当于浏览器),具体见VSCode 远程开发套件
综上,IDE 上云能解决两方面问题:
云 IDE 也是远程开发模式的一种实现形式,自然能够解决本地开发模式所存在的一些难题
同时,作为 Web Editor 的升级形态,云 IDE 能够提供更好的远程开发体验,补足远程开发模式的体验短板,解决工具不称手限制开发效率的问题
无论本地 IDE 还是云 IDE,都具有两个基本作用:
从开发者角度来看,IDE 的关键在于对工具的整合与连接,不只是简单的工具集,而是让这些工具能以最自然的方式配合工作,组成高效的工作流。即工作台/工作助理 >> 工具集
:
IDE >> 项目文件管理 + 文本编辑器 + 交互式终端 + 项目脚手架 + 运行任务 + 调试器 + 工具插件 + ...工具
对云服务供应商而言,能够实现从 Cloud Shell、Cloud Editor 到 Cloud IDE 的产品形态升级,将一系列产品(云服务)与用户的工作流紧密结合起来,不仅能更好地表达产品功能,还能通过 IDE 更高效率地触达用户:
^ FaaS、BaaS
/
云服务用户 ---> 云IDE ---> 数据存储服务
\
v 计算资源
在肉眼可见的未来,云 IDE 有这样几个应用场景:
需求-开发-测试-运维
的完整链路以云 IDE 为中心的高效研发模式,可能是这样的:
在技术走向 techless 的同时,研发模式或将迎来 tool-less 时代