• 为什么需要云IDE?


    一.云 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 时代

     

    参考资料

  • 相关阅读:
    shell快捷键
    通过调整tcp参数来防范DDOS攻击
    解决 nf_conntrack: table full, dropping packet 的几种思路
    Linux系统资源限制
    解决Out of socket memory问题
    wrk简介
    部分 TCP 参数简介
    P1706 全排列问题
    P1149 [NOIP2008 提高组] 火柴棒等式
    P1104 生日
  • 原文地址:https://www.cnblogs.com/ayqy/p/cloud-ide.html
Copyright © 2020-2023  润新知