獨(dú)家 | ChatGPT提高你日常工作的五個(gè)特點(diǎn)以及如何使用它來提高代碼質(zhì)量
ChatGPT已經(jīng)完全改變了代碼開發(fā)模式。然而,大多數(shù)軟件開發(fā)者和數(shù)據(jù)專家們?nèi)匀徊皇褂肅hatGPT來完善——并簡化他們的工作。
這就是我們在這里列出提升日常工作效率和質(zhì)量的5個(gè)不同的特點(diǎn)的原因。
讓我們一起來看看在日常工作中如何使用他們。
警告:不要用ChatGPT處理關(guān)鍵代碼或信息。
1. 生成代碼架構(gòu)
當(dāng)需要從零開始建立新工程的時(shí)候,ChatGPT就是我的秘密武器。只需要幾個(gè)提示,它就能用我選中的技術(shù)、框架和版本生成我需要的代碼架構(gòu)。它不僅每次為我節(jié)省了至少一個(gè)小時(shí)左右的工作時(shí)間,但是它也幫助你保持文檔——或者團(tuán)隊(duì)的文檔、組織性和更新性,就像團(tuán)隊(duì)里多了一只手!
例如,假設(shè)我想使用一些外部API。我可以讓ChatGPT為我起草一個(gè)初始代碼結(jié)構(gòu)。
使用Python生成集成外部API的樣板代碼
ChatGPT立即響應(yīng):
截圖ChatGPT聊天。ChatGPT給了我一個(gè)代碼框架
或者,我甚至可以使用Selenium請求一個(gè)架構(gòu)來抓取LinkedIn, ChatGPT會給我以下輸出。
from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport time
# Initialize the web driverdriver = webdriver.Firefox()
# Navigate to LinkedIndriver.get("https://www.linkedin.com/")
# Find the email and password input fieldsemail = driver.find_element_by_id("username")password = driver.find_element_by_id("password")
# Enter your credentialsemail.send_keys("YOUR_EMAIL")password.send_keys("YOUR_PASSWORD")
# Click the login buttondriver.find_element_by_xpath("//button[@type='submit']").click()
# Wait for the page to loadtime.sleep(5)
# Navigate to the profile of the desired userdriver.get("https://www.linkedin.com/in/USER_PROFILE_NAME")
# Extract the information you want from the pagename = driver.find_element_by_xpath("//span[@class='inline t-24 t-black t-normal break-words']").textlocation = driver.find_element_by_xpath("//span[@class='t-16 t-black t-normal inline-block']").text
print(name)print(location)
# close the browserdriver.quit()
容易,對吧?嘗試用任何你能想到的項(xiàng)目挑戰(zhàn)ChatGPT。
2. 研究和比較
決定如何實(shí)現(xiàn)某些東西是很困難的,特別是當(dāng)有多個(gè)選項(xiàng)可供選擇時(shí)。我的常用方法是為每種方法創(chuàng)建基本的概念證明,然后進(jìn)行比較。但是,在ChatGPT的幫助下,這個(gè)過程變得簡單多了。
我現(xiàn)在可以直接詢問它的專家意見,哪個(gè)選項(xiàng)或庫最適合我的代碼開發(fā)。這為我在決策過程中節(jié)省了時(shí)間和精力,并確保我使用了最好的工具。
假設(shè)我想要處理地理空間數(shù)據(jù),但我不確定是否應(yīng)該使用Geopandas或Plotly。我可以讓ChatGPT為我進(jìn)行比較——給定一種類型——它會立即回答兩個(gè)庫之間的主要差異。
截圖ChatGPT聊天。ChatGPT向我解釋了地質(zhì)故事和情節(jié)之間的區(qū)別
如果現(xiàn)在我想要抓取一個(gè)網(wǎng)站,我可以問哪個(gè)庫來做這個(gè)最好。ChatGPT與Python中最流行的網(wǎng)絡(luò)檢索庫相匹配。
截圖ChatGPT聊天。ChatGPT介紹了最流行的抓取網(wǎng)站
你甚至可以詢問你想要抓取的網(wǎng)站的最佳選擇是什么?即使ChatGPT很可能會警告你,這將違反該網(wǎng)站的內(nèi)容政策,所以要小心。
從社交網(wǎng)絡(luò)中獲取利益的最佳選擇是什么?
截圖ChatGPT聊天。ChatGPT解釋了抓取社交網(wǎng)絡(luò)的最佳選擇
3. 理解代碼
我們都有過這樣的經(jīng)歷,努力理解一個(gè)不是由我們自己創(chuàng)建的代碼庫。瀏覽一段復(fù)雜且無組織的代碼——也稱為套管程序,可能是一項(xiàng)令人沮喪且耗時(shí)的任務(wù)。
但是,有了ChatGPT,理解一個(gè)新的代碼庫就變得容易多了。我現(xiàn)在可以簡單地要求它解釋代碼的功能,并立即理解它,不用再浪費(fèi)寶貴的時(shí)間和精力去破譯寫得很差的代碼。
下面的代碼做什么?
#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])*1000else: 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 = 2while 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 + 1 print("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立即給出了上述代碼的詳細(xì)解釋,您甚至可以在給定的代碼部分中詢問更多的細(xì)節(jié)——只需稍微使用ChatGPT,您就會發(fā)現(xiàn)它創(chuàng)造的所有驚喜。
截圖ChatGPT聊天。ChatGPT解釋了我不理解的代碼
4. 向代碼中添加注釋
ChatGPT還可以幫助我們提高代碼的質(zhì)量和可維護(hù)性。通過要求它一行一行地添加注釋,我們可以確保我們的代碼在發(fā)布之前被正確地記錄。這消除了對無注釋代碼的需要,并使其他人更容易理解和使用我們的代碼。
ChatGPT可以顯著提高可讀性、可維護(hù)性和與他人的協(xié)作。
讓我們假設(shè)前面的代碼根本沒有注釋。我們可以讓ChaGPT直接向它添加注釋。
向以下代碼添加注釋:
# Find the number of jobs offered on the websitejobs_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 * 1000if len(jobs_num.split(',')) > 1: jobs_num = int(jobs_num.split(',')[0])*1000else: jobs_num = int(jobs_num)
# Convert jobs_num to an integerjobs_num = int(jobs_num)
# Set the number of jobs to scrape to 1000jobs_num = 1000;
# Initialize a counter variable to scroll through the jobsi = 2
# Start a while loop to scroll through the jobswhile i <= int(jobs_num/2)+1: # Scroll to the bottom of the page driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # Increment the counter variable i = i + 1 # Print the current number of jobs scrolled through and the percentage of completion print("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 it infinite_scroller_button = driver.find_element(By.XPATH, ".//button[@aria-label='Load more results']") infinite_scroller_button.click() # Sleep for 0.1 seconds time.sleep(0.1) except: # If the button is not present, sleep for 0.1 seconds and continue scrolling time.sleep(0.1) pass
令人印象深刻,對吧?沒有注釋的代碼!
5. 使用某種風(fēng)格重寫代碼
ChatGPT不僅是理解不熟悉的代碼的有價(jià)值的工具,而且還可以幫助我們確保自己的代碼遵循行業(yè)標(biāo)準(zhǔn)和慣例。通過要求它糾正我們的代碼以符合Pep-8約定——或者甚至為我們的編碼風(fēng)格創(chuàng)建一個(gè)自定義規(guī)范,我們可以避免在合并來自不同repo或團(tuán)隊(duì)的代碼時(shí)進(jìn)行昂貴且耗時(shí)的重構(gòu)。
這有助于簡化協(xié)作過程并提高效率??偟膩碚f,ChatGPT是一個(gè)通用的工具,可以提高我們代碼庫的質(zhì)量和可維護(hù)性。
當(dāng)我們要求ChatGPT使用Pep-8標(biāo)準(zhǔn)編寫之前的代碼時(shí),它會直接給我們重構(gòu)代碼。
你能用Pep8標(biāo)準(zhǔn)重寫以下代碼嗎?
截圖ChatGPT聊天。ChatGPT給我們的代碼遵循Pep-8標(biāo)準(zhǔn)
主要結(jié)論
我希望在閱讀這篇文章之后,您能夠意識到ChatGPT可以幫助我們提高工作效率,并創(chuàng)建更高質(zhì)量的輸出。我知道人們很容易陷入思維陷阱,認(rèn)為人工智能最終可能會取代我們的工作,但正確的人工智能可以成為一種強(qiáng)大的資產(chǎn),可以為我們所用。
然而,重要的是要記住,批判性思維在與人工智能合作時(shí)仍然是關(guān)鍵,就像與人類同事合作時(shí)一樣。
因此,在你急于實(shí)現(xiàn)人工智能生成響應(yīng)之前,請確保先花時(shí)間審查和評估它們。相信我,到最后都是值得的!
如果ChatGPT有其他讓你驚喜的好特性,請告訴我。我會在評論里讀到你!
數(shù)據(jù)總是有更好的想法——相信它。
原文標(biāo)題:5 ChatGPT features to boost your daily work原文鏈接:https://medium.com/geekculture/5-chatgpt-features-to-boost-your-daily-work-404478fd70ca
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。