利用ChatGPT提高代码质量的5种方法

本文首发于公众号:更AI (power_ai),欢迎关注,编程、AI干货及时送!

5个可以提升你日常工作效率的ChatGPT特性

如何利用它提高代码质量

**ChatGPT已经彻底改变了开发代码的方式。**然而,大多数软件开发人员和数据专业人员仍然没有使用ChatGPT来提高和简化他们的工作。

这就是为什么我在这里列出了5种不同的特性,可以在你的日常工作中提高效率和质量。

你可以在你的日常工作中使用它们。让我们一起发现如何做到这一点 👇🏻

⚠️ 警告:你永远不应该在ChatGPT中使用关键代码或信息。

#1. 生成你的代码骨架

ChatGPT是我在从头开始构建新项目时的秘密武器。只需要几个提示,它就可以生成我需要的代码骨架,包括我选择的技术、框架和版本。它不仅每次至少为我节省一个小时左右的工作时间,而且还有助于保持我的文档 —— 或团队的文档 —— 的组织和更新。就像团队中有一双额外的手!

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

生成整合外部API的初始代码框架,使用Python语言。

ChatGPT立刻就给出答复:

ChatGPT聊天截图。ChatGPT为我提供了一个代码骨架。

ChatGPT聊天截图。ChatGPT为我提供了一个代码骨架。

或者我甚至可以要求一个使用Selenium抓取LinkedIn的骨架,ChatGPT给我以下输出。

from selenium import webdriver  
from selenium.webdriver.common.keys import Keys  
import time  
  
# 初始化web驱动程序  
driver = webdriver.Firefox()  
  
# 导航到LinkedIn  
driver.get(\"https://www.linkedin.com/\")  
  
# 查找电子邮件和密码输入字段  
email = driver.find_element_by_id(\"username\")  
password = driver.find_element_by_id(\"password\")  
  
# 输入你的凭证  
email.send_keys(\"YOUR_EMAIL\")  
password.send_keys(\"YOUR_PASSWORD\")  
  
# 点击登录按钮  
driver.find_element_by_xpath(\"//button[@type='submit']\").click()  
  
# 等待页面加载  
time.sleep(5)  
  
# 导航到所需用户的个人资料  
driver.get(\"https://www.linkedin.com/in/USER_PROFILE_NAME\")  
  
# 从页面中提取你想要的信息  
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']\").text  
  
print(name)  
print(location)  
  
# 关闭浏览器  
driver.quit()

很简单,对吧?试着用任何你能想象的项目来挑战ChatGPT。

#2. 研究和比较

关于如何实现某项任务的决策可能非常困难,特别是当有多个选项可供选择时。我的常规方法是为每个方法创建一个基础的概念验证,然后进行比较。但是,在ChatGPT的帮助下,这个过程变得容易了很多。

我现在可以直接询问它对我代码开发最好的选择或库的专业意见。这为我节省了决策过程中的时间和精力,确保我使用的是最佳工具。

让我们想象一下,我想要处理地理空间数据,但我不确定我应该使用Geopandas(地理熊猫)还是Plotly(绘图库)。我可以要求ChatGPT为我比较 - 包括类型 😉 - 它会立刻告诉我这两个库的主要区别。

ChatGPT聊天截图。ChatGPT向我解释geopandas和plotly之间的区别。

ChatGPT聊天截图。ChatGPT向我解释geopandas和plotly之间的区别。

如果我现在想抓取一个网站,我可以询问最好的库是什么。ChatGPT会回答Python中最流行的网络抓取库是什么。

ChatGPT聊天截图。ChatGPT解释最流行的网站抓取库。

你甚至可以询问抓取你想要的网站的最佳选项 - 尽管ChatGPT最有可能会警告你这将违反该网站的内容政策 - 所以请小心。

抓取社交网络的最佳选择是什么?

ChatGPT聊天截图。ChatGPT解释抓取社交网络的最佳选择。

ChatGPT聊天截图。ChatGPT解释抓取社交网络的最佳选择。

#3. 理解代码

我们都有过这样的经历,努力去理解一个并非由我们创建的代码库。在一个复杂且组织结构混乱的代码(也被称为_spaghetti code_)中导航可能是一个令人沮丧且耗时的任务。

但是,有了ChatGPT,理解一个新的代码库就变得更加简单了。我现在只需要简单地向它询问代码的功能就能在很短的时间内理解它。再也不需要浪费宝贵的时间和精力试图解读那些写得不好的代码了。

让我们想象一下,我正在试图爬取LinkedIn,我在互联网上找到了一个随机的代码,这个代码应该可以滚动LinkedIn的工作机会网站。

下面这段代码是做什么的?[在此插入代码]

#我们找出有多少工作机会提供。  
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)  
  
#在这里我手动选择一些工作,所以不会花费太长时间:  
jobs_num = 1000;  
  
  
#我们创建一个while循环来浏览所有工作。   
i = 2  
while i <= int(jobs_num/2)+1:  
    #我们一直向下滚动到视图的底部。  
    driver.execute_script(\"window.scrollTo(0, document.body.scrollHeight);\")  
    i = i + 1  
    print(\"当前在: \", i, \"完成度: \", ((i+1)/(int(jobs_num/2)+1))*100, \"%\",end=\"\\r\")  
    try:  
        #我们试图点击“加载更多结果”按钮,以防它已经显示出来。  
        infinite_scroller_button = driver.find_element(By.XPATH, \".//button[@aria-label='Load more results']\")  
        infinite_scroller_button.click()  
        time.sleep(0.1)  
    except:  
        #如果没有按钮,将会有一个错误,所以我们继续向下滚动。  
        time.sleep(0.1)  
        pass

ChatGPT立即给出了对上述代码的非常详细的解释。你甚至可以询问代码的某一部分有关更多的细节——只要与ChatGPT玩一玩,你就会发现它可以创造出所有的奇迹。

ChatGPT聊天截图。ChatGPT解释我之前不理解的代码。

ChatGPT聊天截图。ChatGPT解释我之前不理解的代码。

#4. 为我们的代码添加注释

ChatGPT也可以帮助我们提高我们自己的代码的质量和可维护性。通过要求它逐行添加注释,我们可以确保我们的代码在发布之前得到适当的文档化。这消除了需要无注释代码的需要,并使其他人更容易理解和使用我们的代码。

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

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

为下列代码添加注释 [在此插入代码]

# 在网站上找到提供的工作数量  
jobs_num = driver.find_element(By.CSS_SELECTOR,\"h1>span\").get_attribute(\"innerText\")  
  
# 检查工作数量是否包含',',如果是,将其转换为数字 * 1000  
if len(jobs_num.split(',')) > 1:  
    jobs_num = int(jobs_num.split(',')[0])*1000  
else:  
    jobs_num = int(jobs_num)  
  
# 将jobs_num转换为整数  
jobs_num = int(jobs_num)  
  
# 设置要爬取的工作数量为1000  
jobs_num = 1000;  
  
# 初始化一个计数变量来滚动工作  
i = 2  
  
# 开始一个while循环来滚动工作  
while i <= int(jobs_num/2)+1:  
    # 滚动到页面底部  
    driver.execute_script(\"window.scrollTo(0, document.body.scrollHeight);\")  
    # 增加计数变量  
    i = i + 1  
    # 打印当前滚动过的工作数量和完成的百分比  
    print(\"当前在: \", i, \"完成度: \", ((i+1)/(int(jobs_num/2)+1))*100, \"%\",end=\"\\r\")  
    try:  
        # 尝试定位“加载更多结果”按钮并点击  
        infinite_scroller_button = driver.find_element(By.XPATH, \".//button[@aria-label='Load more results']\")  
        infinite_scroller_button.click()  
        # 休眠0.1秒  
        time.sleep(0.1)  
    except:  
        # 如果按钮不存在,休眠0.1秒并继续滚动  
        time.sleep(0.1)  
        pass

令人印象深刻,对吧?没有注释的代码再也不存在了! 😄

#5. 用某种风格重写我们的代码

ChatGPT不仅是理解不熟悉代码的有价值工具,而且它也能帮助我们确保我们自己的代码遵循行业标准和约定。 通过要求它根据Pep-8规范(PEP-8)来纠正我们的代码,或者甚至为我们的编码风格创建自定义规范,我们可以避免在合并来自不同仓库或团队的代码时需要花费和耗时的重构。

这有助于简化协作过程,使其更加高效。 总的来说,ChatGPT是一种多功能工具,可以提高我们代码库的质量和可维护性。

如果我们要求ChatGPT使用Pep-8标准编写之前的代码,它将直接给我们重构后的代码。

你能用Pep8标准重写以下代码吗[在此处插入代码]

ChatGPT聊天截图。ChatGPT按照Pep8标准给出我们的代码。

ChatGPT聊天截图。ChatGPT按照Pep8标准给出我们的代码。

主要结论

我希望在阅读这篇文章后,你能意识到ChatGPT可以帮助我们提高生产力,甚至创造出更高质量的输出。 我知道,很容易陷入这样一种思维陷阱,认为AI可能最终会取代我们的工作,但是正确的AI可以成为我们的强大资产。

然而,在使用AI时,仍然需要批判性思考 ,就像和人类同事一起工作一样。

所以,在你急于实施AI生成的回应之前,一定要花时间来回顾和评估它们。相信我,最后这是值得的!

如果ChatGPT用其他好特性给你带来了惊喜,请留言一起来讨论!😄

你好,我是拾叁,7年开发老司机、互联网两年外企5年。怼得过阿三老美,也被PR comments搞崩溃过。这些年我打过工,创过业,接过私活,也混过upwork。赚过钱也亏过钱。一路过来,给我最深的感受就是不管学什么,一定要不断学习。只要你能坚持下来,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你还没什么方向,可以先关注我[公众号:更AI (power_ai)],这里会经常分享一些前沿资讯和编程知识,帮你积累弯道超车的资本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值