【随笔】AI大模型对软件开发的影响

随着 AI 技术的不断发展,AI大模型正在重塑软件开发流程,从代码自动生成到智能测试,未来,AI 大模型将会对软件开发者、企业,以及整个产业链都产生深远的影响。欢迎探讨 AI 是如何重塑软件开发的各个环节以及带来的新的流程和模式变化,并展望未来的发展趋势~

流程与模式

在AI产于的软件开发过程中,对软件开发流程、代码生成工具、软件调试和bug修复等都会带来新的影响。

软件开发流程

在传统的软件开发过程中,最典型的就是瀑布式开发与敏捷开发,这两者走到了标准与灵活的两个极端,在这两者之中还有迭代开发、增量开发、螺旋开发等。但在具体的软件项目开发过程中,很少完全按照其中的某一种去实施,一般都会动态结合各种模式的优点来优化项目开发过程。

而在AI参与的过程中,以当前的情况来看,软件的开发流程在具体的项目上可能会有新的适配,尤其是在可快速调整的UI、文档等内容上,这些内容甚至都可以基于提示词自动产出。

代码生成工具

在传统方式中,代码生成工具主要集中在一些复用度高的组件上,比如数据模型转代码的的ORM组件、前端的JS组件等。

但在AI助力之后,代码生成的范围更大,甚至能够深入到业务领域层面,提前构建好框架代码,乃至于更进一步,填充部分基础的业务逻辑。从这点上看,对于简单的工程项目来说,AI的代码生成会提速更大。

软件调试与bug修复

软件调试与bug修复是当前AI参与度最高的软件开发过程,AI工具帮助生成单元测试能够快速验证程序的基本功能正确性,AI工具可以帮助分析代码逻辑和潜在风险,以及在bug出现时,AI工具可以帮助定位bug、给出参考建议,这一步将极大的提升研发效率。

优势、挑战及应对策略

在软件研发中,AI能参与哪些,能参与多少,如何更好的使用AI呢?

优势

以当前的发展来看,AI编程带来的显著优势至少有以下几点:

1、让更多的人成为建设者,构建自己的软件。尤其是对于一些有想法的、没编程功底的人来说。

2、提升现有程序员群体的研发效率。俗话说,三分写七分调,智能补全、bug查找与改进建议等,都将加速提升现有程序员的生产力。

3、扩展现有程序员群体的能力幅度。在专业化分工的时代,前后端、不同语言之前都是有明显鸿沟的,但在AI助力之后,这些鸿沟慢慢的变浅了,可以尝试着跨越体验下了。

挑战

在极大的利好下,也存在着不少挑战:

1、程序语言也是一种思想的表达,同样的需求不同的人员实现的方式也不一样。那么AI如何将这种需求准确的编码出来,并基于一些特定的规范,对于AI训练的语料库、生产的代码质量等都是挑战。

2、如何能够真正的投入到生产中去,尤其是在一些核心的场景。当前看到的绝大多数都是使用AI的部分功能,如代码补全、bug诊断、测试用例生成等;比较完整的代码生产还是在于一些创新性的新应用上,并没有投入到核心生产系统的案例。

3、AI代码的可读性,以及与人的协作度。随着业务的越来越复杂,需要涉及的智力活动越来越多,AI如何增量的迭代,并提供良好的可读性,能够与人一起写作提升。

应对策略

1、根据场景选择,让AI发挥最大价值。比如在概念验证、新场景的生成等,可以大胆的尝试用AI,它可以更加快速的产出,可以尽早的审视产品。

2、不要强AI所难。认识到AI的当前局限性,给它合适的工作。

3、做好把控。人作为产品的最后一道防线,做好把控。

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

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

相关文章

Java的常识

程序员分类 初级程序员(大学毕业一年以内)大概月薪:2-5K 初中级程序员(工作经验2-3年)大概月薪:6-10K 中级程序员(工作经验4-5年)大概月薪:10-15K 高级程序员(工作经验5++)大概月薪:15K++ 普通公司对于程序员的月薪资天花板25K 工作实景 微信小程序、手机APP、写…

常用的数据结构

队列(FIFO) 栈(LIFO) 链表 hash表 hash冲突处理 开放式寻址 线性探测 表示依次检查索引为 hash(key) + 1、hash(key) + 2 ... 的位置。i 是冲突后的探查步数。公式:hash(i) = (hash(key) + i) % TableSize二次探查 规则:冲突后探查的步长是平方递增的,例如,检查位置为 hash…

SpringSecurity6

1.快速入门 2.SpringSecurity底层原理 使用的是委托过滤器,委托过滤器实际上就是 sevlet 过滤器 将自己放入Sevlet环境下 然后里面是一个 过滤器链代理 代理类下又是一个代理过滤器链的集合, 对于不同请求可以有不同的过滤器链, springsecurity有个默认的过滤器链 Defau…

记 centos9 安装 docker

第一步:安装该dnf-plugins-core软件包(它提供了管理 DNF 存储库的命令) sudo dnf -y install dnf-plugins-core 第二步:设置存储库(这里使用的是阿里云的镜像源) sudo dnf config-manager --add-repo https://mirrors.aliyun.co…

电磁兼容(EMC):磁性材料(永磁、软磁、功能磁)详解

目录 一、磁性材料概述 二、常用磁性材料分类 1. 永磁材料 2. 软磁材料 3. 功能性磁材 三、软磁材料特点 一、磁性材料概述 磁性材料是指由过渡元素铁(Fe)、钴(Co)、镍(Ni)及其合金等组成的能够直接…

海盗王用golang重写的AccountServer功能

自从用golang重写了海盗王的网关gateserver以来,一直想把accountserver也重写了,但是一直没有进行。 趁上次刚写好那个golang版的更新器,还有些熟悉,于是把原来AccountServer的C代码重写读了个大概。它原版的写得太过于复杂&#…

10个Word自动化办公脚本

在日常工作和学习中,我们常常需要处理Word文档(.docx)。 Python提供了强大的库,如python-docx,使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本,帮助新…

详细分析 npm run build 基本知识 | 不同环境不同命令

目录 前言1. 基本知识2. 构建逻辑 前言 关于部署服务器的知识推荐阅读:npm run build部署到云服务器中的Nginx(图文配置) 1. 基本知识 npm run 是 npm 的一个命令,用于运行 package.json 中定义的脚本,可以通过 “s…

多组输入a+b ||:JAVA

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 计算ab 输入描述: 第一行输入一个数据组数n接下来n行每行输入两个整数 输出描述: 对于每组数据计算ab的值 示例1 输入 2 1 1 2 2 输出 2 4 代码: import java.util.Scan…

【AI日记】24.11.29 kaggle 比赛 Titanic-2 | 鼓励自己

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 核心工作 内容:学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster,学习机器学习课程备注:入门比赛有很多 notebook 适合我这种新手学习,尤其是那…

Leetcode 每日一题 104.二叉树的最大深度

目录 问题描述 示例 示例 1: 示例 2: 约束条件 题解 方法一:广度优先搜索(BFS) 步骤 代码实现 方法二:递归 步骤 代码实现 结论 问题描述 给定一个二叉树 root,我们需要返回其最大…

数据结构--树二叉树顺序结构存储的二叉树(堆)

前言 前面我们学习了顺序表、链表、栈和队列,这些都是线性的数据结构。今天我们要来学习一种非线性的数据结构——树。 树的概念及结构 树的概念 树是一种非线性的数据结构,是由n(n≥0)个有效结点组成的一个具有层次关系的集合…

代码随想录第31天

56. 合并区间 class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:intervals.sort(keylambda p: p[0]) # 按照左端点从小到大排序ans []for p in intervals:if ans and p[0] < ans[-1][1]: # 可以合并ans[-1][1] max(ans[-1][1], p[1…

MicroSoft Project2007 安装教程

一、安装教程 访问地址 二、安装链接 通过网盘分享的文件&#xff1a;Project2007CD 链接: https://pan.baidu.com/s/1Y8VnhVPiKjcmAEh8cIR5sQ?pwdp2hk 提取码: p2hk --来自百度网盘超级会员v6的分享

揭示Lyapunov方法的奥秘:控制理论中的稳定性之钥

揭示Lyapunov方法的奥秘&#xff1a;控制理论中的稳定性之钥 引言 在控制理论和动力系统的研究中&#xff0c;稳定性分析始终是一个核心问题。19世纪末&#xff0c;俄罗斯杰出的数学家亚历山大米哈伊洛维奇李雅普诺夫&#xff08;Aleksandr Mikhailovich Lyapunov&#xff09…

【娱乐项目】基于cnchar库与JavaScript的汉字查询工具

Demo介绍 利用了 cnchar 库来进行汉字相关的信息查询&#xff0c;并展示了汉字的拼音、笔画数、笔画顺序、笔画动画等信息用户输入一个汉字后&#xff0c;点击查询按钮&#xff0c;页面会展示该汉字的拼音、笔画数、笔画顺序&#xff0c;并绘制相应的笔画动画和测试图案 cnchar…

C#.Net筑基 - 常见类型

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型&#xff0c;常用于定义一些简单&#xff08;轻量&#xff09;的数据结构。对于一些局部使用的数据结构&#xff0c;优先使用结构体&#xff0c;效率要高很多。 可以有构造函数&#xff0c;也可以没有。因此初始化…

怎么选拔人才

1.引入案例&#xff1a;航天员的选拔 一、选拔&#xff1a; 1.测评和甄选的概念2.测评甄选的程序3.测评甄选原则&#xff1a;因事择人、人岗匹配&#xff1b;科学考核&#xff0c;平等竞争&#xff1b;德才兼备4.测评甄选的信效度&#xff1a;稳定系数、等值系数、内在一致系…

nginx-1.22.1 limit_req功能在C底层实现

##nginx.conf配置文件limit_req配置 ##nginx限制访问频率&#xff0c;限流 http { limit_req_zone $binary_remote_addr zoneone:30m rate1r/s; server { listen 8103; server_name localhost; location ~ ^/yym/ { …

Android 混淆问题

我的安卓混淆只需要在gradle里面开启就行了。 buildTypes {release {minifyEnabled trueshrinkResources truezipAlignEnabled trueproguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro}} minifyEnabled true 这个就是开启方法&#xf…