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已经完全改变了代码开发模式。然而,大多数软件开发者和数据专家们仍然不使用ChatGPT来完善——并简化他们的工作。 这就是我们在这里列出提升日常工作效率和质量的5个不同的特点的原因。 让我们一起来看看在日常工作中如何使用他们。 警告:不要…...
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操作示例
大家好,聚类或聚类分析是无监督学习问题。它通常被用作数据分析技术,用于发现数据中的有趣模式,例如基于其行为的客户群。有许多聚类算法可供选择,对于所有情况,没有单一的最佳聚类算法。相反,最好探索一系…...
构建合作伙伴生态系统刻不容缓
合作伙伴关系管理(PRM)系统是否已死?向合作伙伴生态系统的转变将如何改变我们未来管理合作伙伴计划的方式? 自PC革命以来,间接销售和渠道营销一直普遍存在于技术领域,通过其他公司的销售团队和人脉来增加销售,是一种明…...
剑指 Offer 55 - I. 二叉树的深度(java解题)
剑指 Offer 55 - I. 二叉树的深度(java解题)1. 题目2. 解题思路3. 数据类型功能函数总结4. java代码1. 题目 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径&a…...
威胁行为者将旧漏洞武器化以发起勒索软件攻击
勒索软件运营商比以往任何时候都更加依赖未打补丁的系统来获得对受害者网络的初始访问权限。 一份新报告显示,攻击者正在互联网和暗网中积极搜索可用于勒索软件攻击的旧漏洞和已知漏洞。 其中许多缺陷已存在多年,对尚未修补或更新易受攻击系统的组织构…...
2023北京健博会/第十届中国国际大健康产博览会
China-DJK北京健博会,立足北京打造国内外大健康产业快速融合发展平台; 大健康时代:20年前没有健康产业,如今健康产业成了全球经济中唯“不缩水”的行业,早已被国际经济学界确定为“无限广阔的兆亿产业”。据机构数据&…...
Python学习笔记之环境搭建
Python学习笔记之环境搭建1. 下载Python2. Windows 安装最新Python3. Linux 安装最新PythonPython是一种编程语言,可以让您更快地工作并更有效地集成系统。 您可以学习使用Python,并立即看到生产力的提高和维护成本的降低。 Python是荷兰程序员吉多范罗苏…...
死锁的总结
哲学家死锁造成的原因:我有你需要的,但你已经有了 饥饿与死锁的区别 死锁一旦发生一定又饥饿现象,但是饥饿现象产生不一定是死锁 历史上对于死锁的声音 死锁的方案 前面两个都是不允许死锁出现 前面都是概念性的东西 后面我们研究如何破坏…...
强化学习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. 基本四则运算符:加减乘除模( - * / %) 2、增量运算符 - * % 3. 自增/自减运算符 -- 三、关系运算符 四、 逻辑运算符(重点) 1. 逻辑与 && 2. 逻辑或 || 3. 逻辑非 ! 4. 短路求值…...
扫地机器人(蓝桥杯C/C++)
题目描述 小明公司的办公区有一条长长的走廊,由 NN 个方格区域组成,如下图所示。 走廊内部署了 KK 台扫地机器人,其中第 ii 台在第 A_iAi 个方格区域中。已知扫地机器人每分钟可以移动到左右相邻的方格中,并将该区域清扫干净。…...
如何理解API?API 是如何工作的?(5分钟诠释)
大家可能最近经常听到 API 这个概念,那什么是API,它又有什么特点和好处呢? 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 对称日
央视新闻发了一条微博,指出 2020 年有个罕见的“对称日”,即 2020 年 2 月 2 日,按照 年年年年月月日日 格式组成的字符串 20200202 是完全对称的。 给定任意一个日期,本题就请你写程序判断一下,这是不是一个对称日&a…...
前端纯函数和副作用概念,且在react上的体现详解
什么是纯函数 纯函数是这样一种函数,即相同的输入,永远会得到相同的输出的函数,而且没有任何可观察的副作用。 什么是副作用 副作用是在计算结果的过程中,系统状态的一种变化,或者与外部世界进行的可观察的交互。 个…...
转行软件测试3年了,听前辈说测试前途是IT里最low的,我慌了......
互联网行业的技术岗位一般分为研发、测试和运维,虽然前些年测试一直都不如研发岗位那么吃香。但现在随着国内对软件测试的重视,我国互联网企业对软件测试的需求在未来还将继续增大。听起来软件测试的就业形势一片大好,那么到底软件测试的发展…...
CNI 网络流量 5.1 Cilium 介绍和原理
文章目录简介安装组件和原理Cilium-agent初始化IPAMCNICilium cli 的使用bpfMap 的操作Cilium-agentEbpf简介 Cilium 是一个用于容器网络领域的开源项目,主要是面向容器而使用,用于提供并透明地保护应用程序工作负载(如应用程序容器或进程&a…...
机加行业MES解决方案,助力企业打造数字化透明车间
机械加工行业的主要原材料占整个生产物料成本的95%~99%,以挖掘机为例,原材料有各种规格的钢板、焊丝、焊条、油漆以及各种气体等,其中主要原材料是钢板,占原材料比率的98%以上。 因此机械加工mes的原材料管理是机械加工行业信息化…...
C/C++每日一练(20230227)
目录 1. 按要求排序数组 ★ 2. Z 字形变换 ★★ 3. 下一个排列 ★★ 1. 按要求排序数组 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中,数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小…...
总结SpringBoot1.x迁移到2.x需要注意的问题
SpringBoot1.x和SpringBoot2.x版本差异化还是比较大的,有些三方依赖组件有些是基于2.0版本为标准升级的,当我们将项目由1.0升级到2.0时会出现依赖的方法不存在或方法错误,需要逐个去调整,下面总结了我们升级实践过程中遇到的一些问…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
Linux基础开发工具——vim工具
文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...
Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...
