传统上,使用集成开发环境(IDE)工具(如VSCode、JetBrains、Eclipse等)在单独的机器上进行软件开发(在很大程度上现在仍然如此)。这种"离线"开发模式在早期非常有效,但人们越来越注意到,这种做法本身有很多不足。 首先,协作很麻烦,因为编写的代码必须上传到网络上进行进一步审查。这样编写的代码的可移植性也并不总有保证,因为操作系统的多样性和它最佳运行所需的其他约束条件。 开发者和技术记者Owen Williams去年在他的博客上写道:"在设备之间同步文档和照片,以便可以将它们拉到任何地方,这很简单,但开发人员工具仍然停留在过去——每台笔记本电脑或PC都单独配置,以正确设置环境。" 在疫情期间,团队越来越分散,工作方式也越来越灵活,因此,引入能够让开发人员随时随地保持高效的工具变得至关重要。这就是Gitpod、GitHub代码空间、Replit等基于云的IDE的用武之地。 基于云的IDE的好处 这些新的IDE工具具有大量的功能,包括GitHub集成、对多种语言的编写和编译的支持,为提高开发人员的生产率提供了一个全面的环境。 其他优势包括: 基于云的IDE提供无麻烦的配置——由于开发环境完全在浏览器上运行,因此无需再浏览安装页面并确定需要安装哪个软件包。 你选择的硬件并不重要——基于云的IDE消除了web开发入门的障碍。任何支持现代web浏览器的东西都没了门槛,你甚至不需要在不同的机器上从头开始重新配置所有东西。 在任何地方工作和协作都更容易——由于高度可定制的工作区可以在团队/个人级别进行优化,这些工具不仅有助于更好的协作,而且完全消除了非常常见的"在我的机器上工作"的情况。 考虑到这些优点,基于云的IDE获得了发展势头的原因是显而易见的。但这种方法也有一些局限性。 基于云的IDE的缺点 基于云的IDE的许多缺点都与扩展相关,因为这些工具仍处于成熟的早期阶段。以下是早期采用者可能遇到的一些关键问题: 性能可能会参差不齐——由于云上的资源是在需求波动的消费者之间共享的,因此肯定有可能出现性能不一致的情况,特别是当对网络延迟、容量或整体产品中的故障是否是问题的根源缺乏了解时。 故障的来源可能很难识别和解决——当你不知道问题的根本原因和总体原因时,很难解决问题,这可能会给此类产品的早期使用者带来令人沮丧的体验。 大型项目可能更适合离线IDE——到今天为止,已经出现一些初期问题,用户抱怨平均负载过高。对于较大的开发项目,所需的数据传输和处理量将是巨大的。虽然它可能不会阻塞基于云的IDE的资源,但由于其实用性,离线替代方案在这种情况下肯定是更可取的选择。 供应商锁定可能会限制工具的可用性——另一个要考虑的方面是当涉及到基于云的IDE时工具包的可用性。各种各样的工具可以在本地和IDE搭配使用。但对于基于云的IDE,开发人员仅限于供应商提供的集成选择,这可能会限制那些需要更广泛工具包的人。 基于云的IDE需要WiFi——基于云的IDE要想与真正强大的桌面IDE相匹配还有很长的路要走,这样才能降低对WiFi等外部因素的依赖性。即使实施了各种变通方法,可靠性水平也远不及桌面IDE提供的离线体验。 下一代IDE 虽然基于桌面的IDE仍然非常常见,并且在不久的将来将继续流行,但基于云的IDE正在快速发展。这些工具也在迅速发展,并且可能会越来越多地与基于桌面的IDE一起使用。 为了类推这种可能,请考虑微软Office的情况。当笔记本电脑/计算机首次推出时,我们只有MS Office作为任何协作的默认套件。以前大部分都是离线的。但是,随着基于浏览器的协作工具(如Zoho Office和Google Workspace)将大量这方面的工作带到了网上,我们现在看到了它们比MS Office更重要的用例。 IDE也可以这样做。桌面IDE仍然会被使用(就像微软Office现在正在使用一样),但是基于云的IDE将会看到一些非常有趣的用例出现,并且对于那些特定的用例可能会变得更加重要。 最近,JetBrains发布了下一代IDE Fleet的早期预览。JetBrains的解决方案越来越注重分布式和协作开发,并降低了进入门槛。JetBrains表示,Fleet不会取代公司现有的工具,而是旨在增加更多的选择。 Gitpod的社区经理Pauline Narvas表示,她对远程、云、开发环境的未来如何有潜力改善开发人员的日常生活感到非常兴奋。 "例如,有了标准化的开发人员环境,我们可以轻松地加入新的工程师,你可以查看同事的代码,提出请求甚至为开源做出贡献。不再因为依赖关系不起作用而对‘在我的机器上工作’或破坏预览环境感到痛苦。开发者甚至不需要高规格的机器来启动。有浏览器和互联网连接就行了,你可以在任何地方编写代码!这真的是软件工程的未来,我迫不及待地想看看五年后的情况。" 原文链接: https://thenewstack.io/are-cloud-based-ides-the-future-of-software-engineering/