找回密码
 会员注册
查看: 28|回复: 0

AICode在团队开发工作流的融合思考

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
64816
发表于 2024-9-21 15:39:01 | 显示全部楼层 |阅读模式
2024已过去大半,生成式人工智能(GenerativeAI)在软件工程领域中的应用已经变得越来越广泛和深入,传统的软件开发和交付过程正伴随着AI能力的介入而获得增强与革新。一方面,在源码开发模式中,AICode能力逐步渗透到开发工作流的每个环节中,包括建模,编码,测试,文档等;另一方面,低代码开发模式如何与大模型能力有机集合也成为低代码厂商新的命题,此外还面临诸多挑战,例如如何快速响应客户需求变化,满足客户大量的自定义需求等。对于AICode能力在软件开发流程中的影响,可以总结为三个方面:从单一的辅助编码,到辅助完整的软件生命周期。AICode能力与垂直场景的LowCode/NoCode能力结合,可以更加高效的辅助内容生产和功能交付。AICode能力从个人的开发工作流向团队开发工作流渗透,逐步成为企业IT基础设施中的核心组成部分。传统低代码模式所面临的挑战在网易云音乐技术团队内部,我们一直在探索LowCode与团队既有研发工作流的结合,解决传统软件交付过程中的高门槛,低效率等问题。Tango[2]是一个我们面向传统的源码开发场景推出的LowCode解决方案,它并不主张取代源码开发,而是以源码为基础,可以在源码库的基础上构建可视化开发界面,简化传统的源码开发过程,并降低开发者对于编程语言和应用框架层的关注度。Tango提供了类似于GithubCopilot的辅助开发能力,将关注点聚焦到降低开发者的开发门槛上,减少开发者编写模式化的重复代码,同时开发者仍然可以借助源码来实现自定义的扩展和快速响应需求的变化。对于传统的专业型低代码平台而言,通常提供了高度封装的可视化界面,使得用户无需关注任何底层代码,只需要在预设的可视化界面和指令界面进行操作即可完成应用的搭建工作,这类平台在缺少信息化能力的企业可以提供极大的软件生产便利。但在互联网技术团队中,这类平台存在的种种限制往往受到专业开发者的诟病,例如无法快速满足定制化需求,无法提供高阶的服务端抽象能力,无法提供灵活的扩展能力,过于强调可视化所带来的效率损失,例如实现一个跨多个服务的用户登陆流程,在可视化的逻辑表达中可能涉及到几十个节点的组装和连线操作。专业型低代码平台在大模型能力的利用上也会存在一定的成本,由于通常使用私有的搭建协议,在使用大模型的过程中需要通过自然语言到编程语言的转换,再通过编程语言转换成私有的搭建协议,在这个过程中也会损失较大的精度。当然某些产品也可以通过训练自己的私有小模型解决这个问题,这意味着额外的成本,并且参数过少的模型很难与大模型的效果相提并论,大模型通常拥有海量的参数,能够更精准地捕捉数据中的模式和特征,在处理复杂任务时会得到更好的表现。并且商业化的大模型服务已经是一片蓝海,通过商业化大模型扩展团队开发工作流会是一个高性价比的选择。图:飞速发展的大语言模型代码仍是核心技术资产,AICode仍在快速演进在软件工程领域中,代码仍然是最核心的技术资产,AICode的辅助生成能力仍然依赖于对既有代码的学习和训练。大模型的训练依赖于海量的人类既有知识库,例如GithubCopilot使用的大语言模型codex基于github上大量的开源项目代码学习和训练。对于研发团队而言,AICode的能力也仍然在持续演进,软件开发的过程仍然依赖人类开发者来介入和交付,拥抱社区并采用主流的技术方案将有助于我们提升AICode带来的效用。AICode能力演进和趋势分析随着AICode能力的深入发展,了解并掌握AICode已经成为开发者的基础入门课程。对开发者而言,借助AICode可以更低成本的构建软件工程,更高效率的编写软件代码。下面,不妨选取一些业界比较有代表性的AICode产品进行分析,梳理其中的共性和亮点,供我们在工作过程中持续思考如何改进我们现有的工作模式。AI驱动的软件全生命周期管理AI能力已经逐步渗透到软件开发的每个环节中,各类AICode工具也越来越关注AI与工作流节点的互动,以增强开发者体验和效率。AI开发助手:GithubCopilot+插件市场https://github.com/features/copilotGitHubCopilot在软件开发生命周期中提供上下文化的帮助,从IDE中的代码补全和聊天辅助到GitHub中的代码解释和文档答疑等。通过Copilot可以提升开发者的工作流程,Copilot扩展使开发人员能够使用他们喜爱的工具和服务,以自然语言构建并部署到云端,而无需离开IDE或GitHub.com。有了Copilot和现在的Copilot扩展,开发人员可以更长时间地保持流畅,提升技能水平,加快创新速度。AI驱动的云端协作式IDE:Replithttps://replit.comReplit是一个协作式的基于浏览器的集成开发环境,允许您在50多种编程语言中编写和运行代码。它提供了强大的编译器和解释器,使得开发软件变得简单,不需要任何设置要求。Replit将AI作为开发环境的一等公民。为了实现这一愿景,Replit正在将AI工具与IDE紧密结合。AI辅助的全栈在线开发平台:GoogleProjectIDXhttps://developers.google.com/idxProjectIDX是一个AI辅助的在线IDE,适合在云端进行全栈、多平台应用开发。IDX支持众多框架、语言和服务,还可以与相应的Google产品集成,可简化开发者的的开发工作流程,让开发者可以快速、轻松、高效地跨平台构建和发布应用。ProjectIDX承诺未来建立开发环境就像打开浏览器一样简单。凭借其简化复杂开发格局的重点,它是一项有可能彻底改变我们对编码方式看法的计划。AI代码质量保证:Sonarhttps://www.sonarsource.com/solutions/ai/AI辅助编程的一大潜在问题是代码安全风险。Sonar面对这一问题提供了可行的解法,它包括SonarQube和SonarCloud集成到CI管道中,同时在IDE中可以集成SonarLint提供代码质量检测和保障。使用Sonar,可以扫描并检测代码中的错误和漏洞,指导开发者在IDE中修复代码问题,或在DevOps工作流中修复问题。Sonar还提供了强大的静态代码分析功能,提供内置的审查工作流和报告,以及质量门禁用来控制执行定义的代码质量标准。AI驱动的垂直场景代码生成能力AI在各类垂直领域场景中也分别发挥着其独有的优势,由于领域相对确定,转型的任务和工作流相对稳定,借助大模型能力,可以极大的改进已有的工作流。AI驱动设计稿代码生成:QuestAIhttps://www.quest.ai/QuestAI的模型可以基于设计稿或草图生成真实、有用的代码。它包含所有专业开发人员关心的事情。使用我们的聊天提示来修改样式、编写业务逻辑并连接到您的后端。Quest是为开发者设计的。它自动化了构建应用程序的繁琐部分,同时又让您拥有完全的控制权,这样您就可以构建任何您想要的东西。AI增强接口测试效率:HTTPieAIhttps://httpie.io/blog/aiHTTPieAI助手使用大模型来提高开发者在测试和与API交互时的效率,例如你可以通过简单的自然语言快速地从海量文档中发现并创建相应的请求。AI生成前端UI:VercelV0https://v0.dev/v0是一个由Vercel提供支持的基于AI的生成式用户界面系统。它基于shadcn/ui和TailwindCSS生成易于复制粘贴的React代码,供人们在其项目中使用。v0使用AI模型根据简单文本提示生成代码。在提交提示词后,它会为你提供三份由AI生成用户界面。你可以选择其中一个并复制粘贴其代码,或进一步完善它。要进行完善,你可以选择生成的UI的各个部分来微调您的创建。准备好后,您可以复制、粘贴并发布。V0是根据Vercel团队编写的自定义代码与开源和合成数据集混合训练的。Vercel可能会使用用户生成的提示和/或内容作为第三方提供商的模型和学习系统的输入,以改进他们的产品。AI驱动的团队开发工作流AI项目协作工具:GenPen.AIhttps://genpen.ai/GenPen.AI是一个项目协作与代码生成工具。它可以将设计提示转化为RESTAPI,并自动生成文档。核心功能包括:代码生成、基于AI的多模式VLLM转换器、OpenAPI集成、自动化Git、代码和文档管理、多个AI代理用于响应汇总。它的目标是加快调试速度,减少开发时间,并简化项目管理。GenPenAI自动化重复任务,利用AI转换器,并根据模型生成代码,从而减少开发时间。一站式智能研发工作台:CodeMakerCodeMaker网易内部的是一站式智能研发工作台,其使命是把AI集成到游戏开发的每个环节,为开发团队量身定制AI时代的游戏开发解决方案。当前产品提供了CodeCompletion(代码智能补全)、CodeChat(代码智能操作)、CodeGenerate(代码智能生成)、CodeSearch(代码语义检索)、CodeReview(代码智能review)、CodeScanner(代码检测)、SunshineFlow等功能。AI工作流程编排:LangBaseLangBase为用户提供了一站式的AI应用管理和运维服务,降低用户创建AI应用的成本。因此LangBase不仅在底层提供提供了模型和应用的管理,也在应用平台之上多提供了一层业务接入层,最大化的降低用户创建和使用AI应用的成本。AI辅助的团队开发工作流思考在网易云音乐内部,结合我们对业务需求特点的梳理,和开发者的实际诉求,我们构建了渐进式的低代码能力,专注于降低技能门槛,减少编写重复代码。我们从2023年4月开始探索AICode能力与开发者个人工作流的结合,包括引入GithubCopilot提升源码开发体验,通过Tango与GPT系列大模型的连接来提供AI驱动的LowCode能力。在2024年,我们进一步的开始探索借助AI来升级现有的团队开发工作流,从大前端场景覆盖到服务端源码开发场景,在内部协同LangBase来提供DevAgent(生成页面,生成组件,生成代码片段)、DesignAgent(抠图,生图,设计稿转代码)等能力,与CodeMaker共建的方式来逐步取代GithubCopilot,为团队定制专属代码补全模型,并持续探索AICode能力与团队开发工作流的深度集成和定制。图:Tango+AIAgentWorkflow如上图所示,在大前端的开发工作流场景中,海豹D2C[3]提供了基于设计稿直接生成项目源码的能力,目前支持React,ReactNative,Vue等多种框架,支持内部核心的C端场景覆盖,借助DesignAgent能力,我们增强了对设计稿的识别精度,提升了出码还原度。在Tango这一层,我们并没有一味追求可视化开发的思路,而是通过衔接既有的源码开发工作流,并借助LangBase提供的DevAgent来增强代码生成能力,在本地开发流程中通过完善源码开发环节的DevTools和CodeMaker能力来改善开发者体验。图:云音乐海豹D2C外部社区分享与成果当前我们正尝试从四个方面将AICode能力融入到团队开发工作流中,具体包括训练自定义补全模型(针对不同的开发者画像提升补全覆盖率和接受率)、CM插件扩展(集成核心的工具设施到IDE,实现对话式信息获取和配置生成)、CM工作流扩展与自定义(复用和下发既有的Agent能力)、AI向导(提供特定领域内容的自动化生成能力)等四个方面。图:云音乐AICode能力建设AI正在超过我们想象的速度在发展,无论是在商业领域,还是在企业内部的工作流中。现阶段,寄希望于AI解决整个软件工程问题还为时尚早,但从协助个人,到协助团队,并逐步渗透到团队工作流中的每一个核心节点,AICode能力正在逐步发挥威力。图:面向团队的AICode工作流设计总结我们已经发现业界有大量的技术产品和效能工具在尝试融入AI能力,无论是本地的AIIDE,还是云端的智能开发环境。要想充分发挥其效用,仍然有待在组织中进一步的尝试将大模型能力与开发工作流和工具链的集成和融合。现阶段,通过持续评估AI的能力和兼容性,将AI与团队开发工作流的集成,使AI作为核心节点的助手,将会有助于持续改进团队的开发质量和效率。参考资料[1]景庄:https://github.com/wwsun[2]Tango:https://github.com/NetEase/tango[3]海豹D2C:https://www.figma.com/community/plugin/1174548852019950797/seal-ai-powered-figma-to-code-react-rn-vue-html-d2c更多岗位,可进入网易招聘官网( https://hr.163.com/)查看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-28 23:38 , Processed in 0.775481 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表