ChatGPT: Use Cases and Tips

Особисто я використовую ChatGPT як прокачану та інтерактивну версію Google’a. На сьогодні використовую приблизно 50 на 50.

Багато хто злякався появи чату, і вважає що розробники більше не потрібні, бо чат може згенерувати будь-який код на будь-якій мові програмування. Я вважаю що це крутий помічник, який надає змогу розробнику, більше сконцентруватись на “що я роблю і навіщо” замість того щоб концентруватись на “як саме це зробити”. 

Це така собі кишенькова версія тім/тех ліда, який не має контексту твого проєкту, тому, власне, його відповіді не завжди є валідними і можуть добре працювати в одному випадку і зовсім не працювати в іншому. Тому, вважаю, дуже важливо добре розуміти систему, над якою ви працюєте: 

  • Знати про що система, яку проблему вона вирішує, хто і як цим користується. Звісно, додатки можуть бути доволі обʼємні і зрозуміти все в перший день роботи доволі важко. Тому це поступовий процес.
  • Які підходи та технології використовуються, яка архітектура додатку. Звісно, чат вирішить конкретну проблему відомими йому методами, але тут вже можуть виникнути питання – Чи відповідає це рішення домовленностям в команді? Чи відповідає це підходам, які зумовлені використанням архітектури додатку?
  • Знати про інтеграції з іншими системами. Додаючи чату подібного контексту, ви підвищите шанси того, що чат згенерує вам більше підходяще рішення.

Найчастіші випадки використання чату в моїй повсякденній роботі:
Автоматизація рутинних операцій.
Щодня використовую багато bash script’ів і часто звертаюсь до чату для того, щоб автоматизувати якісь рутинні операції на локальній машині або сервері. Для прикладу – хочу виконати запит в N баз даних, які знаходяться на різних серверах.

2. Простий мапінг даних. Для прикладу – отримую респонс від серверу, який має певний інтерфейс і хочу перегнати його в щось, що буде зручніше використовувати безпесередньо для представлення цих даних користувачу. Надаєш чату input і очікуваний output, просиш написати функцію, яка це зробить. Зазвичай подібні функції є чистими функціями, тому чат доволі непогано з цим справляється.

Особисто я зазвичай надаю перевагу Arrow Functions, тому можна попросити підправити згенерований код, виходячи з домовленостей, принятих на проєкті.

Написання тестів.

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

Навчання.

Дуже часто виникають ситуації, коли не знаєш з чого почати або підібрати перелік матеріалів по конкретному топіку. Наприклад, “Хочу навчитись програмувати, з чого мені краще почати?”

Перевірка текстів.

Дуже спрощує написання документації, щоденних звітів, тощо. Для прикладу візмемо поганий звіт за день.

Мої особисті поради щодо використання чату:

  • Намагайтесь сформувати запит англійською. Ні для кого не секрет, що гуглити англійською було в рази ефективніше ніж українсьскою. Матеріалів англійською набагато більше, того перетягнув цю звичку і на роботу з чатою. Не маю 100% гарантій що працює це краще, але побачивши кілька прикладів відповідей українською – здається що відповіді англійською більше відповідають дійсності. Додатковим бонусом отримаєте практику з англійською, що є обовʼязковим для сучасного розробника.
  • Намагайтесь надати максимум контексту. Як вже згадувалось вище, чат не має контексту вашої поточної задачі.
  • Додавайте уточнення походу. З першого разу не завжди вдається отримати підходящу відповідь. Якщо бачите що результат не відповідає вашим очікуванням – додайте інформації, наприклад версію мови програмування, назву бібліотеки, тощо.

При роботі з чатом важливо памʼятати – він не звільняє від необхідності навчатись. Рішення, які він пропонує, потребують уточнень та додаткової валідації з боку розробника. Іноді він може згенерувати неробочий або застарілий код, або запит до бази даних, який призведе до неочікуваного видалення даних. Не слід сприймати цей інструмент як магічну кулю, яка знає все і про все. Не маючи базових знань, робота з чатом зведеться до копіпасту з очікуванням “сподіваюсь запрацює”. Тому слід приділяти час розширенню світогляду та поглибленому вивченню технологій, з якими ви працюєте.

Post A Reply