当前位置: 首页 > news >正文

ChatGPT:AI不取代程序员,只取代的不掌握AI的程序员

作者:成都兰亭集势信息技术有限公司技术总监张雄

可能大家会有如下的问题,我就使用chatGPT这个AI工具的API来问一下。

问:chatGPT会替换掉程序员吗如果能,预计好久?

答:作为一名 AI 语言模型,chatGPT 并不能完全取代程序员的工作。尽管 chatGPT 在理解和生成自然语言方面取得了很大进步,但它仍然需要由程序员来设计、训练和部署,并且需要知道如何在特定场景中正确使用和调整它。

从目前的技术水平来看,chatGPT 还远远无法替代程序员的全部工作。但是,随着 AI 技术的不断发展,chatGPT 等 AI 工具可能在处理日常任务、处理常见问题和简化常规编程工作等方面发挥重要作用。

因此,chatGPT 可能在未来一段时间内成为程序员工作的一项有用的工具,但并不会完全取代程序员。时间的具体预计很难确定,因为技术和市场条件的发展都需要考虑到。

我个人看来,替换还需时日,毕竟我们人类更具有系统的全局观,以及公司系统等一时半会儿也不会公开,鉴于活在当下,人机共生共赢,现在就可以直接落地,以下是一些小实验、小故事,希望大家喜欢。

Java代码重构

网上很多生成代码的案例,这里我就举例一下代码重构。

问:请重构这段Java代码:

private String getPreName(EventType eventType) {
   String preName = "product_view_1d";
   if(eventType.equals(EventType.PV_DAY)){
      preName = "product_view_1d";
   }
   else if(eventType.equals(EventType.PV_3DAY)){
      preName = "product_view_3d";
   }
   else if(eventType.equals(EventType.PV_7DAY)){
      preName = "product_view_5d";
   }
   return preName;
}

答:

154caed49d31f8919b0ed5dc798dcdb5.png

如果我们要装X,就这样问:使用设计模式重构上面这段代码

答:

4b62877d5887d4e746fbeca8d9776d91.png

7c56a88e0c291d2fc95c23975291a77c.png

05a940c0382511dcf7d52f7d200a5dc1.png

20e5a7756abd0d402eb949291c971f5e.png

当然,我们还可以让它生成单元测试:

问:对这段代码生成单元测试

答:

ebb56eb67e1ac65f21008aa9e52e6f59.png

切记:虽然我举例比较简单,但是,你给复杂的类,ChatGPT也是完全可以搞定的,只是有一点点小限制:目前暂时是问问题的长度不能超过4096个字符。

如果引伸一下,大家平时的code review,也可以通过ChatGPT来提供参考建议。

简单算法篇

问:java实现1到n的求和算法

答:

c34fef83a2b891e21fe7367cdfc9979a.png

继续问:java实现1到n的求和的最优算法

答:

98f566539e46c542e2168f79a8090d9b.png

所以,AI给你什么样的结果,取决于你问问题的质量,莫非这下变成【面向提问编程...】!

应用案例

比如我们做跨境电商,需要给最近浏览过我们网站商品的用户发营销邮件。

以前是配置几个固定的邮件标题,随机选取一个作为邮件标题发给用户。

现在,为了提升邮件的打开率,我们想到了优化邮件标题,做法是通过获取到用户浏览的商品的类目,使用ChatGPT来生成不同的邮件标题。

比如原来的模板是:

Hi James, are you interested in <分类名>

现在通过API调用,以上面的Phones为例:

把这个邮件标题修改得更吸引人: Hi James, are you interested in Phones

我一次性让让机器人直接给我3个优化的标题,得到如下:

1. "Upgrade Your Tech Game: New Phone Must-Haves for James"

2. "Unleash Your Potential with the Latest Phones for James"

3. "James, Don't Miss Out on Our Top Picks for Phones!"

不知道各位认为是否给吸引人了,以我的英语水平来看,觉得单词好像要高大上一些,哈哈。

所以通过以上高效(sao)操作,较好的提升了用户体验,提升了邮件打开率,为公司产生了价值。

最后

希望大家善假于物,活在当下,好好利用ChatGPT、文心一言(我也是支持国产的)等AI工具,不要害怕和恐慌,尽情拥抱,让开发效率更上一层楼,为公司带来更大的收益。

往期推荐:

  • 新的财富风口就在ChatGPT

  • 恐怖的GPT4!

  • GPT-4 开启 “软件工程3.0” 全新时代

技术琐话 

以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。

相关文章:

ChatGPT:AI不取代程序员,只取代的不掌握AI的程序员

作者&#xff1a;成都兰亭集势信息技术有限公司技术总监张雄 可能大家会有如下的问题&#xff0c;我就使用chatGPT这个AI工具的API来问一下。 问&#xff1a;chatGPT会替换掉程序员吗&#xff1f;如果能&#xff0c;预计好久&#xff1f; 答&#xff1a;作为一名 AI 语言模型&a…...

数字革命下的产品:百数十年变迁的启示与思考。

随着数字化时代的到来&#xff0c;软件开发成为各行各业不可或缺的一部分。然而&#xff0c;传统的软件开发方法需要长时间的开发周期&#xff0c;高昂的成本和大量的人力资源。因此&#xff0c;低代码开发平台应运而生。低代码开发平台通过简化开发人员的工作和加速软件开发流…...

部门新来一00后,给我卷崩溃了...

2022年已经结束结束了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;相信很多小伙伴也在准备今年的金三银四的面试计划。 在此展示一套学习笔记 / 面试手册&#xff0c;年后跳槽的朋友可以好好刷一刷&#xff0c;还是挺有必要的&#xff0c;它几乎涵盖了所有的…...

使用Spring Boot和Docker构建可伸缩的微服务架构,应对增长的业务需求

使用Spring Boot和Docker构建可伸缩的微服务架构&#xff0c;应对增长的业务需求 一、简介1. 微服务架构的定义2. Spring Boot和Docker的概述 二、Spring Boot1. Spring Boot的介绍2. Spring Boot的优势3. Spring Boot的组件4. Spring Boot的应用 三、Docker1. Docker的介绍2. …...

计算机组成原理基础练习题第四章

1.下述说法中()是正确的。 A、半导体RAM信息可读可写,且断电后仍能保持记忆 B、半导体RAM是易失性RAM,而静态RAM中的存储信息是不易失的 C、半导体RAM是易失性RAM,而静态RAM只有在电源不掉电时,所存信息是不易失的 D、以上选项都不对 解析&#xf…...

浅谈Gradle构建工具

一、序言 常见的项目构建工具有Ant、Maven、Gradle&#xff0c;以往项目常见采用Maven进构建&#xff0c;但随着技术的发展&#xff0c;越来越多的项目采用Gradle进行构建&#xff0c;例如 Spring-boot。Gradle站在了Ant和Maven构建工具的肩膀上&#xff0c;使用强大的表达式语…...

如何获取和制作免费的icon图标素材

icon 图标在界面设计中虽然占比不大&#xff0c;但却是不可缺少的设计元素之一。设计师通过 icon 图标&#xff0c;将抽象的概念通俗化&#xff0c;降低用户理解某个操作的难度。而设计师也会通过改变 icon 图标的样式来展现整体界面的视觉效果。icon 图标的风格有很多&#xf…...

【MySQL】MySQL索引--聚簇索引和非聚簇索引的区别

文章目录 前言1.聚簇索引和非聚簇索引的概念2.两者详细介绍2.1 聚簇索引2.2 非聚簇索引 3. 两者的区别3.1 数据存储方式3.2 二级索引查询 前言 1.聚簇索引和非聚簇索引的概念 数据库表的索引从数据存储方式上可以分为聚簇索引和非聚簇索引两种。“聚簇”的意思是数据行被按照…...

如何使用 SVG.js 中的一些相关方法来创建、设置和操作 image 元素

SVG.js 是一个基于 JavaScript 的 SVG 库&#xff0c;提供了许多常用的 SVG 元素和方法&#xff0c;方便开发者进行 SVG 图形的创建和操作。其中&#xff0c;image 元素是 SVG.js 中较为常用的元素之一&#xff0c;本文将详细介绍 SVG.js 中与 image 元素相关的方法。 一、创建…...

展会进行时!5月16-18日箱讯与您相约中国航交会

宁波国际会展中心7、8号馆 第五届中国&#xff08;宁波&#xff09;国际航运物流交易会 暨2023全球物流企业合作博览会 火爆进行中 箱讯与您相约 8号馆 C033K-C036展位 期待您的光临&#xff01; 2023年5月16-18日&#xff0c;第五届中国&#xff08;宁波&#xff09;国际…...

CMake:递归检查并拷贝所有需要的DLL文件

文章目录 1. 目的2. 设计整体思路多层依赖的处理获取 DLL 所在目录探测剩余的 DLL 文件 3. 代码实现判断 stack 是否为空判断 stack 是否为空获取所有 target检测并拷贝 DLL 4. 使用 1. 目的 在基于 CMake 构建的 C/C 工程中&#xff0c;拷贝当前工程需要的每个DLL文件到 Visu…...

python常见问题及解决方案

Python是一种高级编程语言&#xff0c;具有易于学习、易于阅读和易于维护的特点。然而&#xff0c;即使是最有经验的Python开发人员也可能会遇到一些常见的错误。在本文中&#xff0c;我们将讨论一些常见的Python运行时错误&#xff0c;并提供解决这些错误的办法。 语法错误 …...

JUC之Synchronized与Lock

Synchronized 称之为”同步锁 作用&#xff1a; 保证在同一时刻&#xff0c; 被修饰的代码块或方法只会有一个线程执行&#xff0c;以达到保证并发安全的效果 用法&#xff1a; 1.修饰方法&#xff1a;方法锁&#xff0c;锁的对象是当前对象 2.修饰静态方法&#xff1a;类锁…...

动态规划理论基础

文章目录 定义动态规划与分治问题的区别两种方式实现动态规划方法一&#xff1a;带备忘录的自顶向下法方法二&#xff1a;自底向上法 本质核心解题步骤常见题型划分 定义 动态规划方法通常用来求解最优化问题(optimization problem)。这类问题可以有很多可行解&#xff0c;每个…...

Redis的数据类型

参考文档&#xff1a;https://www.runoob.com/redis/redis-tutorial.html redis当中一共支持五种数据类型&#xff0c;分别是&#xff1a; string字符串 list列表 set集合 hash表 zset有序集合 1、对字符串string的操作 下表列出了常用的 redis 字符串命令 1 设置值 获取…...

vue3鼠标经过显示按钮

在前端开发中&#xff0c;我们经常需要在页面中添加一些交互效果来提升用户体验。其中一个常见的需求就是鼠标经过某个元素时显示一个按钮&#xff0c;这个按钮可以用于触发一些操作或者显示更多的内容。 在本篇文章中&#xff0c;我将会介绍如何使用 Vue3 实现一个鼠标经过显…...

【2023华为OD笔试必会25题--C语言版】《18 最短木板长度》——数组

本专栏收录了华为OD 2022 Q4和2023Q1笔试题目,100分类别中的出现频率最高(至少出现100次)的25道,每篇文章包括原始题目 和 我亲自编写并在Visual Studio中运行成功的C语言代码。 仅供参考、启发使用,切不可照搬、照抄,查重倒是可以过,但后面的技术面试还是会暴露的。✨✨…...

yolov5车道线检测+测距(碰撞检测)

yolov5车道线检测+测距(碰撞检测) 1. 车道线检测2. 测距2.1 测距原理2.2 相机标定2.2.1:标定方法12.2.2:标定方法23. 相机测距3.1 测距添加3.2 主代码4. 实验结果相关链接 1. 基于yolov5的车道线检测及安卓部署 2. YOLOv5+单目测距(python) 3. 具体实现效果...

微服务学习笔记--(Gateway网关)

统一网关Gateway 为什么需要网关gateway快速入门断言工厂过滤器工厂全局过滤器跨域问题 Gateway网关-网关作用介绍 为什么需要网关 网关功能&#xff1a; 身份认证和权限校验服务路由、负载均衡请求限流 网关的技术实现 在SpringCloud中网关的实现包括两种&#xff1a; …...

QML插件的创建及调用

QML插件的创建及调用 创建QML Plugin注册插件调用插件 创建QML Plugin 1、 注册插件 1、可以将qml文件放在qmldir中进行声明。 此种方式需要将qml文件和qmldir放在一起 module EularFrame plugin EularFrameEButton 1.0 MyButton.qml2、可以在*plugin.cpp注册 此种方式只需…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...