一.云 IDE?是新概念吗?

不不不,早在 2010 年就有成熟的产品了:Cloud9 IDE

时至如今,云 IDE 已经相当常见了,比如:

二.为什么需要云 IDE?

一般的开发工作流中,我们会建立一套本地环境,包括顺手的 IDE 和整套本地工具,但这种本地开发模式存在一些问题:

  • 开发机性能要求高:冷编译一次 40 分钟

  • 开发环境配置复杂:工具环境能够通过容器技术或一系列版本管理工具(如 nvm)解决,但网络、安全等环境就不那么容易配置了

  • 依赖特定设备:休假可以,但是带上电脑,24 小时 On Call,10 分钟无响应记大过一次

  • 巨型代码库的管理难题:巨型代码库切换个 Git 分支,动辄半小时

于是,远程开发的理念应运而生,连接远程测试服务器,直接在服务器环境完成日常开发工作,免去本地重建并维护一套测试环境的成本

现有的远程开发模式下,工程师大多通过终端交互工具连接远程机器,并通过 vim、naro 等文本编辑器来开发。而这些编辑器通常对项目文件管理、运行任务、调试器、智能提示/补全等基础功能的支持不那么友好,并不能像本地 IDE 一样提供舒适的开发环境。开发体验下降的同时,也限制了开发效率

那么,有没有两全其美的办法?

有,把 IDE 也搬到远程,即云 IDE

P.S.或者把云拽下来,即,本地 IDE 提供远程开发能力,但理念上与云 IDE 并无二致(本地 IDE 相当于浏览器),具体见VSCode 远程开发套件

三.云 IDE 能解决什么问题?

综上,IDE 上云能解决两方面问题:

  • 本地开发模式难以解决的问题:不再要求本地机器十分强大,不必担心环境,不依赖特定办公设备,硬盘也不用再疯狂旋转

  • 远程开发模式的体验问题:不再是 Web Editor 玩具,而与本地 IDE 一样顺手的开发环境

云 IDE 也是远程开发模式的一种实现形式,自然能够解决本地开发模式所存在的一些难题

同时,作为 Web Editor 的升级形态,云 IDE 能够提供更好的远程开发体验,补足远程开发模式的体验短板,解决工具不称手限制开发效率的问题

四.云 IDE 有什么作用?

无论本地 IDE 还是云 IDE,都具有两个基本作用:

  • 提升开发效率:整合零碎的开发工具/服务,实现工具链的平台化

  • 升级开发体验:无缝连接开发工作流,提供一站式体验

从开发者角度来看,IDE 的关键在于对工具的整合与连接,不只是简单的工具集,而是让这些工具能以最自然的方式配合工作,组成高效的工作流。即工作台/工作助理 >> 工具集

IDE >> 项目文件管理 + 文本编辑器 + 交互式终端 + 项目脚手架 + 运行任务 + 调试器 + 工具插件 + ...工具

对云服务供应商而言,能够实现从 Cloud Shell、Cloud Editor 到 Cloud IDE 的产品形态升级,将一系列产品(云服务)与用户的工作流紧密结合起来,不仅能更好地表达产品功能,还能通过 IDE 更高效率地触达用户

                     ^ FaaS、BaaS
/
云服务用户 ---> 云IDE ---> 数据存储服务
\
v 计算资源

五.应用场景

在肉眼可见的未来,云 IDE 有这样几个应用场景:

  • FaaS:函数即服务,那么,函数在哪里写?
    独立的技术生态:如 React Native、小程序、可视化搭建系统等

  • 云计算产品:从提供离散的产品/服务(如 FaaS),转向提供定制开发环境和工作流

  • 源码管理平台:试想,GitHub/GitLab 即开发环境

  • 研发工作台:云计算时代的全云研发模式下,需求-开发-测试-运维的完整链路

六.未来的研发模式(可能)是怎样的?

以云 IDE 为中心的高效研发模式,可能是这样的:

  • 统一的开发环境:借助容器技术,开发环境也能作为项目的一部分,像源码一样管理起来(基础设施即代码,Infrastructure as Code),代码风格约束也能更好地落实

  • 专用 IDE:通过定制开源 IDE,提供更贴合产品/业务的专用 IDE

  • 完整的工程化链路:编辑-构建-运行-调试-测试-运维

  • 飞快的构建速度:得益于云计算的弹性调配能力,编译时长能被大幅缩短

  • Code anywhere:开发环境也能像云计算服务一样触手可得,随时随地,想码就码

  • 实时协作:在线 Review,手把手教学,共享工作空间、一键分享代码

  • AI 助力开发:基于全源码的智能提示、甚至代码生成、质量分析等

在技术走向 techless 的同时,研发模式或将迎来 tool-less 时代

参考资料

为什么需要云IDE?的更多相关文章

  1. 让你的 vs code 跑在云上,用手机浏览器就能写代码

    让你的vs code 跑在云服务器上 在B站上看到一个视频Run VS Code in the browser with massive computing resources(教你如何配置一个云ID ...

  2. 什么才是定制化IDE的核心价值?

    写在前面 自 2018 年初,就与 VSCode 结下了不解之缘,从一份选型报告开始,一蹉跎就是 2 年多 期间反复思索着一个挥之不去的问题:定制化 IDE 产品的核心价值是什么? 事实上,答案并不唯 ...

  3. 华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀

    摘要:在QCon全球软件开发大会上,华为云开发者生态总监张全文作为"云原生应用开发实践"专题出品人,携手华为云四位资深技术专家带来精彩分享. 作为当下技术领域最火热的技术趋势之一, ...

  4. WeX5 快速开发平台 V3.6 正式版发布

    WeX5 V3.6 正式版核心特性:一.打包特性增强: 1- 提供多WebView选择,引入腾讯X5引擎,可自动适配移动设备环境进行切换,使通过X5打包生成的App具备更高的兼容性及更小的文件尺寸: ...

  5. 从Wordpress迁移到Jekyll

    http://pinkyjie.com/2013/10/24/migrate-from-wordpress-to-jekyll/ 上周末闲着没事干突然想把博客从Wordpress迁移到Github p ...

  6. 1037: [ZJOI2008]生日聚会Party - BZOJ

    Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: ...

  7. Coding.net代码托管空间申请与使用-安装并运行WordPress博客

    参考: http://www.freehao123.com/coding-net/ Coding.net这是一个国内新兴的代码托管平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社 ...

  8. 可视化开发_AppInventor2似乎被抛弃了

    工具 blockly google,mixly,scratch,app inventor2 的分别 可视化编程,青雀,来自 白鹭 没源码 如果想二次开发呢,初版拖拽控件生成,后期维护的时候找程序员加功 ...

  9. php用什么软件编程

    准备好好学习学习PHP了吗?那么你首先应该考虑用什么开发工具(IDE).市面上有很多这类工具,收费的有,免费的也有,选择起来并不轻松. 如果你说PHP编程用基础的文本编辑软件就可以了,比如用记事本.是 ...

随机推荐

  1. git工作中最常用的用法教程,不走命令行

    ·1.1 git的概述 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.  Git 是 Linus Torvalds 为了帮助管理 Lin ...

  2. xsser和XSStrike

    0x01 xsser xsser是一款用于针对Web应用程序自动化挖掘.利用.报告xss漏洞的框架.kali默认安装. 命令行启动:xsser 图形化界面启动:xsser --gtk 帮助信息:xss ...

  3. 【Leetcode】164. Maximum Gap 【基数排序】

    Given an unsorted array, find the maximum difference between the successive elements in its sorted f ...

  4. zabbix email报警

    把email 报警整了一遍 . 1 ,先把mail 系统整好. 我用的是sendmail yum install -y sendmail sendmail-cf vim /etc/mail/local ...

  5. css概述四

    八.文本格式化 2.文本属性 ①文本颜色 color:合法的颜色值 ②文本对齐方式 text-align: 取值 left/center/right/justify 注意  1.一个元素写了text- ...

  6. Postgres的索引01

    一.PG 9.3有以下索引类型 1.b-tree 1.1支持前导模糊查询,如xxx%或者^'xxx' 1.2忽略大小写字符前导模糊查询,如ILIKE 'XXX%'或者~*'^xxx' 1.3支持常见的 ...

  7. xampp apache 安全性问题

    要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可.<Directory "D:/Apa/blabla"> Options I ...

  8. Kubernetes学习笔记(八):Deployment--声明式的升级应用

    概述 本文核心问题是:如何升级应用. 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod.好处是,同一时间只会有一个版本的应用存在:缺点是,应用有一段时间不可用. 二是先创建新Pod ...

  9. sku算法详解及Demo~接上篇

    前言 做过电商项目前端售卖的应该都遇见过不同规格产品库存的计算问题,业界名词叫做sku(stock Keeping Unit),库存量单元对应我们售卖的具体规格,比如一部手机具体型号规格,其中ipho ...

  10. python九九乘法表程序代码

    按照c语言的思路来考虑python的,方法很简单,直接运用双重循环即可,本代码为了代码量少采用的是while嵌套双循环. 取两个随机变量 (1)i和j都从1开始(因为表中最小数值为1) (2)i控制第 ...