ChatGPT/GPT-4 或将从根本上改变软件工程

news2024/9/30 9:25:12

文章目录

  • 一、前言
  • 二、主要内容

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

编程也可能是最容易被 AI 技术取代的工作之一,软件的构建方式将产生根本性的转变。

今年以来,相信大家都听说过 ChatGPT、New Bing 和 GPT-4。

在网上可能也经常看到关于这些技术的一些炒作,它们因某种原因而不好(“它们是随机鹦鹉”,“它们制造虚假信息”,“它们不能推理”,“它可能取代初级开发人员,但不会取代高级开发人员”),虽然从技术上讲是正确的,但缺少了一个更重要的观点:如果你从事写软件相关的业务,这些东西是非常有帮助的

事实上,它们的工作效果非常好,以至于我认为我们正在追踪软件构建方式的根本性转变。这将对几乎所有事情产生剧烈影响。讽刺的是编程也可能是最容易被这些技术取代的工作之一。我们处于一个关键时刻,在资本主义替代我们之前,我们程序员需要理解和适应这些技术。我相信大型语言模型是优秀程序员的范式转变,并开始更详细地介绍了我一直在使用这些模型及其周围应用的见解。

我认为我们正处于软件构建方式的巨大革命的起点。我们还不知道如何完全释放这些工具的潜力:就像刚刚发现了外星拖拉机技术。许多批评家试图将其用作普通的园艺耙,因为它们犁过他们的花坛而对其进行驳斥。

我希望分享一些我在使用 LLMs 编程时获得的见解。我发现,开发实践、方法论和工作流对于知识性工作非常关键,无论是软件、写作还是音乐。因为编程与生产性团队合作密切相关(特别是在我们资本主义的背景下),所以这种实践必须被共享。编程涉及协调个人的工作以创建共同的成果,成功取决于我们如何协调。

我认为使用 LLMs 进行编程将会在软件架构、系统架构、编程实践、沟通模式和组织结构方面带来根本性的变革。这是令人兴奋的时代,因为我们正处于塑造未来编程形态的位置。


二、主要内容

LLMs will fundamentally change software engineering 主要讨论了大型语言模型(LLMs)对软件开发的影响。虽然有人认为 LLMs 会取代程序员,但作者认为 LLMs 是一种革命性的技术,可以改变软件架构、编程实践、沟通模式和组织结构。作者介绍了自己使用 LLMs 的经验,并提出了一些方法论的转变,如编写文档和代码审查成为程序员的必备技能。作者认为,LLMs 将会改变软件开发的方式,程序员需要在资本主义之前适应这种技术。

与 GitHub Copilot X 和 ChatGPT 等结对编程。

帮助 Copilot 输出有效代码

  • 方法论转变#1:写文档,编写清晰简洁的注释,给 LLM 提供在训练集中看到的上下文,从而帮助它推断出正确的答案

  • 方法论的转变#2:白板和橡皮图章,Copilot 生成的代码不需要完全正确,它基于大量优质代码生成的模式能给开发提供非常有益的启发,具体使用时再引导就可以

  • 方法论转变#3:建立更多的原型,向 Copilot 询问话题并让其使用选定的编程语言生成一个完全可运行的例子,对例子进行大量修改就可以快速完成任务

  • 方法论转变#4:建立更多的工具,使用 Copilot 可以在一小时内快速根据需求创建定制化工具,整体加速任务的完成

避免无益的聊天会话,基础知识和能力可能同样重要

  • 方法论转变#5:持续代码审查,一个模型可以观察所构建的软件,推断我们的意图和思维结构,并对其中的方法提供反馈。
  • 方法论转变#6:使用 LLMs 的认知影响,借助 LLMs 处理琐事,有效地减少了认知疲惫感,心情愉悦效率高。

GPT-4 结对编程实战,鹅厂一线研发真实使用感受 主要介绍了如何利用 ChatGPT-4 和结对编程方法,在研发过程中提高效率。作者在工作中应用 ChatGPT-4 来简化编码、重构代码、实现业务逻辑、改 bug 和写单测、取名字等场景,取得了不错的效果。同时,文章也提醒大家在尝试中要注意信息安全。

虽然 ChatGPT 以及类 ChatGPT 工具并不能完全替代工程师编码,但在很多繁琐且不需要交代太多背景的独立工作上,GPT-4 还是完成的非常不错的。作为一个技术人员,尝试下与 GPT-4 结对编程的方式,有可能在某些方面真的能大大提升自身生产效率。

Twitter 上 @advany 分享了一个 PK 项目,带我们一起看看 AI 给编程和产品开发带来的巨大影响,并对比二人的开发速度、开发工作量、测试工作量、后期运维成本等。

在这里插入图片描述

两位程序员独立开发产品 MVP 进行,其中:

  • Alex:来自德国,19 年经验,纯编程
  • Hamid:来自巴基斯坦,4 年经验,编程 + Copilot + GPT-4 + no-code

Hamid 在 AI 的帮助下,不到一周就完成了初版,实现了 100% 的代码测试覆盖率和无代码部分的端到端测试,任务几乎完成了 95%。花费清单如下:

在这里插入图片描述

19 年资深码农 VS 编程新手 + AI,开发效率人类完败!!

可以看到这其中有着显著的效率和成本差异,Alex 开发完整项目的成本约 60k,而 Hamid 仅仅需要 2.8k,这样巨大的差异足以判断该选择哪种方式,虽然 Alex 开发产品的运维成本稍低一点。Alex 将被「解雇」,更多像 Alex 的程序员也是时候做出改变了!


📚️ 参考链接:

  • LLMs will fundamentally change software engineering
  • GPT-4 结对编程实战,鹅厂一线研发真实使用感受
  • Ab Advany - AI 给编程和产品开发带来的巨大影响
  • 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力

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

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

相关文章

8.5 字节序及IP地址转换

目录 主机字节序和网络字节序 什么是字节序? 字节序转换函数 IP地址字节序转换函数 主机字节序和网络字节序 什么是字节序? 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序,分为: 大端字节序 (Big …

药物 3D 打印新突破:圣地亚哥大学用机器学习筛选喷墨打印生物墨水,准确率高达 97.22%

内容一览:药物喷墨打印是一种高度灵活和智能化的制药方式。据相关报告统计,该领域市场规模将在不久的未来呈现指数级增长。过往,筛选合适生物墨水的方法费时且费力,因此也成为药物喷墨打印领域面临的主要挑战之一。为解决这一问题…

开启你的时间序列分析之旅:一步步教你学会HyperTS

目录 前言一、HyperTS介绍二、HyperTS安装、使用2-1、安装2-2、HyperTS使用 三、案例3-0、通用工作流程3-1、时间序列预测3-2、时间序列分类3-3、时间序列异常检测 四、高级应用4-1、模型的保存和加载 总结 前言 HyperTS是一个开源的时间序列分析库,主要用于处理和分…

K8S 云集群安装纯享版 - 傻瓜式一键教程 全自动脚本文件

引言: 用的云服务器,整个过程读者还是需要准备些软妹币的… 另外众所周知,K8S最难的部分是什么?——是安装。。。 目录 0. 技术选型( :bell: 重要!)0.0 version0.1 云服务器 1. 容器运行时2. k8s 安装前准备2.0 网络连…

【计算机视觉】CVPR 2023 上的分割论文真的是神仙打架(介绍前12篇,图像分割,全景分割,语义分割,实例分割)

文章目录 一、图像分割类1.1 AutoFocusFormer: Image Segmentation off the Grid1.2 FreeSeg: Unified, Universal and Open-Vocabulary Image Segmentation1.3 Parameter Efficient Local Implicit Image Function Network for Face Segmentation 二、全景分割类2.1 You Only …

CUDA介绍

CUDA introduction 文章目录 CUDA introduction异构计算架构典型的CUDA程序的执行流程函数类型限定词Kernel 线程层次结构线程ID号计算: Example加法实例托管内存乘法 性能分析工具 Nsight System功能用法 Reference欢迎关注公众号【三戒纪元】 异构计算架构 GPU并…

SIFT算法简介

参考资料 SIFT文献-David-UBC: 《Distinctive Image Features from Scale-Invariant Keypoints》SIFT算法介绍: SIFT特征详解 - Brook_icv - 博客园 (cnblogs.com) 简介 Scale-invariant feature transform 尺度不变特征变换 SIFT算法不仅只有尺度不…

腾讯安全杨光夫:企业需改变“头痛医头”现状,构建持续进化的安全免疫力

6月13日,腾讯安全联合IDC发布“数字安全免疫力”模型框架,主张将守护企业数据和数字业务两大资产作为企业安全建设的核心目标。腾讯安全副总裁杨光夫在《助力企业持续进化安全免疫力》的主题演讲中表示,在新业态、新威胁、新场景、强监管下&a…

【MySQL】MVCC是如何解决快照读下的幻读问题的

文章目录 LBCC当前读 MVCC隐藏列undo logRead View 总结 我们从上文中了解到InnoDB默认的事务隔离级别是repeatable read(后文中用简称RR),它为了解决该隔离级别下的幻读的并发问题,提出了LBCC和MVCC两种方案。其中LBCC解决的是当…

StarRocks 统一 OLAP 引擎在滴滴的探索实践

作者:余辉,滴滴出行 OLAP 团队负责人/专家工程师;李明皇,滴滴出行高级软件开发工程师 发展历程 滴滴的 OLAP 系统早期由用于实时监控系统的 Apache Druid (以下简称 Druid)和离线加速使用的 Apache Kylin&a…

随风摇曳的她——美蕨(matlab实现)

目录 1 随风摇曳的她 2 摇曳带来的哲思 3 Matlab代码实现 1 随风摇曳的她 梦幻的场景、浪漫的气息,带上心爱的人,拥抱在这片花海之下,便有了电影男女主角的氛围感; 就算阅尽了世间风貌,也抵不上和她在一起时锦短情长&a…

Idea批量删除空行

1.在编辑框中使用快捷键ctrl f 打开替换框 2.勾选正则模式 Regex 3.在条件框中输入正则^\s*\n 正则解释,匹配以0个或n个\s空白符起首的换行\n 输入正则后可以看到效果,可以看到单行和多行都被选中了 。 如果想只删除连续多行的空行,就需要…

fl studio for window 21.0.3.3517 官方中文版免费下载及新功能介绍

FL Studio 21 for Mac官方中文版免费下载是一款功能强大的音乐编曲制作软件。尽管你可能没有接触过音乐制作,也能通过fl Studio 21,撰写,整理,录制,编辑,混合,掌握和制作出专业的品质音乐。 fl…

每隔一段时间重试,重试n次 java 工具类

需求: 若代码出现异常,则每隔一段时间重试一下,重试n次 import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.util.function.Supplier;public class RetryUtils {private static final Logger log LoggerFactory.getLogg…

ASP.NET Core 依赖注入系列一

什么是ASP.NET Core 依赖注入? 依赖注入也称DI是一项技术用来实现对象松耦合以至于应用程序更容易维护,ASP.NET Core通过控制器的构造函数自动注入依赖的对象,我们创建ASP.NET Core MVC应用程序演示依赖注入特性是如何工作, 在这节中我们讲解该特性 1 …

剑指offer45 把数组排成最小的数

剑指offer45 把数组排成最小的数 文章目录 剑指offer45 把数组排成最小的数题目描述思路实现参考文献 题目描述 输入一个非负整数数组,把数组里的所有数字拼接起来排成一个数,打印能拼接出来的所有数字中最小的一个。 思路 此题求拼接起来的最小数字&…

Selenium教程__使用switch_to.window方法处理窗口切换(12)

想一下这样的场景,打开页面A点击一个链接,在一个新的窗口打开页面B,由于之前的driver实例对象在页面A,但是你接下来操作的元素在页面B中,此时脚本就会报错找不到元素。该场景需要使用到selenium的switch_to.window&…

CMake 编译并链接动态库

问题描述 目录结构如下: |---CMP|---mmath|---mmath.h|---mmath.cpp|---CMakeLists.txt|---CMP.cpp|---CMakeLists.txt需要把mmath子项目编译成动态链接库并被CMP.cpp调用 代码如下: //mmath.h namespace mmath { int __declspec(dllexport) add(int…

Python基础(20)——Python函数讲解二

Python基础(20)——Python函数讲解二 文章目录 Python基础(20)——Python函数讲解二目标一. 变量作用域二. 多函数程序执行流程三. 函数的返回值四. 函数的参数4.1 位置参数4.2 关键字参数4.3 缺省参数4.4 不定长参数 五. 拆包和交…

pytest和ValueError: Expect x to not have duplicates(个人笔记)

1.项目在新环境报错为没有pytest 解决办法: 在设置里面的Tools里面的某个选项改为(如下图) 2.同一个项目在旧电脑正常运行,到了新电脑新环境莫名报错 报错为 interpolate.interp1d里面的某个函数报错 具体报错为:Valu…