“AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

通义灵码入职阿里云云原生团队后,已经展示过 Ta 生成单元测试和自动生成代码的强大实力。今天,阿里云后端工程师云徊将从项目开发的实际需求出发,演示通义灵码在开发工作中可提供的帮助。

通义灵码在 Git 开发项目中起到了哪些作用?

云徊所在的团队日常会参与 Git 的开发工作,Git 本身有一个旧的测试框架,因此,团队打算换成一个更新的开源项目。但 Git 是用 C 语言写的,需要把它的语言改成 Python。 在对 Python 不是特别了解的情况下,如果自己写就需要先去学 Python 的一些语法,还是比较花时间的。

降低跨语言开发的门槛,就是通义灵码的舒适区了,马上,新同事通义灵码就上手开始搭建项目的框架。

功能 1:通义灵码将 Git 框架中 C 语言转换为 Python

图片

首先安装通义灵码插件,然后新建一个项目,让它用 Python 实现一个命令行程序,同时可以指定需要让它支持的子命令,通义灵码就会用 Python 生成相关需求的代码。

生成后也可以修改需求。第一版代码使用了 RQ pass 作为支持参数解析的框架,如果希望直接简化 main 函数的设计、自定义 dict 和函数指针,通义灵码就会根据需求再修改一版代码。修改后,假如已经符合需要就可以点击快捷键,让它直接生成文件,并且代码是可运行的。

功能 2:通义灵码实时续写 Git 框架代码

云徊发现,现在代码生成的 CMD hex dump 方法,与他们原来的代码并不完全一致,所以需要修改这些生成代码。

图片

通义灵码可以帮助完成代码的自动续写。只需要输入代码注释就会触发通义灵码的自动续写,生成的续写代码会以灰色字体的形式写在下面。如果接受这个代码,可以直接按 tab 键,然后继续输入需求,假如这次续写的代码不符合要求,可以修改切换,在继续选择第三个续写的内容后,发现符合预期就按 tab 键,触发通义灵码的代码续写。

最后在通义灵码的帮助下,本次演示成功地把 C 语言的单元测试框架改写成了 Python 的框架。

这是通义灵码入职后完成的第 N 个项目了,AI 程序员在公司里如鱼得水,深受大家的欢迎。作为通义灵码的资深用户,云徊表示通义灵码的定位,是辅助开发者完成日常代码编写,辅助攻克复杂技术难点。“在开发过程中,人永远是主体,有些工作是 AI 无法取代的。”

比如在开发和设计一个项目时,设计、提供思路、意图表达主要靠人。

程序员在设计完框架后,再将任务分解成若干简单和明确的小任务,分配给AI,比如生成了一个函数,生成一段代码,生成一项测试等。

“AI 活干得好不好,对不对,最终需要人来判断。未来程序员可以将更多精力放在创意、想法和构建上。”

图片

点击此处,快速体验通义灵码,还有奖品哦~

往期回顾: 阿里云首个 AI 员工入职,围观开发工程师使用反馈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WildCard开通GitHub Copilot

更多AI内容请关注我的专栏:《体验AI》 期待您的点赞👍收藏⭐评论✍ WildCard开通GitHub Copilot GitHub Copilot 简介主要功能工作原理 开通过程1、注册Github账号2、准备一张信用卡或虚拟卡3、进入github copilot页4、选择试用5、选择支付方式6、填写卡…

Flutter Get国际化和实现原理简析

Flutter Get国际化入门和实现原理简析 前言使用方法1、配置依赖包2、配置国际化相关参数3、配置en_US和zh_CN4、配置Translations5、 构建的页面:原理分析1、tr原理分析2、 updateLocale原理分析参考资料:前言 Flutter的Get插件提供了国际化功能,使用起来很方便,下面就其简…

设计模式:里氏代换原则(Liskov Substitution Principle,LSP)介绍

里氏代换原则(Liskov Substitution Principle,LSP)是面向对象设计原则的一部分,它强调子类对象应该能够替换其父类对象而不影响程序的正确性。换句话说,子类对象应该可以在不改变程序正确性的前提下替换掉父类对象。 …

为什么单片机控制电机需要加电机驱动

通常很多地方只是单纯的单片机MCU没有对电机的驱动能力,或者是介绍关于电机驱动的作用,如: 提高电机的效率和精度。驱动器采用先进的电子技术和控制算法,能够精准控制电机的参数和运行状态,提高了电机的效率和精度。拓…

Git命令汇总(持续更新)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【Flutter 面试题】 setState 在哪种场景下可能会失效?

【Flutter 面试题】 setState 在哪种场景下可能会失效? 文章目录 写在前面口述回答补充说明示例1:`setState` 在已销毁的Widget中使用示例2:在构建过程中调用`setState`写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家…

【Hello算法】 > 第 3 关 >栈与队列

数据结构 之 数组与链表 1 栈 / 栈的常见操作、实现、应用2 队列 /队列的常见操作、实现、应用3 双向队列4 Tips ———————————————————————————————————————————————————————————- ————————————————…

Hybrid Homomorphic Encryption:SE + HE

参考文献: [NLV11] Naehrig M, Lauter K, Vaikuntanathan V. Can homomorphic encryption be practical?[C]//Proceedings of the 3rd ACM workshop on Cloud computing security workshop. 2011: 113-124.[MJS16] Maux P, Journault A, Standaert F X, et al. To…

STM32应用开发教程进阶--UART串口重定向(printf)

实现目标 1、掌握STM32 HAL库的串口重定向 2、具体目标:1、实现printf “打印”各种常用的类型的数据变量 一、串口“打印” UART串口通信协议是我们常用的通信协议(UART、I2C、SPI等)之一,全称叫做通用异步收发传输器&#xf…

Druid高性能数据库连接池?SpringBoot整合MyBatis整合SpringMVC整合Druid

文章目录 Druid高性能数据库连接池?SpringBoot整合MyBatis整合SpringMVC整合Druid异常记录spring-boot-starter-parent作用Druid介绍什么是数据库连接池?为什么选择Druid数据库连接池整合SpringBoot,MyBatis,SpringMVC,Druid到Maven项目的真个流程pom文件…

Android isNetworkConnected如何判断APP连接到了无网络热点

在开发移动应用时,处理网络状态是一项基础且关键的任务。尤其是辨别出设备是否连接到了一个实际上没有互联网接入的WiFi热点(比如需要登录或者付费才能上网的公共Wi-Fi),对于保持良好用户体验非常重要。 第一步:基本网…

OSPF域间路由防环原则

1.域间路由防环原则 ①原则一 1)为了避免区域间的环路,OSPF规定不同区域间的路由交互只能通过ABR实现。 2)ABR是连接到骨干区域的,所以在区域设计上规定,所有非骨干区域都要连接到骨干区域。区 域间的通讯需要通…

Spring Gateway 网关常见配置说明

前言 Spring Gateway 是基于 Spring Framework 的 API 网关,它为微服务架构提供了路由、监控、弹性以及安全性等功能。Spring Gateway 使用非阻塞 API 和高性能的反应式编程模型来提供服务。 版本说明 本文的选项在多个最近的 Spring Cloud Gateway 版本中都是有…

python5

python应用实例 0.python基础1. python获取文件夹下所有文件的两种方式方法一:递归方法二:os.walk()(推荐) 2. python 读写csv文件写入读取 3. python 读写xml文件 0.python基础 python基础1 python基础2 python基础3 python基础…

C语言进阶:进阶指针(下)

一、 函数指针数组 我们都知道 数组是一个存放相同类型数据的存储空间 那我们已经学习了指针数组 那么函数有没有对应的指针数组呢? 如果有那应该怎么定义呢? 1. 函数指针数组的定义 我们说 函数指针数组的定义 应该遵循以下格式 int (*p[10])(); 首…

SpringBoot Aop使用篇

Getting Started SpringBoot AOP的实践 AOP相关的概念: Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。就是抽离出来的逻辑类,比如日志、权限…

通过鼠标移入移出增加页面交互效果

有时候希望给用户带来一些炫酷的交互体验,常常会通过鼠标触发一些动态的样式效果!!!这里简单总结一下,以后会不定时补充,谨以此博客作为记录! 增加边框阴影 有时候加一点阴影的效果&#xff0c…

设计模式-行为型模式-观察者模式

观察者模式用于定义对象间的一种一对多的依赖关系,使得当一个对象状态变化时,其所有依赖对象都会收到通知并自动更新 /*** 行为型模式--观察者模式* 观察者模式用于定义对象间的一种一对多的依赖关系,使得当一个对象状态变化时,其…

C++及QT的线程学习

目录 一. 线程学习 二. 学习线程当中,得到的未知。 1. 了解以下MainWindow和main的关系 2. []()匿名函数 有函数体,没有函数名. 3. join和detach都是用来管理线程的生命周期的,它们的区别在于线程结束和资源的回收。 4. operator()() 仿…

4G组网三相四线预付费电表-远程集中抄表

安科瑞薛瑶瑶18701709087/17343930412 DTSY1352 三相预付费电能表分别用于计量额定频率50Hz 的单、三相交流有功电能,具有预付费控制、负载控制、时间控制及 RS485 通信等功能,性能指标符合 GB/T17215.321-2008 标准。是改革传统用电体制&#xff0c…