从写代码到写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 面向的则是多智能终端、全场景。在这一背景下,中国开发者需要一个全新的平台,这个平台不仅仅是一个单一的技术或产品,而是一个全面的生态系统,涵盖应用程序、操作系统以及各种硬件设备,能够为用户提供全方位的服务。
当前,鸿蒙生态正以蓬勃之势重塑智能世界格局,鸿蒙诚挚地邀请各界参与到生态技术构建中来,无论是开发应用程序还是提出创新建议,都将对生态建设产生积极影响。鸿蒙也期望能有越来越多的应用程序厂商、开发人员及合作伙伴加入到“软硬整合”合作中来,实现操作系统与应用程序的深度整合,共同为用户打造优质体验。
从写代码到写Prompt,解锁鸿蒙原生应用高效开发秘籍的更多相关文章
- 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写
互联网一线工程师程序代写 微信联系 当天完成 查看大牛简介特色: 学霸代写,按时交付,保证原创,7*24在线服务,可加急.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor ...
- Swagger2边写代码边写文档
作为一个开发人员最怕的就是写文档了,但是要想成为一个合格的程序员,写好文档也是一个必备的技能.开发中我们经常要写接口服务,既然是服务就要跟别人对接,那难免要写接口文档,那么如何”优雅“的写接口文档 ...
- 解锁云原生 AI 技能 - 开发你的机器学习工作流
按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...
- 手写代码之写斐波那契数列-传入key值求对应的value
public class Testany { public static void main(String[] args) { int value = number(10); System.out.p ...
- 屌炸天,像写代码一样写PPT,一个小工具解决
此文已经废,请移步升级版博文: markdown写ppt (史上最全)
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- jQuery 之父:每天写代码
去年秋天我的支线代码项目 遇到了一些问题,项目进展不足,而且我没法找到一个完成更多代码的方法(在不影响我在Khan Academy方面的工作的前提下). 我主要在周末进行我的支线,当然有时候也在晚上进 ...
- jQuery之父:坚持每天都要写代码
关于作者:John Resig, jQuery之父,同时也是Pro Javascript Techniques和Secrets of the JavaScript Ninja的作者.他目前主持 Kha ...
- 有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文
从前,任何程序的任何功能,都需要一行一行敲出来. 后来,程序猿要写的代码越来越多,世界上便有了各种各样的API,来减少大家的工作量.有些功能,可以让API来帮我们实现. 不过,人类写下的话,API并不 ...
- OS: 读者写者问题(写者优先+LINUX+多线程+互斥量+代码)(转)
一. 引子 最近想自己写个简单的 WEB SERVER ,为了先练练手,熟悉下在LINUX系统使用基本的进程.线程.互斥等,就拿以前学过的 OS 问题开开刀啦.记得当年学读者写者问题,尤其是写者优先的 ...
随机推荐
- Luogu P10581 蓝桥杯2024国A 重复的串 题解 [ 蓝 ] [ KMP ] [ 动态规划 ] [ 矩阵加速 ]
重复的串:KMP + dp 的板子题. 暴力 dp 设计 \(dp_{k,i,j}\) 表示主串匹配到第 \(i\) 位,模式串有 \(j\) 位已匹配完成,目前已完成 \(k\) 次匹配的方案数. ...
- 在Windows系统中安装Open WebUI并连接Ollama
一.Open WebUI简介与安装前准备 Open WebUI是一个开源的大语言模型(LLM)交互界面,支持本地部署与离线运行.通过它,用户可以在类似ChatGPT的网页界面中,直接操作本地运行的Ol ...
- 推荐几款开源且免费的 .NET MAUI 组件库
前言 今天大姚给大家推荐 3 款开源且免费的 .NET MAUI 组件库. .NET MAUI介绍 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML ...
- 【博客搭建】Latex数学书写笔记
[博客搭建]Latex 数学书写笔记 Latex 是一种文档书写语言,支持大量的特殊字符,包括书写数学公式,并且很多 Markdown 环境都支持该语言. 布局实现 靠左:使用内联数学块$...$. ...
- Linux - openssh通过源码build rpm包
# 安装依赖包 yum install --downloadonly --downloaddir=/home/rpm-install rpm-build gcc gcc-c++ glibc glibc ...
- 大数据之路Week10_day05 (Redis的安装与简单命令使用)
Redis 支持单机版和集群,下面的步骤是单机版安装步骤 redis3.0.0版本的安装包百度云链接: 链接:https://pan.baidu.com/s/1mb_SdU5hHlrmUkWN7Drx ...
- 机器学习 | 强化学习(6) | 策略梯度方法(Policy Gradient Method)
6-策略梯度方法(Policy Gradient Method) 策略梯度概论(Introduction) 基于策略(Policy-Based) 的强化学习 对于上一节课(价值函数拟合)中采用参数\( ...
- [解决方案]git pull : error: cannot lock ref 'refs/remotes/origin/*' (unable to update local ref)
错误 git pull 报错不能更新本地分支 错误分析 本地分支跟远程分支不匹配 导致更新失败 解决方案 备份自己修改的代码 .git\refs\remotes (文件路径)对应删除你报错的分支 gi ...
- vue生命周期调用
<template> <div> <!-- 用户页的面包屑导航 --> <nav aria-label="breadcrumb"> ...
- LayerSkip: 使用自推测解码加速大模型推理
自推测解码是一种新颖的文本生成方法,它结合了推测解码 (Speculative Decoding) 的优势和大语言模型 (LLM) 的提前退出 (Early Exit) 机制.该方法出自论文 Laye ...