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

文章目录

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

🍉 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.mfbz.cn/a/31396.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java try-catch块

Java的try块用于封装可能会抛出异常的代码。它必须在方法内部使用。 如果在try块中的特定语句处发生异常,后续的代码块将不会执行。因此,建议不要在try块中放置不会抛出异常的代码。 Java的try块必须后跟catch块或finally块。 Java try-catch语法 try…

chatgpt赋能python:Python绘制车辆轨迹图

Python绘制车辆轨迹图 在现代交通中,车辆轨迹图是一个广泛应用的技术,它可以被用于道路交通管理,行车安全评估等领域。Python是一种强大的编程语言,它提供了许多绘制数据可视化图表的库。本文将介绍如何使用Python和Matplotlib库…

Git的使用方法

文章目录 Git简介Git用法上传到gitee上 Git简介 简单来说,Git就像一个日志一样,可以帮你记录你对文本文件的修改,但他的功能又强于日志,不仅可以记录,还可以帮你存储那些你对文本文件的修改,当你想要找回之…

ArcGis系列-坐标系转换

Arcgis的工程项目可以添加各种类型的空间资源,比如数据库空间表、shp文件,每张空间表的坐标系可能都会有差异,把他们放到一个工程里时可以统一设置坐标系。 本文将介绍ArcGis三个需要坐标转换的场景: Arcgis Pro设置项目坐标GP分…

论文笔记--GPT-4 Technical Report

论文笔记--GPT-4 Technical Report 1. 报告简介2. 报告概括3 报告重点内容3.1 Predictable Scaling3.2 Capabilities3.3 limitations3.3 Risks & mitigations 4. 报告总结5. 报告传送门6. References 1. 报告简介 标题:GPT-4 Technical Report作者:…

【ABAP】数据类型(四)「类型组TYPE-POOL」

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较…

Mac安装chromedriver

一、chromedriver下载 1、打开chrome浏览器输入:chrome://settings/help 查看当前chrome版本     2、下载对应的chromedriver版本 下载地址:http://chromedriver.storage.googleapis.com/index.html 选择mac系统的chromedriver 直接解压该文件 3、…

SpringBoot使用MockMVC单元测试Controller

前言: 在SpringBoot应用程序中,Controller是接受客户端请求并返回响应数据的核心组件。为了保证Controller的正确性和稳定性,我们可以使用MockMVC框架进行单元测试。MockMVC是Spring框架提供的一个HTTP客户端,用于模拟HTTP请求和响…

华为云“企业快成长大数据与微服务技术创新论坛”成功举办

6月16日,由华为云、msup、厦门火炬大学堂、厦门市行业软件协会联合主办的“企业快成长大数据与微服务技术创新论坛”在厦门成功举办。本次活动汇聚了华为云、珍爱网等知名企业的CTO和技术专家,通过技术案例解析了大数据平台构建、微服务演进等内容&#…

Golang笔记:使用json包处理JSON数据

文章目录 目的Decoding(解析数据)Encoding(创建数据)总结 目的 JSON 是一种非常流行的数据交换格式,是JavaScript中原生支持的一种数据,因为其简单方便,所以也经常用在不同程序、不同语言间数据…

【FPGA入门】第七篇、FPGA实现VGA接口驱动

目录 第一部分、实验结果 1、横的三色彩条效果 2、竖的三色彩条效果 第二部分、VGA驱动基本知识 1、VGA分辨率问题 2、VGA驱动波形 2.1、工业标准的时序波形图 2.2、比上面那张图更容易理解的图 2.3、每个区域对应的时间 2.4、不同分辨率的表格 3、VGA扫描范…

【Vue全家桶高仿小米商城】——(四)项目基础架构

第四章:项目基础架构 此章节全力讲解前端基本项目架构,通过此章节可搭建一个通用性的前端架构,内容涵盖跨域方案、路由封装、错误拦截等。 文章目录 第四章:项目基础架构一、前端跨域解决什么是前端跨域?怎么解决前端…

项目调研丨多区块并行处理公链 Transformers 研究报告

目录 一、项目简介 二、项目愿景 三、特色和优势 (1)速度 (2)安全 (3)可扩展性 (4)高度定制 (5)不可篡改 (6)所有数据公开透…

自然语言处理从入门到应用——动态词向量预训练:双向语言模型

分类目录:《自然语言处理从入门到应用》总目录 对于给定的一段输入文本 w 1 w 2 ⋯ w n w_1w_2\cdots w_n w1​w2​⋯wn​,双向语言模型从前向(从左到右)和后向(从右到左)两个方向同时建立语言模型。这样做…

论文阅读 - SegFormer

文章目录 1 概述2 模型说明2.1 总体结构2.2 Hierarchical Transformer Encoder2.3 Lightweight All-MLP Decoder 3 SegFormer和SETR的比较参考资料 1 概述 图像分割任务和图像分类任务是非常相关的,前者是像素级别的分类,后者是图像级别的分类。基于分类…

ARM、ARM架构、ARM架构芯片

ARM是一种基于精简指令集(RISC)的处理器架构,它由英国的ARM公司设计和授权。 ARM芯片具有低功耗、高性能、高集成度等特点,广泛应用于嵌入式系统、移动设备、物联网、服务器等领域。本文将介绍ARM的各类芯片,包括其特…

卷积神经网络中池化层的详细介绍

卷积神经网络自2012年,到2023年经历了翻天覆地的变化。最早的卷积神经网络由卷积层、池化层和全连接层所构成。其中卷积层用于提取图像的特征,池化层削减特征数量,全连接层用于对特征进行非线性组合并预测类别。然而在transformer横行的年代&…

基于卡尔曼滤波进行四旋翼动力学建模(SimulinkMatlab)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

笔记本电脑介绍:记录生活,激发灵感

笔记本电脑是一种轻便、便携的电脑,它的出现改变了人们的工作和生活方式,它的优势在于它的小巧、轻便、便携性,可以满足用户的不同需求。本文将从笔记本电脑的结构、功能、优势和应用四个方面进行详细阐述。 一、笔记本电脑的结构 笔记本电…

十八、网络基础(一)

文章目录 一、协议(一)前置(二)协议分层1.软件分层2.协议分层3.OSI七层模型4.TCP/IP五层(或四层)模型(1)物理层:(2)数据链路层:(3)数据链路层:(4&…