javascript

ChatGPT как второй пилот: сильные и слабые стороны с практическими советами

  • суббота, 9 ноября 2024 г. в 00:00:03
https://habr.com/ru/articles/857056/

Порой очень лениво выполнять рутинную работу или писать бойлерплейт с настройкой конфигураций под новый проект. Я считаю себя самым ленивым разработчиком на планете, так что эра ИИ для меня как манна небесная. Наконец-то появилась возможность отдать рутину второму пилоту. Но так ли этот пилот хорош? Больше года я использую ChatGPT в роли своего помощника, и вот что я понял...

Где ChatGPT Реально Полезен?

Быстрый поиск информации

Иногда нужно вспомнить синтаксис, как работает определенная функция, как правильно применить хуки в React или как отцентрировать div — ChatGPT может быстро напомнить нужные детали. Это экономит время на поиске в документации или Stack Overflow, когда нужен короткий ответ, а не глубокий поиск. Использовать нейронку вместо поисковика иногда гораздо удобнее и быстрее.

Пример: Как работает хук useContext в React?

Пример ответа на поиск общей информации по React хуку
Пример ответа на поиск общей информации по React хуку

Шаблоны для рутинного кода

В тех случаях, когда постоянно приходится писать шаблонный код, такой как конфигурация роутинга или настройки Formik, ChatGPT быстро генерирует скелет, а мы уже адаптируем его под свой проект. Это полезно, когда задача не требует особой индивидуальности кода, но нужна структурная основа.

Пример: Создай конфигурацию для API сервиса.

Пример как СhatGPT может накинуть шаблон для сервиса
Пример как СhatGPT может накинуть шаблон для сервиса

Ограничение: Он может сгенерировать общие вещи, но редко угадывает тонкости конкретного проекта, поэтому все равно требуется ручная доработка. Для более точной конфигурации понадобится прорабатывать ваш промт и более тщательно относиться к требованиям. Без рефакторинга ни один запрос не обойдется!

Рефакторинг кода

Когда есть подозрение, что код можно сделать проще или быстрее, ChatGPT поможет с вариантами. Это полезно при рефакторинге: можно попросить его предложить альтернативные версии, а затем выбрать или доработать нужную.

Пример: Помощь в рефакторинге.

Тут я перенес метод и попросил его улучшить
Тут я перенес метод и попросил его улучшить
 Его ответ
Его ответ

Ограничение: Иногда он может сделать код хуже, поэтому без ревью никак. О качестве его рефакторинга стоит думать в каждом случае отдельно.

Объяснение сложных понятий или вопросов по библиотекам

Я очень часто использую ИИ для обучения: он объяснит любую тему, концепцию или архитектуру понятным языком, а детальность ответа можно регулировать во время беседы.

Ограничение: ChatGPT не всегда актуален, особенно для технологий, которые быстро развиваются. Если появилась новая версия библиотеки, он может давать устаревшую информацию.

Где ChatGPT Работает Слабо?

Отсутствие контекста проекта

ChatGPT не знает проекта целиком. Если в коде много связей или специфических зависимостей, он не может их учесть, из-за чего советы могут оказаться неприменимыми или даже ошибочными. Я советую использовать его в основном точечно или как вспомогательный источник информации.

Ограниченная поддержка сложных архитектурных решений

Когда требуется архитектурное решение или настройка на уровне FSD, ChatGPT может предложить лишь общие рекомендации. Для построения сложной архитектуры под конкретные требования потребуется более глубокий анализ, чем тот, который ИИ пока что может предложить.

Ошибки и устаревший код

Поскольку ChatGPT обучен на данных до 2021 года, некоторые из его решений могут быть устаревшими или неверными. Это особенно важно для тех технологий, которые активно развиваются, например, TypeScript или React.

Пример: Он может предлагать старые API или игнорировать последние изменения в синтаксисе хуков.

Как работать с СhatGPT эффективно

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

Четкая формулировка запроса

Создание правильного промта — это уже 90% успешной работы с любой нейросетью. Чем конкретнее ваш запрос, тем лучше результат. Вместо общих вопросов, таких как «как мне настроить роутинг», попробуй уточнить: «Как мне настроить роутинг в React с динамическими маршрутами?».

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

Мокковые данные

Когда нет готового API, любой уважающий себя фронтендер начинает создавать JSON-файлы с моковыми данными. Довольно нудное занятие — выдумывать даже пять мок-пользователей. Предлагаю вариант решения:

Генерация тестовых пользователей
Генерация тестовых пользователей

Быстрая типизация

Как только у нас появляются данные, возникает и потребность их типизировать. С этим наш товарищ тоже отлично справится.

Тип для ранее сгенерированных пользователей
Тип для ранее сгенерированных пользователей

Персонализация

У ChatGPT есть возможность становиться персональным и запоминать некоторые тезисы и факты из переписки о вас. Можно самостоятельно настраивать персонализацию в настройках. Это нужно для того, чтобы чат понимал, кто вы такой, и хранил контекст о вас. Я предоставил ему вводные данные, которые он использует при общении в каждом чате.

Контекст моего GPT
Контекст моего GPT

После заданного контекста GPT знает, как меня зовут, что я фронтендер, и что мне нужно давать ответы как синьор. Теперь чат будет менторить меня, и мне не нужно каждый раз об этом просить.

Еще одной интересной особенностью является его память.

Часть списка того, что он запомнил про меня из наших переписок.
Часть списка того, что он запомнил про меня из наших переписок.

Советую заходить и редактировать его память вручную, чтобы он не заполнял ее ненужными тезисами. Лишние данные в памяти могут повлиять на его контекст и сделать его менее объективным.

Обязательное ревью каждого ответа

Заманчиво положиться на цифрового друга, но всегда стоит помнить, что отвечаете за его решения только вы! Следует проверять даже рутинные задачи. Время от времени, доверяя ИИ простые задачи, я ловил себя на мысли, что он написал решение, с которым я рискую "выстрелить себе в ногу" в ближайшем будущем.

Разные варианты решения

Просите ChatGPT предложить альтернативные варианты решения. Хорошее решение может прийти в цифровую голову спустя некоторое количество попыток. Не останавливайтесь на одном варианте.

Объяснение кода

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

Источник идей

ChatGPT может предложить тебе идеи проектов, модулей, структур данных и т.д. Очень часто, когда креатив на нуле, "железяка" подкидывала мне неплохие идейки, как реализовать модуль или даже как назвать переменную!

Заключение

Все есть яд, и все есть лекарство. ИИ — это лишь инструмент, а то, как мы им пользуемся, уже ложится на наши плечи. Если понять сильные и слабые стороны, преимущества и ограничения данного инструмента, можно значительно сократить время и усилия при разработке приложений. Хочу предупредить, что если постоянно полагаться на ИИ, мы можем сильно снизить свою компетенцию. Не стоит расслабляться и следует думать в первую очередь своей головой. ChatGPT поможет нам немного отойти от повторяющихся действий и сосредоточиться на действительно важном.