ChatGPT кардинально меняет процесс разработки ПО. Тем не менее пока далеко не все программисты и специалисты по обработке данных пользуются возможностями этого бота.
Поэтому разберем 5 функций, позволяющих повысить скорость и качество повседневной деятельности.
Примечание: никогда не доверяйте ChatGPT особо важный код и информацию.
1. Создание структуры кода
ChatGPT — мое секретное оружие, когда нужно создавать новые проекты с нуля. С помощью нескольких подсказок ИИ способен сгенерировать необходимую структуру кода, используя заданные технологии, фреймворки и версии ПО. При этом удается не только сэкономить как минимум час работы, но также систематизировать и поддерживать в актуальном состоянии документацию. Это как дополнительные руки в команде!
Представим, что нужно использовать внешний API. Можно попросить ChatGPT составить начальную структуру кода.
Generate boiler plate code that integrates an extern API using Python (создай шаблон кода, который интегрирует внешний API на основе Python).
ChatGPT быстро выдает:
А если запросить код для скрейпинга LinkedIn с помощью Selenium, ChatGPT предлагает такую структуру.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# Инициализация веб-драйвера
driver = webdriver.Firefox()
# Переход на LinkedIn
driver.get("https://www.linkedin.com/")
# Поиск полей ввода email и пароля
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()
Все очень просто.
2. Анализ и сравнение
Порой сложно принять решение и сделать выбор, особенно из нескольких вариантов. Мой метод заключается в создании для каждого подхода базового доказательства концепции и последующего их сравнения. ChatGPT намного упрощает этот процесс.
Можно просто спросить у бота, какой, по его мнению, вариант или библиотека подойдет для проекта. Это облегчает процесс принятия решений, экономит время и гарантирует выбор оптимального рабочего инструмента.
Например, для работы с геопространственными данными нужно выбрать Geopandas или Plotly. Если попросить ChatGPT сравнить эти библиотеки, он оперативно представит основные различия между ними.
Спрашиваем чат-бота, какая библиотека лучше подойдет для веб-скрейпинга. ChatGPT предложит наиболее популярные библиотеки на Python.
Можно также уточнить, какой вариант лучше подойдет для выбранного сайта, но имейте ввиду, что ChatGPT может предупредить о нарушении его контентной политики.
What’s the best option to scrape a social network? (Какой вариант лучше подойдет для веб-скрейпинга социальной сети?).
3. Распознавание кода
Наверное, всем приходилось разбираться в чужом коде. Навигация по сложному и плохо структурированному коду может оказаться утомительной и трудоемкой задачей.
Но с ChatGPT все становится намного проще. Теперь можно просто запросить объяснение функциональности кода и очень быстро в нем разобраться. Не нужно больше тратить драгоценное время и усилия на распознавание плохо написанного кода.
Предположим, что для сбора данных из Linkedin вы находите в интернете подходящий код.
What does the following code do? (Что делает следующий код?) [здесь вставляем код].
#Находим количество предлагаемых вакансий.
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("Current at: ", i, "Percentage at: ", ((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, чтобы узнать все его возможности.
4. Добавление комментариев к коду
ChatGPT способен также улучшить качество и поддерживаемость кода. Попросив ИИ добавить построчные комментарии, можно оформить готовый код по всем правилам. Комментарии к коду упрощают чтение и работу с ним для других разработчиков.
Теперь представим, что в предыдущем коде совсем не было комментариев. ChatGPT может с легкостью их добавить.
Add comments to the following code (добавь комментарии к следующему коду) [здесь вставляем код].
# Находим количество предлагаемых вакансий.
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("Current at: ", i, "Percentage at: ", ((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 — полезный инструмент, помогающий не только понимать незнакомый код, но и обеспечивать его соответствие отраслевым стандартам и соглашениям. ChatGPT исправляет код в соответствии с требованиями PEP 8 и даже создает пользовательское соглашение для вашего стиля. Тогда при слиянии кода из разных репозитариев или команд не придется выполнять рефакторинг, требующий дополнительных усилий и время.
При этом совместная работа в команде упрощается и становится более эффективной. В целом, ChatGPT — это универсальный инструмент для повышения качества и удобства обслуживания кодовой базы.
Если попросить ChatGPT переписать предыдущий код по стандарту PEP 8, он вскоре выдаст рефакторизованный вариант.
Can you rewrite the following code using Pep8 standard (перепиши следующий код в соответствии со стандартом PEP 8) [здесь вставляем код].
Основные выводы
ChatGPT способен повысить эффективность разработчика и качество его кода. Конечно, не стоит думать, что ИИ сможет выполнить за вас всю работу, но хорошим помощником он вполне может стать.
Необходимо лишь критически воспринимать результаты взаимодействия с ИИ — впрочем, так же, как и при работе с коллегами-людьми.
Поэтому, не стоит спешить с реализацией ответов, сгенерированных ИИ. Сначала уделите время их анализу и оценке. Это необходимо для достижения результата!
Читайте также:
- Программируем с ChatGPT: 10 советов
- Как учиться программировать с помощью ChatGPT
- Sparrow: альтернатива ChatGPT от DeepMind
Читайте нас в Telegram, VK и Дзен
Перевод статьи Josep Ferrer: 5 ChatGPT features to boost your daily work