И как с его помощью улучшить качество кода
Это вольный перевод статьи, оригинал которой находится здесь.
ChatGPT полностью изменил способ написания кода. Тем не менее большинство разработчиков программного обеспечения и специалистов по данным по-прежнему не используют ChatGPT для улучшения и облегчения своей работы.
Вот почему я решил описать здесь 5 различных функций для повышения скорости и качества вашей повседневной работы.
Вы можете использовать их ежедневно. Давайте узнаем вместе, как именно 👇🏻
⚠️ Предупреждение: вам не рекомендуется использовать критически важный код или критически важную информацию с ChatGPT.
№1. Генерация кодового скелета
ChatGPT — мое секретное оружие, когда дело доходит до создания новых проектов с нуля. С помощью всего нескольких запросов он может сгенерировать скелет кода, который мне нужен, вместе с выбранными мной технологиями, фреймворками и версиями. Это не только экономит мне каждый раз по крайней мере час или около того работы, но также помогает держать мою документацию — или документацию команды — организованной и актуальной. Это как дополнительная пара рук в команде!
Например, представьте, что я хочу использовать какой-то внешний API. Я могу попросить ChatGPT составить для меня первоначальную структуру кода.
Generate boiler plate code that integrates an extern API using Python.
И ChatGPT тут же отвечает:
Или я могу даже попросить скелет для парсинга LinkedIn с использованием Selenium
, и ChatGPT выдаст мне следующий результат.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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']").text print(name) print(location) # close the browser driver.quit() |
Просто, не так ли?
№ 2. Исследуй и сравнивай
Иногда бывает трудно принять решение о том, как реализовать что-либо, особенно когда есть несколько способов на выбор. Мой основной метод — создание базовых концепций для каждого подхода, а затем сравнить их. Но благодаря ChatGPT этот процесс стал намного проще.
Теперь я могу напрямую спросить у него экспертное мнение о том, какой вариант или библиотека лучше всего подходят конкретно в моем случае. Это экономит мое время и усилия в процессе принятия решений и гарантирует, что я использую лучшие инструменты для работы.
Давайте представим, что я хочу работать с геопространственными данными, но я не уверен, следует ли мне использовать Geopandasor
или Plotly
. Я могу попросить ChatGPT сравнить их для меня, и он напишет основные различия между обеими библиотеками.
Если сейчас я хочу спарсить веб-сайт, я могу спросить, какая библиотека лучше всего подходит для этого. ChatGPT напишет самые популярные библиотеки для веб-парсинга на Python.
Вы даже можете спросить, какой вариант лучше всего подходит для парсинга веб-сайта, но ChatGPT, скорее всего, предупредит вас, что это будет противоречить политике в отношении контента этого веб-сайта, поэтому будьте осторожны.
What’s the best option to scrape a social network?
№3. Понимание кода
Мы все были в ситуации, когда изо всех сил пытались понять кодовую базу, которая была написана не нами. Навигация по сложному и плохо организованному коду, также известному как спагетти-код, может быть трудоемкой и утомительной задачей.
Но с ChatGPT понимание новой кодовой базы стало намного проще. Теперь я могу просто попросить его объяснить функциональность кода и понять его в кратчайшие сроки. Больше не нужно тратить драгоценное время и усилия на расшифровку плохо написанного кода.
Давайте представим, что я хочу спарсить Linkedin и нашел в Интернете случайный код, который парсит страницу с предложениями о работе Linkedin и поддерживает прокрутку сайта.
What does the following code do? [insert code here]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#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 + 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 тут же отвечает очень подробным объяснением кода выше. Вы даже можете запросить дополнительную информацию по конкретной части кода — просто немного поиграйте с ChatGPT, и вы обнаружите все чудеса, которые он может творить.
№ 4. Добавление комментариев к нашему коду
ChatGPT также может помочь нам улучшить качество и поддерживаемость нашего собственного кода. Попросив его добавлять комментарии построчно, мы можем убедиться, что наш код правильно задокументирован перед отправкой. Это устраняет необходимость в некомментированном коде и упрощает другим понимание и работу с нашим кодом.
ChatGPT может значительно улучшить читаемость, поддерживаемость и совместную работу надо кодом.
Давайте представим, что в предыдущем коде вообще не было комментариев. Мы можем просто попросить ChaGPT добавить комментарии прямо к нему.
Add comments to the following code [insert code here]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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 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. Переписываем наш код, используя определенный стиль
ChatGPT — это не только ценный инструмент для понимания незнакомого кода, он также может помочь нам убедиться, что наш собственный код соответствует отраслевым стандартам и соглашениям. Попросив его исправить наш код, чтобы он соответствовал соглашению Pep-8, или даже создать собственное соглашение для нашего стиля кодирования, мы можем избежать необходимости дорогостоящего и трудоемкого рефакторинга при объединении кода из разных репозиториев или команд.
Это помогает упростить процесс совместной работы и сделать его более эффективным. В целом, ChatGPT — это универсальный инструмент, который может улучшить качество и удобство сопровождения нашей кодовой базы.
Если мы попросим ChatGPT написать предыдущий код с использованием стандарта Pep-8, он напрямую предоставит нам рефакторинговый код.
Can you rewrite the following code using Pep8 standard [Insert code here]
Основные выводы
Я надеюсь, что после прочтения этой статьи вы согласитесь, что ChatGPT может помочь нам быть более продуктивными и создавать еще более качественный контент. Я знаю, что легко попасть в ловушку мысли, что искусственный интеллект в конечном итоге займет наши рабочие места, но правильная реализация искусственного интеллекта может быть мощным инструментом, который можно использовать в нашу пользу.
Однако важно помнить, что критическое мышление по-прежнему является ключевым при работе с искусственным интеллектом, впрочем как и при работе с нашими человеческими коллегами.
Так что прежде чем использовать созданные искусственным интеллектом ответы, потратьте время на их оценку и проверку.
Надеюсь, что эта статья была интересной и полезной, спасибо, что посетили ее на этом сайте.