写点什么

从写代码到写 Prompt,解锁鸿蒙原生应用高效开发秘籍

  • 2024-12-19
    北京
  • 本文字数:4608 字

    阅读完需:约 15 分钟

大小:2.28M时长:13:17
从写代码到写Prompt,解锁鸿蒙原生应用高效开发秘籍

当前,大模型技术正在重新定义软件工程。一方面,大模型降低了软件开发门槛。在过去,软件开发者被划分为全民开发者、应用开发者和专业开发者,随着大模型技术的介入,软件开发变得触手可及,一些简单的应用甚至能够直接通过人工智能生成。另一方面,大模型技术显著提升了开发效率。它能够根据开发者的简单描述快速生成大量的代码片段,大幅度地缩短了编码时间,为软件开发领域带来了革命性的变化。

 

在 2024 年 12 月 14 日 AICon 全球人工智能开发与应用大会《鸿蒙生态下的 AI 助力移动应用开发新范式》技术专场上,华为、百度、腾讯云、北京航空航天大学软件学院的六位技术专家与学者从多视角出发,深入探讨在鸿蒙生态下,人工智能技术如何助力移动应用开发的新范式。

面向 AI 辅助开发,鸿蒙在整个移动应用生态上的思考

 

随着大模型在开发软件和工程工具领域加速落地,传统模式下的生产效率大幅提升,开发范式也在发生改变。调查数据显示,70% 以上的开发者使用过或计划使用 AI 辅助编程类工具;在生产环境运行的代码中,有很大比例来自于自动生成,而非手写代码。

 

当前,无论是传统 IDE 厂商还是新型 IDE 厂商,都在朝下一代开发模型演进。比如,VS Code 在编辑上做了很多 AI 思考,很多社区大模型、智能辅助开发工具都可以接入到工具体系里面来;下一代 AI IDE 的雏形 Cursor 也在摆脱传统 IDE 方式,思考什么是 AI 内置的 IDE。



华为终端 BG 软件部开发者平台部首席架构师指出,在鸿蒙生态上开发应用并非简单的复制,而是站在全新的出发点。鸿蒙生态面向未来的思考包括智能化和立体化的体验,以及不同设备和屏幕的交互方式。这些变化预示着开发应用程序、操作系统和技术组件的方式可能会发生变化。

 

一方面,要提升传统模式下的生产效率。在大模型时代,开发者工作习惯正在从“以代码为中心”到“以 Prompt 为中心”。这也意味着,在未来,开发者可能会摆脱掉传统的软件开发流程,更加关注业务和目标。

 

另一方面,大模型在全新的操作系统、全新生态下,我们还需要有一种面向未来的范式变化。随着 AI Agent 在软件编程工程效率领域不断受到关注,面向下一代鸿蒙原生应用开发的智能体,也将对移动应用开发进行范式上的变革。

HarmonyOS 开发套件 DevEco Studio 智能化新方向

 

DevEco Studio 作为鸿蒙原生应用开发的核心工具,为开发者提供了一站式的开发平台,不仅具备基本的代码开发、编译构建及调测等功能,还具有高效智能代码编辑、多端双向实时预览、多端设备模拟仿真以及性能调优等特性。 



尽管当前大模型技术持续火热,但华为资深技术专家认为大模型并不等同于 AI,AI 也不等同于高效开发。在其看来,AI 是智能化的体现,而智能化可以通过多种方式实现,如程序分析、低代码、减少交互步骤等。

 

DevEco Studio 在此维度上做了很多尝试。例如探索用对话交互方式生成鸿蒙的特征,如元服务卡片,不需要安装即可快速调起程序。此外,也能让开发者无需编写代码即可快速开发出元服务。在问题定位方面,DevEco Studio 希望将这个过程变为向导式,指导开发者一步一步解决问题。进一步简化编码步骤,通过一键式生成简化复杂逻辑,并将性能领域的问题固化到工具中,通过场景找到对应的问题,降低成本。

 


展望未来,华为资深技术专家认为,沉浸式 AI 编程是 IDE 智慧化的新方向。AI 能够在报错时提供智能体入口,帮助开发者快速找到对应答案,并在编写代码时自动补全 API 调用。此外,还能在性能出现问题时自动检测并提示,帮助开发者找到对应代码。再进一步,智慧化 IDE 将从 Copilot 向 Agent 方向演进,即通过 Agent 方式自动完成代码生成、优化和性能调优,从构建、问题定位、调试到调优,将 AI 融入到整个开发旅程中,旨在使开发过程更加智能化。

鸿蒙生态下的 AI 助力移动应用开发新范式

 

当前,大模型正在重新定义软件工程,不仅促进了软件开发的民主化,也推动了开发工具的智能化发展。华为终端 BG 软件部开发者平台部技术架构师表示,鸿蒙代码编程 AI 助手 DevEco CodeGenie 主要聚焦在代码生成补全、智能知识问答、万能卡片生成三大方向,提升开发者的工作效率和代码质量。

 


代码生成补全方面,DevEco CodeGenie 能够根据开发者的自然语言描述生成相应的代码片段,开发者只需描述所需代码的功能,插件即可生成代码并允许开发者直接将其复制到编辑区,从而在工程项目中使用。具体来说,DevEco CodeGenie 有三大能力:直接生成 ArkTS 界面代码的能力,利用鸿蒙系统独特 API 生成代码的能力,以及将常用算法以 ArkTS 语言形式表达的能力。

 

智能知识问答方面,DevEco CodeGenie 采用了一种更新的模式,即基于大模型的生成式智能问答和搜索。这一模式主要依赖于大模型的理解能力和推理能力,以提供更精准的答案。与传统的智能搜索相比,新模式无需依赖扩展坞或知识图谱来理解用户的提问,而是直接利用大模型的自动推理能力,为用户提供与鸿蒙相关问题的准确答案。通过在大模型、搜索、数据和评测四个方面进行优化,知识问答的准确率能够达到 85% 以上,更有效地理解和回答开发者在鸿蒙原生应用开发过程中遇到的问题,从而提高开发效率和体验。

 

万能卡片生成方面,DevEco CodeGenie 具有三大特点:一是对话交互体验,能够精确识别用户意图,并通过自然语言多轮交互不断调整以满足用户需求;二是智能化 UI 布局,通过学习方式优化布局效果;三是工程级或项目级代码的生成,一站式解决万能卡片的所有问题。目前,DevEco CodeGenie 生成的端到端卡片准确率已超过 60%。

 

在未来,DevEco CodeGenie 不仅需要将现有的规则以 Agent 方式整合进去,以优化整个软件开发流程,还需要关注 AI 大模型生成代码的准确性,并对此进行深入研究和解决。

大模型驱动的人机协同提效实践

 

文心快码是基于文心大模型的智能代码助手,结合百度积累多年的编程现场大数据和外部优秀开源数据,可以生成更符合实际研发场景的优质代码。为进一步提升工程师研发效率,百度提出了人机协同结对编程的理念,并成立了 TIC 组织。

 

百度资深研发工程师王初晴


百度资深研发工程师王初晴提到,文心快码与 DevOps 全流程的结合实践主要体现在两大方面:

 

第一,研发能力的左移,即将测试能力、安全能力、部署能力等移动到编程现场,在文心快码内部现场就可以方便调用这些能力。例如,测试能力和安全能力的左移,使得工程师可以在 IDE 里通过文心快码进行一些测试和安全漏洞的修复。同时,部署领域也实现了左移,百度与营销服务团队合作的部署插件,将线下环境的部署过程左移到了文心快码中,通过文心快码调用部署插件,可以实现快速部署,单次部署耗时可以节省 10 秒以上,线下环境的 API 更新效率也提升了 3 倍,成效显著。

 

第二,通过智能化能力赋能 DevOps 平台,使得企业内部研发和工具链中可以非常方便地使用 AI 的能力。以百度为例,百度拥有多个研发平台,如需求管理平台、代码托管平台、应用部署平台等,这些平台都通过大模型能力进行了重构,使得在这些平台中可以非常方便地使用 AI 能力,从而加速 DevOps 整个研发流程的推进。例如,在百度的需求管理平台中,之前需要填写表单进行结构化查询,而现在可以通过自然语言直接查询卡片,大大提升了查询的便捷性。

 

展望未来,王初晴表示,整个研发过程将由机器和 AI 执行,工程师只需聚焦在创意的产生和最终的确认上。

探索 IDE 下的智能研发和研发知识库的建设

 

随着人工智能技术的不断发展,编码智能体作为一种新兴的技术概念,逐渐进入大众视野。编码智能体的愿景是自动化生成高质量的工程,降低开发者人数的同时保持开发质量不下降,通过 AI 引入“程序员”提升智能体的能力。腾讯云资深技术产品专家汪晟杰认为,要想实现这一愿景,需要在以下三个方面深耕:模型构建、场景聚焦和企业知识库。

 

  • 首先,模型是编码智能体的核心,它决定了智能体的智能水平和解决问题的能力。

  • 其次,聚焦特定场景是编码智能体成功应用的关键。通过深入了解企业的实际需求和业务流程,可以为编码智能体设计更符合实际的应用场景。

  • 最后,深耕企业知识库是提升编码智能体应用效果的重要途径。通过引入企业的私有知识库,可以使编码智能体更加智能地理解和处理企业的实际问题。

 

腾讯云资深技术产品专家汪晟杰


知识库建设对于编码智能体的成功应用至关重要。从今年 6 月份开始,腾讯云已经开始着手进行知识库的建设工作。而 RAG 技术正是其中的关键。在腾讯云的知识库 RAG 进阶探索中,主要分为代码文档 RAG、多模态 RAG 以及 Agentic RAG(智能体增强的 RAG)三大方向。

 

其中,Agentic RAG 结合了智能体的智能处理能力,能够更好地理解和处理复杂的文档和代码信息。在解析图片时,并不直接依赖大模型的感知能力,而是通过分析图片元素、存放位置等信息,结合开源模型进行提取和扩写,从而增强大模型的理解能力。这种方法可以减少大模型产生的幻觉问题,提高生成的准确性。

 

汪晟杰表示,在未来,人机协同到人智协作的过程将越来越重要。通过代码需求生成和代码合并的有机结合,可以完成多轮对话,开发出符合标准和质量要求的应用。

基于智能模型驱动的鸿蒙原生应用代码自动生成

 

当前,智能软件工厂已成为美国行业软件创新发展的新模式,能够将软件开发周期从数年缩短到几分钟。那么,我们能否建立自己的软件工厂,以解决应用软件和大型软件的开发问题,而不仅仅是函数级代码编程?北京航空航天大学软件学院长聘副教授杨溢龙在演讲中表示,软件开发的复杂度是实现这一目标的主要难点,具体体现在软件目标领域的多样性、众多的利益相关者、目标平台语言、运行平台以及系统类型的复杂性。

 

在这一背景下,北航和华为联合实验室联合启动了鸿蒙原生应用及元服务高质与高效生成项目,该项目旨在提高鸿蒙原生应用开发的效率。研究团队分析了鸿蒙原生应用开发的主要人群特征,并针对这一人群提出了一个 DSL(领域特定语言),通过拖拽二维模型的方式,帮助他们能够以低代码的形式快速上手鸿蒙原生应用开发。

 

为了进一步提高模型构建效率,团队还引入了智能化手段进行模型生成。通过采用大模型方法生成模型,并定义了一系列的交互模式来生成 DSL。通过外挂的简单界面,用户只需描述模型的诉求,系统即可自动生成整个页面。这种方式可以进一步提高开发效率,向 10 倍目标迈进。

 

据杨溢龙介绍,在下一个版本中,研究团队计划将整个过程 AI 化,从需求获取到设计、架构、编码和元服务的实现,都通过 AI 手段进行生成。采用模型驱动+生成式 AI 融合的方式进行生成,并补齐代码测试生成和 IDE 的相关功能。同时,团队也关注人机协同的问题,希望 IDE 能够感知开发人员的水平,并提供相应的服务,实现情景动态感知、人机协同构建和人机协同演化。最终,将实现劳动密集型的人工编码活动到自动化、再到全流程智慧化的过程,进一步提高软件质量和效率。

结语

 

如今,我们正步入一个智能设备无处不在的时代。传统的手机操作系统如 iOS、Android 更多面向的是智能手机,HarmonyOS 面向的则是多智能终端、全场景。在这一背景下,中国开发者需要一个全新的平台,这个平台不仅仅是一个单一的技术或产品,而是一个全面的生态系统,涵盖应用程序、操作系统以及各种硬件设备,能够为用户提供全方位的服务。

 

当前,鸿蒙生态正以蓬勃之势重塑智能世界格局,鸿蒙诚挚地邀请各界参与到生态技术构建中来,无论是开发应用程序还是提出创新建议,都将对生态建设产生积极影响。鸿蒙也期望能有越来越多的应用程序厂商、开发人员及合作伙伴加入到“软硬整合”合作中来,实现操作系统与应用程序的深度整合,共同为用户打造优质体验。

 

2024-12-19 14:258137

评论

发布
暂无评论
发现更多内容

《程序员修炼之道》- 解决问题,而不是去责备(6)

石云升

程序员 bug修复 28天写作

前端工程师的一大神器——puppeteer

执鸢者

大前端 Node puppeteer

架构师训练营第五周学习总结

跳蚤

CSS(十)——用CSS设置表格样式

程序员的时光

程序员 大前端 七日更 28天写作

怎么才能摸透String类的底层原理?看完这篇你就懂了

后台技术汇

28天写作

第十周课后练习

Binary

在nodejs中创建cluster

程序那些事

nodejs cluster 程序那些事 childprocess workerThread

智能汽车vs.智能手机 (28天写作 Day24/28)

mtfelix

智能手机 28天写作 智能汽车 未来社会 未来游牧化

产品 0 期 - 第三周作业

Jxin

webpack | 进阶用法1:多入口构建/资源内联/脚本分离等

梁龙先森

大前端 webpack 28天写作

你知道什么是敏捷交换机吗?

第三周作业

秦挺

Scrum Patterns:准备就绪的标准 DoR(译)

Bruce Talk

敏捷 译文 Agile Scrum Patterns

架构总结思维导图

Mars

第十周命题作业

cc

第十周学习心得

cc

架构师训练营 4 期 第5周

引花眠

架构师训练营 4 期

产品的解决方案设计原则

🙃

产品经理

Pulsar 社区周报|2021-01-18 ~ 2021-01-24

Apache Pulsar

大数据 开源 pulsar Apache Pulsar 消息系统

架构师训练营第五周作业

跳蚤

ReentrantReadWriteLock读写锁简单原理案例证明

叫练

ReentrantReadWriteLock 共享锁 独占锁 锁降级

批判性思维自修课(五)

石君

28天写作 批判性思维

开发质量提升系列:标准模板(上)

罗小龙

方法论 28天写作

Soul网关源码解析目录

Java 网关 源码解析

产品经理训练营笔记-解决方案的设计和积累

.nil?

产品经理训练营

LeetCode题解:433. 最小基因变化,双向BFS(beats 99%),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

图解类加载器和双亲委派机制,一看就懂

Java鱼仔

Java 程序员 面试 类加载

使用 Tye 辅助开发 k8s 应用竟如此简单(一)

newbe36524

Docker 微服务 k8s dotnet

架构师训练营 - 第五周作业

Mark

95 后张勇:Apache Pulsar Committer 军团新生代力量

Apache Pulsar

大数据 开源 pulsar Apache Pulsar 消息系统

架构入门感悟总结

笑春风

从写代码到写Prompt,解锁鸿蒙原生应用高效开发秘籍_生成式 AI_凌敏_InfoQ精选文章