谈谈云开发环境 (CDE)未来展望
What is CDE?
CDE:Cloud Development Environments
在展望CDE之前,让我们先回顾一下CDE的历史。
先看看行情:
1、Gitpod获2500万美元融资,用于创建云开发环境
https://36kr.com/p/1989676107917577「Gitpod」:自动化开发环境的主要开源平台之一,成立于2019年,总部位于德国基尔,是一个开源的开发平台,能够协助团队共同完成软件开发。
引用官网解释:云开发环境 是 按需的,预先配置了准备编码 所需的所有工具、库和依赖项 。
2、Cloud9 2016年7月14日宣布被亚马逊收购
https://en.wikipedia.org/wiki/Cloud9_IDE 「Cloud9」:Cloud9 IDE 成立于 2010 年,总部位于旧金山和阿姆斯特丹。
引用官网解释:AWS Cloud9 是一种基于云的集成开发环境 (IDE),只需要一个浏览器,即可编写、运行和调试代码。
3、github开放codespaces
https://github.com/features/codespaces「codespaces」:github宣布将codespaces面向所有github用户开放,每月最多可免费使用 60 小时。
引用官网解释:在云中启动完全配置的开发环境,几秒钟内即可启动,以便在安全、可配置且专用的开发环境中开始开发,该环境可以按照你希望的方式和位置运行。
引用官网解释:Deliver your applications faster, at scale。云PaaS低代码平台可提供从基础框架、数据库、CI/CD测试、部署、托管、迭代、安全扫描等一站式网站、web应用搭建体验。
这里只列举了一些,延展阅读
如:multistack PaaS 平台。https://platform.sh
如:Daytona VS GitHub Codespaces
Daytona 是 Codeanywhere前身,由 ——Ivan Burazin、Vedran Jukic 和 Goran Draganić——创办。
Codeanywhere 于 2009 年发布(当时名为 PHPanywhere),是最早的基于 Web 的代码编辑器之一。从那时起,整个开发人员环境都迁移到了云端,而 GitHub Codespaces 和Replit等新产品占据了中心舞台。
延展CDE沙盒:StackBlitz 、CodeSandbox
https://stackblitz.com/github/facebook/docusaurus/tree/starter?file=README.md
https://codesandbox.io/p/devbox/pedantic-jones-docusaurus?file=%2Fdocusaurus.config.js%3A73%2C11
上述介绍了CDE一点点行情,还有很多平台在 ”蓄势待发“。 这里不多介绍,我们从CDE入手,但重点是展望。
思考:DevOps 是软件开发领域一个里程碑,那么随着Ai 、GPT、GTP-Agents等发展的速度下,软件开发领域的GTP是什么样,相信是大家一直探索的。我这里的展望只限于文章内,勿喜轻喷哈!
Devops 》 CDE + Ai = CAD? CAD:CloudAiDevOps
在DevOps 阶段,大家讲低代码,0代码;那么看GPT-Agent的发展,”智能开发“ 也是被关注的话题。
在软件开发领域,大家常常以”新技术“为发展驱动,没错,计算机、互联网、人工智能、何尝不是一直在驱动”新技
术“发展。当人工智能第一次被提及时,人们更多的在思考?思考它的智能化吗?我相信不是的,我相信,每一位技术从业者更多的是在思考,”它能带来什么“?我们不想上升到哲学&宇宙,因为在”电影里“不早就看过了不是吗!
人们更多的是反思,做为一名技术从业者,何尝不是在反思?
这个”反思“。我把这个词抛给 “空间”,相信每一位技术从业者,在自己的心里都有一个”反思“;
接下来讲的这个逻辑与展望,并不想把职业给革命,但随着Ai、GPT的发展,我们好像终将面对。智能时代的到来。
这里引用马斯克的一句话:“打不过,就成为“!
好,切入CDE主题:
Wiki 解释:
云开发环境 (CDE) 是软件开发领域的一个里程碑,提供集中、高效且以云为中心的工作流程。
从本质上讲,CDE 是开发人员工作空间从本地计算机到云的根本性转变 - 将它们简单地标记为“在线代码编辑器”将过于简单化。
CDE平台涵盖了大部分开发人员经验,从编写代码各个阶段到部署最终应用程序。通过将众多开发工具集成到一个基于云的生态系统中,它带来了无缝协作、即时可扩展性,异构的适配,甚至减少了开销。
了解不同的CDE云开发环境
并非所有 CDE 都是一样的,因为它们的性质和功能可能会根据它们是SaaS、自托管还是混合解决方案而有所不同。
CDE By SaaS 解决方案
GitHub Codespaces 等 SaaS 平台提供完全托管的服务,由提供商维护基础设施,确保其始终可用、更新和安全。借助 SaaS CDE,开发人员不必担心设置或维护;他们可以只专注于编码。
这种便利为企业和开发人员带来了一系列独特的优势。首先,SaaS 解决方案通常具有高度可扩展性,并且更新或新功能会自动推出。
此外,成本通常是基于订阅的,这意味着为使用的内容付费,而不会产生基础设施管理的开销。然而,虽然 SaaS 提供了易用性,但它可能无法满足具有标准化产品无法提供的特定或独特要求的组织。
CDE By 自托管解决方案
相比之下,像 Coder.com 这样的平台提供自托管解决方案,这意味着在平台提供工具和软件的同时,公司负责托管和管理平台的核心基础设施。这些设置提供了更大的定制性,使企业能够根据自己的具体需求定制整体环境。明显的优势是灵活性。组织可以集成特定的工具、维护严格的安全协议或遵守特定的合规性准则。
CDE By 混合解决方案
混合解决方案,Gitpod 就是一个典型的例子。像 Gitpod 这样的平台旨在通过提供两者的混合来弥合 SaaS 和自托管解决方案之间的差距。虽然他们提供基础设施,但仍然有定制和集成的空间以满足个性需求。
这种类型的创新方法有助于确保开发人员轻松管理基础架构,同时仍然能够引入其特定项目所需的独特工具或配置。从本质上讲,混合解决方案结合了两全其美:SaaS 的可扩展性和简单性以及自托管解决方案的灵活性。
CDE 重新定义团队(安全性&协作)
迁移到云的好处不仅是技术上的,它还可以渗透到管理领域。(效能:一直都是被讨论的话题)
本地系统环境的简化主要是为了确保与云的连接,在云中环境为了增强和简化安全协议铺平了道路。此外跨越地理边界的团队可以无缝协作。
传统设置的所有工具和代码都分布在各个笔记本电脑上,因此始终面临成为恶意实体脆弱入口点的风险。
与此形成鲜明对比的是,典型的 CDE 设置将笔记本电脑的角色简化为一个门户,从而最大限度地减少了安全漏洞的可能性。此外,云的本质促进了协作,味着开发人员可以流畅地移动、共享和协同解决问题,从而使得团队合作更有效,从本质上讲,在云中托管开发大大减少了实时协作的障碍。
像本地一样远程的访问与”安全“的协作开发,一直都是技术从业者的”心声“。云环境提供的灵活性,无论是在操作系统、还是在环境配置,都赋予开发人员创新的自由,同时保留了安全。
CDE 和云技术的演进飞跃
CDE 的更广泛发展不仅仅是将开发流程转移到云端,而是与其他新兴技术(尤其是人工智能 (AI))的深度集成。这种整合并非巧合,而是云计算和人工智能相互交织的轨迹的证明。
随着这两个领域的成熟,它们的融合为创新、效率和多功能性开辟了新的途径。人工智能算法,特别是那些基于机器学习的算法,正在无缝嵌入到 CDE 中,增强了软件开发全生命周期的许多方面,而最具变革性的应用之一在于代码优化。【基于Ai Checklist 模型的开发质量】
机器学习算法旨在筛选大量数据,可以实时分析代码结构。在此过程中,可以洞察代码,主动提供代码的细化和优化的建议,确保代码的高质量(Better Compliance Criterion),同时大大减少开发过程中的迭代时间。
软件开发的另一个关键阶段是部署,以人工智能为基础的智能部署机制正在彻底改变代码发布到生产环境的方式。人工智能驱动的系统可以确定代码部署的最佳配置,而不是开发人员手动决定配置或创建发布流程(这项任务通常容易出现人为错误)。
CDE for CAD 未来展望
CDE云开发环境是软件开发轨迹中的一个重要里程,它带来了一个集中、高效和以云为中心的工作流程时代。除了提供编码平台之外,这些环境还体现了各种技术的融合,真正将整个开发人员带入云中。
CAD更像是一个云端交互式的人工智能开发平台,可以自信地进行编码,使用专家级为开发助力,交互式的生成式的人工智能助手,通过 CAD 的使用,它通过简单的对话界面来提供专家级指导,同时也可以解析并翻译你的代码,通过自然的对话与CAD,也许它更了解你的项目代码。引用比较流行的一句话:“心智生产力”。
-
基于设计的代码生成:通过UI&UE设计(Figma/AdobeXD/Sketch)from Designs to Code ,只要你能设计出来,几分钟你的应用就能发布出来。并且可以投产使用。
-
自然对话级的需求逻辑:你可以想象一个简单的客户服务智能体,它可以回答并处理你的Ask,迭代地将其分解、解决,并验证答案。
-
多语言的代码翻译:在几分钟内将应用程序基于你希望的开发语言发布,并翻译&编译到最新的语言版本并自动解决依赖关系。
-
专家级的代码建议:CAD 可以提供单元测试、安全检测、性能分析、优化代码等方面的建议。
想象一下,未来可以在CAD开发:Java、Python、Rust、Go等非web开发语言,然后在你的iphone、ipad等设备上来运行你的CAD环境,是不是很兴奋。
这里让我想起Java的slogan:“一次编译,随处运行”。如果给CAD一个slogan:“一次编写,随处运行”。
CDE 》向 CAD 展望:
1、基于“设计”的开发成果,所见即所得。
设计完成(UI&UE) = 产品的样子(代码)有了,业务逻辑还没有。
想一下,产品从视觉入手(没有哪个时代不看“脸”的),各种技术栈,多端适配的场景不在依赖单项技术语言。比如uniapp这种渲染多端框架语言不在有江湖地位。
在CDE平台,把设计好的界面,进行引导代码生成,选择前后端开发语言、选择中间件、部署环境等。
想像一下,几秒钟,一个全新的应用产品将可以被访问到。(这里为什么还要选择开发语言,为什么不全自动化?)
PS:软件工程是一个极其庞大且复杂的一件事 ,智能的前提是可控制,可预见。
2、基于“需求对话”的开发成果,"需求对话"Ai助手完成业务逻辑。
展望思考:如果我们把业务逻辑能够Q&A出来。eg. charGPT 对话一样。不断演进,是不是还能解决开发过程中“需求理解”不到位的问题 。需求偏差等问题,这里的“需求对话”,也是我们人类的“经验”的体现。不管大模型训练的有多快,经验这个概念,它一直都客观的存在。
感受一下: 是不是人工智能还得有人工的那个味道了。
3、基于Ai Checklist 模型的开发质量,Checklist Code Analysis(开发质量)
展望思考:传统我们通过一些工具sonarQube、blazemeter等,丰富的工具与插件来支持不同开发语言的代码分析与安全扫描检测。不同的开发语言需要使用不的工具和插件。有了Ai的加持。当我们提交代码后,Ai Checklist会自动做代码检测、安全扫描、性能分析、修复bug等任务。那个时候可以自信的说:如果你能提交成功。就可以部署(发布)成功。不做选择题,交给“Ai”这个魔法盒,它可以给我们更好的答案不是嘛。(虽然我们距离这个答案是相对论)。
展望 Ai Checklist模型的一张图,也许它可以更好。有人会问,画图为什么都用英语,原因:它更新接近计算机。
有人会问,为什么会用criterion 这个词。原因很简单,都Ai检测了。出来的结果我们更希望它是接近完美的标准不是吗。
Criterion 和 Standard 虽然都涉及对人和事物的评价和衡量,但在具体含义和使用情境上有一些差异。
-
Standard 通常指的是公认的衡量品质、能力、价值、道德等方面的标准、规则或原则。例如:"This university has high standards of teaching."(这所大学有高的教学质量标准。)
-
Criterion 是一个更正式的用语,它不仅可以指客观的品质水准,也可以用来描述主观上判断事物的标准。在某些情况下,"criterion" 可以被理解为一种更为完美或精细的标准。"Only social practice can be the criterion of truth."(只有社会实践才能成为检验真理的标准。)
解释一下【Ai Checklist】你(我)希望它能带来什么?
-
提高代码质量(Improve Code Quality)
-
更好的合规标准(Better Compliance Criterion)
-
降低漏洞风险(Reduce Risk of vulnerabilities)
-
提高开发人员效率(Increase Developer Efficiency)
-
更好的优先级编排(Better Prioritization Orchestration)
-
更好的成果编排(Better Result Orchestration)
提高代码质量、降低漏洞风险、更好的合规标准,应该在软件开发生命周期 (SDLC) 的各个阶段触发。
推荐热门阅读(抬头看,很重要)
在技术领域大家常常以"Hello World"程序 为一切的开始!
那么希望,不管CDE、CAD,怎么变化,唯有不变的希望是那一行输出:"Hello World"。