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

ChatGPT提高你日常工作的五个特点,以及如何使用它来提高代码质量

ChatGPT已经完全改变了代码开发模式。然而,大多数软件开发者和数据专家们仍然不使用ChatGPT来完善——并简化他们的工作。

这就是我们在这里列出提升日常工作效率和质量的5个不同的特点的原因。

让我们一起来看看在日常工作中如何使用他们。
在这里插入图片描述
警告:不要用ChatGPT处理关键代码或信息。

1. 生成代码架构

当需要从零开始建立新工程的时候,ChatGPT就是我的秘密武器。只需要几个提示,它就能用我选中的技术、框架和版本生成我需要的代码架构。它不仅每次为我节省了至少一个小时左右的工作时间,但是它也帮助你保持文档——或者团队的文档、组织性和更新性,就像团队里多了一只手!

例如,假设我想使用一些外部API。我可以让ChatGPT为我起草一个初始代码结构。

使用Python生成集成外部API的样板代码

ChatGPT立即响应:
在这里插入图片描述
或者,我甚至可以使用Selenium请求一个架构来抓取LinkedIn, ChatGPT会给我以下输出。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time# Initialize the web driver
driver = webdriver.Firefox()# Navigate to LinkedIn
driver.get("https://www.linkedin.com/")# Find the email and password input fields
email = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")# Enter your credentials
email.send_keys("YOUR_EMAIL")
password.send_keys("YOUR_PASSWORD")# Click the login button
driver.find_element_by_xpath("//button[@type='submit']").click()# Wait for the page to load
time.sleep(5)# Navigate to the profile of the desired user
driver.get("https://www.linkedin.com/in/USER_PROFILE_NAME")# Extract the information you want from the page
name = driver.find_element_by_xpath("//span[@class='inline t-24 t-black t-normal break-words']").text
location = driver.find_element_by_xpath("//span[@class='t-16 t-black t-normal inline-block']").textprint(name)
print(location)# close the browser
driver.quit()

容易,对吧?尝试用任何你能想到的项目挑战ChatGPT。

2. 研究和比较

决定如何实现某些东西是很困难的,特别是当有多个选项可供选择时。我的常用方法是为每种方法创建基本的概念证明,然后进行比较。但是,在ChatGPT的帮助下,这个过程变得简单多了。

我现在可以直接询问它的专家意见,哪个选项或库最适合我的代码开发。这为我在决策过程中节省了时间和精力,并确保我使用了最好的工具。

假设我想要处理地理空间数据,但我不确定是否应该使用Geopandas或Plotly。我可以让ChatGPT为我进行比较——给定一种类型——它会立即回答两个库之间的主要差异。
在这里插入图片描述
如果现在我想要抓取一个网站,我可以问哪个库来做这个最好。ChatGPT与Python中最流行的网络检索库相匹配。
在这里插入图片描述
你甚至可以询问你想要抓取的网站的最佳选择是什么?即使ChatGPT很可能会警告你,这将违反该网站的内容政策,所以要小心。

从社交网络中获取利益的最佳选择是什么?
在这里插入图片描述

3. 理解代码

我们都有过这样的经历,努力理解一个不是由我们自己创建的代码库。浏览一段复杂且无组织的代码——也称为套管程序,可能是一项令人沮丧且耗时的任务。

但是,有了ChatGPT,理解一个新的代码库就变得容易多了。我现在可以简单地要求它解释代码的功能,并立即理解它,不用再浪费宝贵的时间和精力去破译写得很差的代码。

下面的代码做什么?

#We find how many jobs are offered.
jobs_num = driver.find_element(By.CSS_SELECTOR,"h1>span").get_attribute("innerText")
if len(jobs_num.split(',')) > 1:jobs_num = int(jobs_num.split(',')[0])*1000
else:jobs_num = int(jobs_num)jobs_num   = int(jobs_num)#Here I choose manually a number of jobs, so it wont take that long:
jobs_num = 1000;#We create a while loop to browse all jobs. 
i = 2
while i <= int(jobs_num/2)+1:#We keep scrollind down to the end of the view.driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")i = i + 1print("Current at: ", i, "Percentage at: ", ((i+1)/(int(jobs_num/2)+1))*100, "%",end="\r")try:#We try to click on the load more results buttons in case it is already displayed.infinite_scroller_button = driver.find_element(By.XPATH, ".//button[@aria-label='Load more results']")infinite_scroller_button.click()time.sleep(0.1)except:#If there is no button, there will be an error, so we keep scrolling down.time.sleep(0.1)pass

ChatGPT立即给出了上述代码的详细解释,您甚至可以在给定的代码部分中询问更多的细节——只需稍微使用ChatGPT,您就会发现它创造的所有惊喜。
在这里插入图片描述

4. 向代码中添加注释

ChatGPT还可以帮助我们提高代码的质量和可维护性。通过要求它一行一行地添加注释,我们可以确保我们的代码在发布之前被正确地记录。这消除了对无注释代码的需要,并使其他人更容易理解和使用我们的代码。

ChatGPT可以显著提高可读性、可维护性和与他人的协作。

让我们假设前面的代码根本没有注释。我们可以让ChaGPT直接向它添加注释。

向以下代码添加注释:

# Find the number of jobs offered on the website
jobs_num = driver.find_element(By.CSS_SELECTOR,"h1>span").get_attribute("innerText")# Check if the number of jobs contains a ',' and if so, convert it to number * 1000
if len(jobs_num.split(',')) > 1:jobs_num = int(jobs_num.split(',')[0])*1000
else:jobs_num = int(jobs_num)# Convert jobs_num to an integer
jobs_num = int(jobs_num)# Set the number of jobs to scrape to 1000
jobs_num = 1000;# Initialize a counter variable to scroll through the jobs
i = 2# Start a while loop to scroll through the jobs
while i <= int(jobs_num/2)+1:# Scroll to the bottom of the pagedriver.execute_script("window.scrollTo(0, document.body.scrollHeight);")# Increment the counter variablei = i + 1# Print the current number of jobs scrolled through and the percentage of completionprint("Current at: ", i, "Percentage at: ", ((i+1)/(int(jobs_num/2)+1))*100, "%",end="\r")try:# Try to locate the "Load more results" button and click on itinfinite_scroller_button = driver.find_element(By.XPATH, ".//button[@aria-label='Load more results']")infinite_scroller_button.click()# Sleep for 0.1 secondstime.sleep(0.1)except:# If the button is not present, sleep for 0.1 seconds and continue scrollingtime.sleep(0.1)pass

5. 使用某种风格重写代码

ChatGPT不仅是理解不熟悉的代码的有价值的工具,而且还可以帮助我们确保自己的代码遵循行业标准和惯例。通过要求它纠正我们的代码以符合Pep-8约定——或者甚至为我们的编码风格创建一个自定义规范,我们可以避免在合并来自不同repo或团队的代码时进行昂贵且耗时的重构。

这有助于简化协作过程并提高效率。总的来说,ChatGPT是一个通用的工具,可以提高我们代码库的质量和可维护性。

当我们要求ChatGPT使用Pep-8标准编写之前的代码时,它会直接给我们重构代码。

你能用Pep8标准重写以下代码吗?
在这里插入图片描述

主要结论

我希望在阅读这篇文章之后,您能够意识到ChatGPT可以帮助我们提高工作效率,并创建更高质量的输出。我知道人们很容易陷入思维陷阱,认为人工智能最终可能会取代我们的工作,但正确的人工智能可以成为一种强大的资产,可以为我们所用。

然而,重要的是要记住,批判性思维在与人工智能合作时仍然是关键,就像与人类同事合作时一样。

因此,在你急于实现人工智能生成响应之前,请确保先花时间审查和评估它们。相信我,到最后都是值得的!

相关文章:

ChatGPT提高你日常工作的五个特点,以及如何使用它来提高代码质量

ChatGPT已经完全改变了代码开发模式。然而&#xff0c;大多数软件开发者和数据专家们仍然不使用ChatGPT来完善——并简化他们的工作。 这就是我们在这里列出提升日常工作效率和质量的5个不同的特点的原因。 让我们一起来看看在日常工作中如何使用他们。 警告&#xff1a;不要…...

spark datasourceV1和v2

datasourceV2 一文理解 Apache Spark DataSource V2 诞生背景及入门实战 https://zhuanlan.zhihu.com/p/83006243 2.3 Data source API v2 https://issues.apache.org/jira/browse/SPARK-15689 Because of the above limitations/issues, the built-in data source impleme…...

10种聚类算法的完整python操作示例

大家好&#xff0c;聚类或聚类分析是无监督学习问题。它通常被用作数据分析技术&#xff0c;用于发现数据中的有趣模式&#xff0c;例如基于其行为的客户群。有许多聚类算法可供选择&#xff0c;对于所有情况&#xff0c;没有单一的最佳聚类算法。相反&#xff0c;最好探索一系…...

构建合作伙伴生态系统刻不容缓

合作伙伴关系管理(PRM)系统是否已死&#xff1f;向合作伙伴生态系统的转变将如何改变我们未来管理合作伙伴计划的方式&#xff1f; 自PC革命以来&#xff0c;间接销售和渠道营销一直普遍存在于技术领域&#xff0c;通过其他公司的销售团队和人脉来增加销售&#xff0c;是一种明…...

剑指 Offer 55 - I. 二叉树的深度(java解题)

剑指 Offer 55 - I. 二叉树的深度&#xff08;java解题&#xff09;1. 题目2. 解题思路3. 数据类型功能函数总结4. java代码1. 题目 输入一棵二叉树的根节点&#xff0c;求该树的深度。从根节点到叶节点依次经过的节点&#xff08;含根、叶节点&#xff09;形成树的一条路径&a…...

威胁行为者将旧漏洞武器化以发起勒索软件攻击

勒索软件运营商比以往任何时候都更加依赖未打补丁的系统来获得对受害者网络的初始访问权限。 一份新报告显示&#xff0c;攻击者正在互联网和暗网中积极搜索可用于勒索软件攻击的旧漏洞和已知漏洞。 其中许多缺陷已存在多年&#xff0c;对尚未修补或更新易受攻击系统的组织构…...

2023北京健博会/第十届中国国际大健康产博览会

China-DJK北京健博会&#xff0c;立足北京打造国内外大健康产业快速融合发展平台&#xff1b; 大健康时代&#xff1a;20年前没有健康产业&#xff0c;如今健康产业成了全球经济中唯“不缩水”的行业&#xff0c;早已被国际经济学界确定为“无限广阔的兆亿产业”。据机构数据&…...

Python学习笔记之环境搭建

Python学习笔记之环境搭建1. 下载Python2. Windows 安装最新Python3. Linux 安装最新PythonPython是一种编程语言&#xff0c;可以让您更快地工作并更有效地集成系统。 您可以学习使用Python&#xff0c;并立即看到生产力的提高和维护成本的降低。 Python是荷兰程序员吉多范罗苏…...

死锁的总结

哲学家死锁造成的原因&#xff1a;我有你需要的&#xff0c;但你已经有了 饥饿与死锁的区别 死锁一旦发生一定又饥饿现象&#xff0c;但是饥饿现象产生不一定是死锁 历史上对于死锁的声音 死锁的方案 前面两个都是不允许死锁出现 前面都是概念性的东西 后面我们研究如何破坏…...

强化学习RL 01~ 数学基础

目录 RL理解要点 1. RL数学基础 1.1 Random Variable 随机变量 1.2 概率密度函数 Probability Density Function(PDF) 1.3 期望 Expectation 1.4 随机抽样 Random Sampling 2. RL术语 Terminologies 2.1 agent、state 和 action 2.2 策略 policy π 2.3 奖励 reward …...

Java的运算符

目录 一、什么是运算符 二、算术运算符 1. 基本四则运算符&#xff1a;加减乘除模&#xff08; - * / %&#xff09; 2、增量运算符 - * % 3. 自增/自减运算符 -- 三、关系运算符 四、 逻辑运算符(重点) 1. 逻辑与 && 2. 逻辑或 || 3. 逻辑非 ! 4. 短路求值…...

扫地机器人(蓝桥杯C/C++)

题目描述 小明公司的办公区有一条长长的走廊&#xff0c;由 NN 个方格区域组成&#xff0c;如下图所示。 走廊内部署了 KK 台扫地机器人&#xff0c;其中第 ii 台在第 A_iAi​ 个方格区域中。已知扫地机器人每分钟可以移动到左右相邻的方格中&#xff0c;并将该区域清扫干净。…...

如何理解API?API 是如何工作的?(5分钟诠释)

大家可能最近经常听到 API 这个概念&#xff0c;那什么是API&#xff0c;它又有什么特点和好处呢&#xff1f; wiki 百科镇楼 …[APIs are] a set of subroutine definitions, protocols, and tools for building application software. In general terms, it’s a set of cle…...

PAT--1111 对称日

央视新闻发了一条微博&#xff0c;指出 2020 年有个罕见的“对称日”&#xff0c;即 2020 年 2 月 2 日&#xff0c;按照 年年年年月月日日 格式组成的字符串 20200202 是完全对称的。 给定任意一个日期&#xff0c;本题就请你写程序判断一下&#xff0c;这是不是一个对称日&a…...

前端纯函数和副作用概念,且在react上的体现详解

什么是纯函数 纯函数是这样一种函数&#xff0c;即相同的输入&#xff0c;永远会得到相同的输出的函数&#xff0c;而且没有任何可观察的副作用。 什么是副作用 副作用是在计算结果的过程中&#xff0c;系统状态的一种变化&#xff0c;或者与外部世界进行的可观察的交互。 个…...

转行软件测试3年了,听前辈说测试前途是IT里最low的,我慌了......

互联网行业的技术岗位一般分为研发、测试和运维&#xff0c;虽然前些年测试一直都不如研发岗位那么吃香。但现在随着国内对软件测试的重视&#xff0c;我国互联网企业对软件测试的需求在未来还将继续增大。听起来软件测试的就业形势一片大好&#xff0c;那么到底软件测试的发展…...

CNI 网络流量 5.1 Cilium 介绍和原理

文章目录简介安装组件和原理Cilium-agent初始化IPAMCNICilium cli 的使用bpfMap 的操作Cilium-agentEbpf简介 Cilium 是一个用于容器网络领域的开源项目&#xff0c;主要是面向容器而使用&#xff0c;用于提供并透明地保护应用程序工作负载&#xff08;如应用程序容器或进程&a…...

机加行业MES解决方案,助力企业打造数字化透明车间

机械加工行业的主要原材料占整个生产物料成本的95%~99%&#xff0c;以挖掘机为例&#xff0c;原材料有各种规格的钢板、焊丝、焊条、油漆以及各种气体等&#xff0c;其中主要原材料是钢板&#xff0c;占原材料比率的98%以上。 因此机械加工mes的原材料管理是机械加工行业信息化…...

C/C++每日一练(20230227)

目录 1. 按要求排序数组 ★ 2. Z 字形变换 ★★ 3. 下一个排列 ★★ 1. 按要求排序数组 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中&#xff0c;数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同&#xff0c;则必须将它们按照数值大小…...

总结SpringBoot1.x迁移到2.x需要注意的问题

SpringBoot1.x和SpringBoot2.x版本差异化还是比较大的&#xff0c;有些三方依赖组件有些是基于2.0版本为标准升级的&#xff0c;当我们将项目由1.0升级到2.0时会出现依赖的方法不存在或方法错误&#xff0c;需要逐个去调整&#xff0c;下面总结了我们升级实践过程中遇到的一些问…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

C#最佳实践:为何优先使用as或is而非强制转换

C#最佳实践&#xff1a;为何优先使用as或is而非强制转换 在 C# 的编程世界里&#xff0c;类型转换是我们经常会遇到的操作。就像在现实生活中&#xff0c;我们可能需要把不同形状的物品重新整理归类一样&#xff0c;在代码里&#xff0c;我们也常常需要将一个数据类型转换为另…...

设计模式-3 行为型模式

一、观察者模式 1、定义 定义对象之间的一对多的依赖关系&#xff0c;这样当一个对象改变状态时&#xff0c;它的所有依赖项都会自动得到通知和更新。 描述复杂的流程控制 描述多个类或者对象之间怎样互相协作共同完成单个对象都无法单独度完成的任务 它涉及算法与对象间职责…...