Когда я начал использовать ChatGPT и второй пилот Github, в нем было что-то знакомое. Но я не мог точно указать на это пальцем. Какая-то аналогия с участием ИИ и человеческого взаимодействия. фильмы о Терминаторе или iRobot были основными отсылками, которые я видел на Reddit и в социальных сетях, но это было не совсем так. Наконец, после нескольких месяцев использования ChatGPT меня осенило. Эти двое — КИТТ, а я — ДжейМон Хассельхофф в роли Рыцаря дорог!
Когда я впервые услышал о людях, использующих ChatGPT и Github Copilot, у меня были сомнения, поскольку люди продолжали говорить, что это станет концом для разработчиков. Я был настроен скептически, потому что предпринимались различные попытки заменить разработчиков каким-то инструментом или техникой, которые просто создавали ситуацию, когда вам нужен разработчик, который знает этот инструмент. Поколебавшись со своим мнением на этот счет, я решил опробовать эти инструменты в своем собственном проекте под названием Гидай (Календарь социальных сетей, созданный для обмена событиями 😉).
Первоначально мы отдали программирование на аутсорсинг фрилансеру из Upwork за очень дешевую плату, и он… гм, они (почти уверен, что он передал работу на аутсорсинг, но это тема для другого дня) смогли создать работающее приложение. Код несколько месяцев просто лежал в нашем репозитории git. У нас были изменения, которые мы хотели внести перед программным запуском, и это была идеальная ситуация, чтобы опробовать эти 2 новых инструмента LLM.
Github Copilot, я бы сказал, наверное, мой фаворит из двух, просто потому, что когда у меня действительно нет вопросов, Copilot похож на intellisense на стероидах. Он включает в себя фрагменты кода, которые, я думаю, он видел из других баз кода, которые он проанализировал, а также из вашего собственного (и, кажется, в последнее время он сильно склоняется к вашей собственной кодовой базе), чтобы в значительной степени завершить строку или весь блок кода, основываясь либо на ваш комментарий выше или шаблон, найденный в вашем коде. Но, как и в случае с IntelliSense, его можно сбить или пропустить. В некоторых случаях вы будете знать, что блок кода — это не то, что вы пытаетесь ввести. В других случаях это не так очевидно, и это может вызвать проблемы, поскольку вы ожидали, что код будет делать одно, а он делает другое. Меня это не так беспокоит, потому что я иногда делаю то же самое. Ставить знак больше вместо знака меньше? Я сделал это. Вычесть А из В вместо В из А? Сделал и это. Ошибочно поместили логику для «если условие истинно» в разделе «иначе»? Ага. Но именно поэтому мы используем автоматизированное тестирование, верно 😊
ChatGPT — это мой агент службы поддержки 1-го уровня, когда у меня есть вопросы. Я действительно плохо закрываю вкладки браузера, поэтому, когда я нахожусь в своем путешествии по google/stackoverflow, пытаясь найти ответ на свой вопрос, эти вкладки все еще открыты через несколько дней, поскольку я по какой-то причине боюсь потерять эти ответы. Так что с ChatGPT я могу избежать всех этих дополнительных вкладок браузера, хотя теперь у меня есть куча тем ChatGPT в левой панели, лол.
Вот некоторые из вещей, для которых мне действительно нравится использовать ChatGPT:
- Создание кода ворчания, который я не хочу делать вручную (например, создать оператор sql со столбцами из csv, исправить эти файлы json и т. д.)
- Дайте ему внешний код и спросите, как настроить форматирование.
- Дайте ему код и попросите вернуть его с комментариями
- Создайте шаблон readme для этого проекта
- Предложите структуру папок для этого проекта
По большей части ChatGPT дает мне то, что мне нужно. Я бы сказал, что аналогия с Рыцарем Райдером больше применима к ChatGPT, чем к Github Copilot, поскольку иногда Майкл что-то говорит KITT, KITT возвращается с ответом, а Майкл решает «Нет» и следует своим инстинктам. ChatGPT может не только дать вам ответ, который заставит вас решить, что у вас, вероятно, есть лучший ответ, но также может просто придумать что-то. Я задал ему вопрос о том, как сделать что-то для DBT-ядра, и когда это не сработало, я погуглил, и нигде не было сказано, что то, что я хочу сделать, даже возможно.
Поэтому время от времени мне приходится вызывать ChatGPT, когда он дает мне что-то неправильное (даже иногда, просто взглянув на код, я могу сказать, что он неправильный). Он отвечает извинениями, но меня не волнуют извинения от ИИ, только правильный ответ.
В целом, мне понравилось программировать с помощью этих двух инструментов, так как это ускорило разработку. Наличие поддержки уровня 1 для моих вопросов и обращение к Stackoverflow/Google, когда ChatGPT неверен, позволяет мне быстро отвечать на вопросы. Второй пилот Github, действующий как super saiyan intellisense, позволяет мне писать код быстрее. Я не знаю, насколько лучше они могут стать, но пока я бы сказал, что это был положительный опыт.