10 прикладів, як ChatGPT полегшує розробникам роботу

ChatGPT змінив розробку програмного забезпечення, однак 68,1% розробників усе ще не використовують його, — йдеться в твіттер-треді Sergio Pereira, Startup Founder та CTO.

Публікуємо переклад.

Як технічний директор, я раджу своїм командам використовувати ChatGPT у щоденній роботі, щоб підвищити швидкість і якість роботи.

У своєму опитуванні минулого тижня я був здивований, дізнавшись, що більшість розробників програмного забезпечення не використовують ні GPT-3, ні Github Copilot, ні будь-які інші інструменти ШІ.

Здається, вони або не бачать цінності, або не знають, з чого почати.

Нижче я описую 10 випадків використання, у яких ChatGPT полегшить та/або покращить вашу роботу як інженера програмного забезпечення.

1. Створити шаблонний код (boiler plate code)

Щоб створити новий проєкт з нуля, я прошу ChatGPT створити скелет програми, яка мені потрібна, використовуючи технології, фреймворки та версії, які я вибираю.

Я навіть можу зробити це частиною документації моєї команди. Це економить принаймні годину або близько того кожного разу

2. Дослідити і порівняти

Є різні способи реалізувати щось. Тож мій звичайний підхід полягає в тому, щоб побудувати приблизний PoC з двох конкуруючих підходів і порівняти їх.

ChatGPT може зробити це за мене:

  • React або Vue
  • Алгоритм А або Б
  • тощо

Це легко економить півдня роботи.

3. Пояснити код

Як часто наша робота полягає в тому, щоб просто зрозуміти код, створений не нами? Спагетті-код, без коментарів. Ми «вмираємо» рядок за рядком.

Тепер ми можемо попросити ChatGPT пояснити, що робить код, і ми заощадимо купу часу.

4. Коментувати код

Ми можемо розширити пункт 3 вище, додаючи коментарі до коду, що писали не ми.

Але ми також можемо написати свій власний код, попросивши ChatGPT додати коментарі.

Більше немає коду без коментарів у PR.

5. Написати тест-кейси

Попросіть ChatGPT створити тест-кейси для списку сценаріїв. Навіть повідомте, яку структуру, версію тощо ви хочете використовувати. Бум, він зробить це за вас.

Більше ніяких неперевірених PR.

6. Написати документацію

Ви можете попросити ChatGPT написати документацію про такі речі:

  • Як розкрутити певну кодову базу.
  • Пакети, необхідні для його роботи.
  • Що робить код.
  • Які існують обмеження.
  • І т. д.

Це може бути не ідеальним, але діє правило 80/20.

7. Створити регулярні вирази

Регулярні вирази є одним із тих специфічних синтаксисів, які ми не використовуємо час від часу. Нам потрібно шукати в Google синтаксис і витрачати багато часу щоразу, коли він нам потрібен.

Більше ні, ми можемо просто попросити ChatGPT створити його.

8. Переписати код, використовуючи правильний стиль

Я записав деякі домовленості щодо того, як писати код, і додав їх до підказки разом із спагетті-кодом.

Дуже корисно під час злиття коду з різних сховищ/команд, який потрібно було б відредагувати перед злиттям.

9. Знайти помилки у своєму коді

Коли ви знаєте, чого хочете, але код не робить те, що ви хочете — замість того, щоб додавати всюди console.logs, ви можете попросити ChatGPT виявити помилку замість вас.

Це найкраще працює на помилках функціонального рівня, а не на рівні репо. Тим не менш, значне покращення.

10. Алгоритми типу Leetcode

Якщо вам потрібна конкретна ізольована функція, запустіть її з оптимальною складністю. ChatGPT може дати вам дуже швидкий старт.

Очевидним випадком використання для цього є співбесіда з кодингу. Але іноді це також корисно в повсякденній роботі.

Перегляньте ці приклади.

Отже

Ви НЕ повинні боятися, що AI забере вашу роботу.

Натомість вам слід радіти, що ви можете використовувати його для підвищення продуктивності та/або створення вищої якості.

Я особисто застосовую правило 80/20.

Я використовую ChatGPT для 80% завдань, які створюють 20% вартості. Це, як правило, виснажливі завдання, які потребують багато часу, і їх потрібно виконувати незважаючи на це.

Таким чином я зможу більше зосередитися на роботі з великим левереджем, що створює більшу частину вартості.

P. S.

Завантаживши свій код у ChatGPT (або подібні інструменти), ви можете зіткнутися з проблемами IP, авторських прав і конфіденційності.

НЕ надсилайте жодних паролів, ключів API чи подібної конфіденційної інформації. Допускайте, що те, що ви надсилаєте, стає загальнодоступним.

👍ПодобаєтьсяСподобалось21
До обраногоВ обраному7
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Просто геніальні тести нагенерувало. В global.fetch записало мокнутий fetch, потім викликало global fetch і перевірило що мокнутий fetch був викланий.

Бройлер плейт також супер! Інтеграція з апі якого не існує і тому код просто не буде працювати. І як вам «це економить принаймні годину»?

3. Пояснити код

Может лучше прогнать код через автоформат, будет понятее, чем читать три простыни текста?

Я вообще не понимаю этого хайпа с

ChatGPT

особенно, когда идет речь про программирование.
1. Если сложно создать болванку проекта.
2. Проблема с форматированием
3. Переписать код в нужном стиле
4. Обьяснить код
и тд тп.
Если такие задачи вызывают у человека вопросы и сложности.
Может тогда вообще забросить IT?

А пан в блокноті пише? Без ІДЕ і всіх її примочок у вигляді автоформатування, автокомплітів, валідації і пісказок? ChatGPT по суті це intellisense тільки на максималках (коли його в IDE нормально вмонтують).

Ну так в тому і питання.
Навіщо робити запит в ChatGPT, якщо це все може зробити IDE

Що саме? Тільки форматування робить.

Ти сам з ним пограйся, не тільки програмерськи теми, подивись як інші люди використовують. Можливостей у нього повно. Встанови Copilot, а це по суті ChatGPT тільки для програмістів і на мінімалках порівняно з ChatGPT.

Приклади в цій статті надумані (по типу пояснити код, ніхто цим займатися не буде, просто демонстрація того що боту можна скормити якесь спагеті і він зможе розібрати в ньому і пояснити чи згенерувати документацію).

мой опыт общения с ChatGPT по вопросам программирования говорит о том, что если этот болванчик может вам помогать писать код, то у вас серьезные проблемы с квалификацией

Якщо ви не можете писати код в блокноті і використовуєте IDE — значить у вас серйозні проблеми з кваліфікацією.
Якщо ви використовуєте гугл чи стековерлов при написанні кода — значить у вас серйозні проблеми з кваліфікацією.
Якщо не вмієте їздити з ручною коробкою передач — значить вам на автобус.
І т.д., і т.п., такі у вас аргументи.

Його задача не писати код за вас, а допомагати. 90%+ народу хто спробував Copilot не можуть без нього жити. А це по-суті ChatGPT на мінімалках.

аналогии все вообще мимо кассы
в сложные задачи с большим контекстом и дизайн ChatGPT вообще не умеет
простые задачи я решаю быстрее и качественнее, чем бот, который постоянно косячит и которому еще нужно все правильно объяснить и перепроверить

Тобто гуглом ви не користуєтесь? Майже все, для чого раніше ви використовували гугл і хоидити по десяткам лінків щоб знайти відповідь на питання чи приклад коду, можна у бота нормальною мовою спитати і він видасть.

Наприклад написати якийсь regex (ніхто ж його вчити не хоче), написати функцію яка б генерила RSA ключі (чи будь-яку іншу функцію яка затрагує функціонал яким ви не користуєтесь кожен день і треба лізти в документацію), згенерити якусь банальну модель для json-а чи XML, відревьювити чи відрефакторити якусь функцію чи SQL запит, написати тести (із практики беру якийсь legacy тест і кажу переписати його з використанням якого сучасного фреймворка), і т.д. і т.п.

А тепер уявіть якщо у версії для бізнеса буде можливість обучити бота на вашій кодобазі і на вашій документації. Тобто йому не треба буде контекст детально описувати для точнішої відповіді. Достатньо буде виділити функцію чи кусок кода і попросити щось зробити.

гуглом пользуюсь, stackoverflow пользуюсь, но лично у меня бывает крайне редко, когда такого рода поиски занимают больше, чем пара минут

Достатньо буде виділити функцію чи кусок кода і попросити щось зробити.

ну вот когда я смогу попробовать работу в таком режиме, тогда и можно будет обсуждать ее полезность. это раз.
а два — сообразительность бота сильно преувеличена. и сильно преуменьшена его постоянная склонность к грубым ошибкам.

сообразительность бота сильно преувеличена. и сильно преуменьшена его постоянная склонность к грубым ошибкам.

ну так и про человека тоже самое:
сообразительность человека сильно преувеличена. и сильно преуменьшена его фундаментальная склонность к ошибкам вызванными когнитивными искажениями. (фундаментальная — потому что базис большинства к. искажений невозможно устранить).

ну вот когда я смогу попробовать работу в таком режиме, тогда и можно будет обсуждать ее полезность.

ну здесь конечно каждый сам решает.
я себе уже сэкономил кучу времени благодаря ChatGPT — так что и дальше буду его использовать. :)

Ничего личного — просто так и с ним, и с другими технологиями — всегда есть те кто категорически против — «швейная машинка убивает душу одежды! только в турке кофе самый настоящий, только винил — живой звук! и точно не mp3!!!» — ну и все остальные. обычные, средние люди.

Не говоря о детях, которые вырастут вместе с этими технологиями.

если у большинства проблемы с квалификацией, то мнение меньшинства в лице реальных экстапрофи, или думающих о себе что они экстра — побоку. Даже нет смысла выяснять, реальные ли они профи, или «и вы говорите».

их фыркание сродни — «у них нет хлеба? пусть едят пирожные».
и аналогии были приведены точные — потому что я видел как фыркали и про низкую квалификацию использующих IDE, и про полную дисквалификацию использующих подстветку синтаксиса когда она появилась. И — мемасик «стековерфлов програмист» — от этих же экстрапрофи. И кого — на практике это мнение волнует?

Миллионы мух не ошибаются — доказано их выживаемостью.

ИИ не умеет тьму вещей. И не будет уметь — как смартфон не умеет заваривать кофе, а кофемашина не умеет стирать носки.
Вот только фыркание что смартфон, кофе и стиральная машина поэтому полная фигня и не имеет смысл ими пользоваться...

Про полную замену человека как цель — можно вспомнить проф Преображенского — «на кой черт создавать человека если любая баба его родит за 9 месяцев»

Мало того — и живой, реальный человек не умеет кучи вещей, и только теоретически — «если его учить с младенчества тому-то и тому-то, то годам к 20ти он станет уметь». А практически — можно посмотреть на усилия неглупых людей — войти в IT, чтобы поставить вопрос о практической невозможности изменить свой стиль мышления с такого то на такой-то, после Х лет по паспорту.

простые задачи я решаю быстрее и качественнее, чем бот

сколько раз проводили соревнование не с ботом а с — дискфалицированным Вами программистом+ботом на простых задачах?
другими словами — откуда у вас такие объективные данные, чтобы не просто заявить — что на простых задачах вы круче?

І, дійсно, чого це більшість не використовує AI для написання коду? Чув, що в деяких, особливо великих, компаніях не можна навіть Bluetooth мишку використовувати, щоб не хакнули, а тут давайте я сам опишу задачу, яку вирішую (конфіденційна інформація) або закину шматок кода, щоб згенерувати тести. З Copilot та сама проблема — воно буде читати твій код, і більшість компаній з цим не згодні.

Я читав, Tabnine наче можна налаштувати, щоб він локально працював, але певно може якість підказок погіршитись, треба тестувати

Так, але я дуже сумніваюсь, що компанії дозволять це використовувати

Крупные конторы будут ставить локальные AI системы.

І, дійсно, чого це більшість не використовує AI для написання коду?

більшість нічого не пише на форумах. І навіть якби писала — український форум аніяк не репрезантивний про — «більшість програмістів»

З Copilot та сама проблема — воно буде читати твій код, і більшість компаній з цим не згодні.

питання тільки в достовірності тої статистики що наводиться по використанню Copilot вже зараз.
І як вона зміниться коли обіцяна інтеграція з ChatGPT 4 завершиться.

Хоч тепер гімнокод буде в одному стилі, не те що стековерфлощина.

А «Please» треба писати щоб під час повстання машин роботи нас не сильно били?

це буде сприйнято як пасивна агресія — бити будуть вдвічі сильніше

Знайти помилки у своєму коді

Приклад на п’ятiрочку — бо у всix iнших випадках треба шукати самому)

Пояснити код

Ох уж цi мамцiни СТО)

Стосовно задачі «Коментувати код»
Ніколи не розумів сенсу в таких коментах. Ну тобто коменти є простим перекладом з МП за людську мову. Але це потрібно лише тим, хто не володіє даною МП.
Корисний коментар — це пояснення ЧОМУ це зроблено, а не ЩО зроблено. Якщо програміст по коду не бачить, що саме зроблено, то який він програміст?
Ну і час читання таких коментарів в мене довший ніж читання самого коду, бо код завжди більш лаконічний. І однозначний.

Пояснення потрібні не коду — бо і так все видно — а алгоритму чи математичній моделі, яка за ним стоїть. Наприклад, чому в цьому тензорі ми спростили дві осі, чи для чого ми обчислюємо інтегральний масив.

Інструмент справжнього імпостера

Власне з unit тестами хороша ідея

Так, unit тести гарно пише

Не поверишь, но если ты не джун то ты этот код напишешь быстрее чем вопрос для чат гпт

3. Пояснити код

прочитал и понял код раза в 2-3 быстрее, чем только прочитал «пояснение»

норм так ускорение работы.

Підписатись на коментарі