GitHub Copilot (Ген-АИ) полезен, но не панацея

Вот мои мысли после использования GitHub Copilot Pro в реальной разработке ASP.NET 8 в течение последних трех месяцев. Поскольку технологии развиваются быстро, стоит отметить, что эти впечатления основаны на моем опыте по состоянию на март 2025 года.

1. Бесплатный пробный период заставил меня подписаться на GitHub Copilot Pro

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

Без особой причины, три месяца назад, из-за автоматической активации бесплатной учетной записи GitHub Copilot в моем Visual Studio 2022 в проекте ASP.NET8 начали появляться так называемые «призрачные тексты» с предложениями кода. Я был шокирован, в определенные моменты это было блестящее предсказание того, что я собирался написать/закодировать.

Для тех, кто не знаком, «призрачный текст» — это предложения GitHub Copilot (GHC), представленные пользователю серым полупрозрачным текстом, который появляется без причины в качестве предсказания от ИИ о том, что пользователь должен сделать дальше. Если пользователю нравится предложенный код, он просто подтверждает его или игнорирует и делает свою работу.

Через несколько дней я решил подписаться на полноценную подписку GitHub Copilot PRO, чтобы проверить этот инструмент.

2. Подготовка к использованию GitHub Copilot – ИИ

2.1 Обучение

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

Я прослушал около 10 часов видео о GitHub Copilot, на такие темы, как «инженерия подсказок», «что такое контекст» и т. д. Я составил свой собственный «шпаргалку» с командами и горячими клавишами. После 10 часов обучения я был готов попробовать его в своей реальной профессиональной кодировке в среде ASP.NET 8/C#/Bootstrap/EF8/JS.

2.2 Инженерия подсказок в общем

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

Теперь вам говорят, что GHC — это система ИИ, но вы действительно не можете общаться с ней на «естественном языке»; вам нужно использовать «инженерию подсказок», которая на самом деле является подъязыком естественного языка и использует такие символы, как /, # и @. Это, на мой взгляд, похоже на смешение естественного языка и языка программирования. Они хотят продать вам свои ИИ-системы, которые у них есть СЕЙЧАС, а через 5 лет, вероятно, расскажут вам: «Теперь у нас ЕСТЕСТВЕННЫЙ ИИ, больше не нужно использовать инженерию подсказок».

Поэтому выражение «инженерия подсказок» исходит из периода, когда единственным способом взаимодействия с системой ИИ было использование командной строки. Затем некоторые «искусство» или «наука» (я бы назвал это «псевдонаукой») в создании команд помогали вам заставить эти ИИ-системы работать лучше. Я прочитал несколько таких статей, которые все являются «здравым смыслом», но поскольку целевая ИИ-система всегда является «черным ящиком», имеются никакие реальные метрики, чтобы показать, лучше ли рекомендации одного автора, чем список правил другого человека. Кроме того, системы развивались и менялись с течением времени, так что, строго говоря, эти авторы должны протестировать свои рекомендации на новом поколении систем снова. Обычно они этого не делают, но предлагают «здравый смысл», основанный на восприятии ИИ как другого человеческого интеллекта. А что такое «здравый смысл» для людей, может не совпадать с ИИ-системами. Поэтому я немного скептически настроен и не верю полностью всем рекомендациям относительно «инженерии подсказок», которые существуют, поскольку нет реальных метрик и испытаний на разных поколениях ИИ-систем. Они предлагают только «здравый смысл» и анекдотические доказательства из нескольких выполнений команд.

2.3. Инженерия подсказок в GitHub Copilot

Таким образом, говоря об «инженерии подсказок» в контексте системы GitHub Copilot (GHC), это включает не только интерфейс командной строки, но и некоторую интеракцию через графический интерфейс Visual Studio. Это, по сути, «пользовательский интерфейс GitHub Copilot».

Если кто-то планирует эффективно использовать GitHub Copilot, ему нужно ознакомиться с пользовательским интерфейсом GitHub Copilot. Я это сделал, выучил все команды, такие как /fix, /optimize, #file1.cs, Alt+/ (вызов GitHub Copilot) и т. д.

2.4 Вселенная разговора

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

2.5 Что такое «контекст» в мире ИИ

Технические компании, занимающиеся ИИ, придумали термин «контекст», который имеет аналогичное значение вышеупомянутому философскому термину. Я бы хотел сохранить термины отдельными, потому что ИТ-компании любят навязывать свои определения того, как должен выглядеть мир, в попытке продать свои продукты и акции. Также, вероятно, будет определение AI-Context-2025 и новое определение AI-Context-2026 и так далее, по мере развития технологии. А философские термины остаются неизменными.

Таким образом, текущее определение контекста на март 2025 года (вы можете назвать его AI-Context-2025) будет следующим: дополнительная информация, которую пользователь должен предоставить системе ИИ, чтобы она поняла, что ей требуется сделать.

2.6 Что такое «контекст» в GitHub Copilot

В обучающих видео для GitHub Copilot было много акцента на предоставлении правильного «контекста» для ваших запросов. Мне кажется, что они просят явно перечислить файлы, которые содержат соответствующий код. Я бы предположил, что «подразумеваемый контекст» будет вашим проектом/решением Visual Studio, но это не так, по крайней мере, на данный момент.

На самом деле, в GitHub Copilot VS2022 есть маленький флажок графического интерфейса, который вы нажимаете, чтобы подтвердить, что хотите, чтобы текущий открытый документ был включен в «контекст» каждого вашего запроса. (Кстати, они называют это «инженерией подсказок», а вы нажимаете флажки графического интерфейса… может быть, «инжиниринг интерфейса» будет лучшим названием 😉). Также вас просят перечислить соответствующие файлы, используя префикс #, например #file1.cs.

Таким образом, если вы хотите эффективно использовать GitHub Copilot, существует определенная процедура, как его использовать, и рекомендуется интерфейс командной строки/интерфейс GUI для этого. Так тому и быть. Я изучил/прочитал все инструкции и хотел увидеть, как ИИ генерирует приятный код для моего проекта VS2022.

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

3. Впечатления после первой недели

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

Более того, «общаться с ним» — это напрасная трата времени, быстрее просто найти что-то в Google и решить проблему самостоятельно.

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

Он также склонен генерировать много «мусорного кода», поэтому человеку необходимо фильтровать сгенерированное содержимое, но использовать кнопку «удалить» не трудно и оставить только «хорошие фрагменты».

Скажем так, исходя из того, что я видел до сих пор, я ожидаю, что он может сэкономить мне 5% времени в наборе кода.

4. Впечатления после 1,5 месяца

GitHub-Copilot (Gen-AI) полезен, но не велик. Иногда он полезен, но только для задач локального масштаба, не может видеть общую картину.

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

В серьезных проблемах он бесполезен; лучше почитать статью на StackOverflow самостоятельно и выяснить все. Но иногда он выдает довольно хороший код для повторяющихся задач.

Мое «личное мнение»: «он не знает это хорошо», он «пытается угадать», и поскольку он машина с огромной памятью, хранящей миллионы строк кода, предположения иногда блестящие, а иногда не по теме.

5. Впечатления после 3 месяцев

GitHub Copilot (GHC) — это Gen-AI инструмент, который довольно полезен в задачах ограниченного масштаба.

  • GHC иногда блестящ. Да, иногда GHC блестящ в предсказании того, что вы собираетесь закодировать, и предлагает вам «призрачный текст», который вам просто нужно принять в код.

  • GHC быстро учится. GHC очень быстро учится вашему стилю программирования (как я обрабатываю и логирую исключения) лучше, чем любой коллега, и придерживается вашего стиля в предложении предсказанных «призрачных» кодов. Мне это очень нравится, у каждого вокруг, как правило, есть свой стиль ведения логов и др.

  • GHC опасно добавляет свой стиль. GHC опасен, потому что он думает, что умнее вас и немного меняет вещи по-своему, не обращая на это внимания. Например, в получении данных из базы данных, в случае исключения, я возвращал null. GHC предложил мне «призрачный текст» во время кодирования, чтобы завершить мой метод, и я просто мельком посмотрел и принял это. Это создало ошибку; вместо null во время исключения он возвращал пустой объект, и мой код в других местах рассыпался. Мораль: внимательно читайте предложения кода, которые он предлагает вам, прежде чем их принимать.

  • GHC может генерировать код, но не «писать код». Трудно объяснить, но проще говоря, GHC не всегда хорошо понимает синтаксис C#. Он создает блестящие фрагменты C#, но с небольшими синтаксическими ошибками. Вам нужно проверить синтаксис кода, полученного от GHC. Это определенно не то, к чему мы привыкли, получая от машин/автоматизированных помощников кода.

  • GHC не понимает синтаксис C# хорошо. Прежде всего, он терпит неудачу по проблемам с нулевыми значениями, такими как типы string и string?. Вам нужно проверить это с помощью компилятора и довести до совершенства самостоятельно. Не сложно, но вы бы ожидали делегировать именно этот тип работы машине/автоматизированным помощникам кода. Я только предполагаю, что, возможно, он смешивает фрагменты кода C#-.NET-Framework с фрагментами C#-.NET-Core.

  • GHC не понимает синтаксис C# хорошо. Он вставляет фрагменты кода в ваш проект кода VS2022, но путает открывающие и закрывающие фигурные скобки блоков кода. Вам нужно считать их самостоятельно и добавлять/удалять то, что необходимо. Это тратит ваше время и иногда создает довольно много беспорядка. Такое разочарование, что сгенерированный код не готов к компиляции немедленно.

  • GHC не понимает методы/свойства C# хорошо. Он предлагает мне код, который выглядит хорошо, и я принимаю его. Но у объекта класса C# вообще нет этого метода. Это было близко; родительский объект имеет этот метод, так что я сам это понял. Хорошо, это было близко и поставило меня на правильный путь. Но именно для этого машины и предназначены. Ни один человек не может помнить все методы из, может быть, 10 000 классов C# в .NET8 API, которые я использую в своем кодировании. Я бы ожидал, что машина поможет мне в этом. Но, увы, даже GHC не уверен, какой метод находится в каком классе. Он оставляет вам небольшую домашнюю работу, чтобы проверить это вручную. Код, который он дает вам, не скомпилируется, но он «близок». Похоже, что GHC «галлюцинирует», что у класса C# есть какой-то метод, но его нет.

  • GHC не понимает методы/свойства C# хорошо. Я использую EF8 в своем проекте VS2022 и имею класс Customer. Я начал писать некоторый доступ к методу для таблицы базы данных Customer, и GHC предлагает мне предсказание метода GetCustomer в «призрачном тексте». Концепция правильная, и да, у этой таблицы базы данных есть первичный ключ, но он не называется CustomerId. Похоже, что GHC просто «галлюцинирует», что такое свойство класса с таким именем должно существовать, но его нет. Предсказанный код не скомпилируется, и мне нужно проверить в классе Customer, каково именно название первичного ключа. Такое разочарование, что машина/автоматизированный помощник кода GHC не может сам проверить правильные названия свойств/методов. Это просто другой класс в проекте VS2022. Итак, фрагмент кода концептуально близок, но мне нужно самостоятельно исправить синтаксические ошибки. И у меня была такая ситуация более 100 раз.

  • GHC не понимает методы/свойства C# хорошо. Впечатление такое, что GHC поверхностен, он не видит многого более чем на несколько страниц кода, и он пытается «угадать», как выглядят остальные проектные файлы VS2022.

  • GHC общается неэффективно. Он тратит ваше время на свои догадки. У меня нет времени читать более 2 предложений сгенерированного кода. Мне нужно работать. После 1-2 неверных предположений я игнорирую GHC и пишу код сам. Я пытался «пообщаться с GHC», и иногда после 5-7 взаимодействий он все равно остается таким же глупым как в начале разговора. Это похоже на разговор с не ИИ чат-ботом на каком-либо сайте, продающем билеты. Он все время повторяет свой текст, и GHC не сосредоточен на том, что вам действительно нужно. Я пробовал этот подход несколько раз, чтобы «уточнить» свой запрос в интерактивном чате, но это похоже на разговор с идиотом. Я больше этого не делаю, я уважаю и берегу свое время и энергию. Я игнорирую GHC и делаю прямое кодирование, получая результаты старомодным способом. Таким образом, вывод заключается в том, что я даю GHC 1-2 шанса сказать, что он должен сказать, потом игнорирую его, чтобы не тратить время, и делаю код вручную.

  • GHC общается неэффективно. GHC не всегда является хорошим источником информации. Он может быть блестящим и дать вам информацию и примеры кода лучше, чем вы ожидали. Но есть НЕУВЕРЕННОСТЬ. Он может ошибиться. Если вы пытаетесь получить совет по какой-то очень общей теме, немного специфичной для ваших нужд, он потратит ваше время на бесконечные чаты. Лучше обратиться к Google и найти статью на Stack Overflow самостоятельно. GHC — это генератор текста, и эта машина может генерировать огромное количество текста и примеров кода в ответ на ваш вопрос. Меня переполняло количество примеров кода, которые она предлагает вам. На вопрос, который вы задаете, он дает вам текст и примеры кода, на которые может потребоваться около 15 минут, чтобы прочитать и понять. Это почти как будто он назначает вам задачу: прочитайте это, а затем мы поговорим снова. И так далее, ответ за ответом. Эта вещь GHC может делать это вечно, обучая вас, как работает HTTP, например, а вы спрашиваете только об одном заголовке. Проблема в том, что он не имеет сосредоточенности, это не то, что я спрашивал. Все это непо теме. Быстрее обратиться к Google и отфильтровать/открыть пару ссылок, чтобы найти ответ на вашу проблему. Итак, вывод: я спрашиваю GHC и читаю 1-2 ответа, затем иду в Google, чтобы не тратить время.

  • GHC не всегда внимательно выполняет инструкции пользователя. Похоже, GHC не всегда внимательно исполняет инструкции пользователя, он думает, что умнее пользователя, и слабо придерживается инструкций, предоставляя то, что считает лучше для пользователя. Так что, если я хочу создать HTML ASP.NET Razor форму в определенном едином стиле по всему приложению, но не с GHC, когда я это говорю, он все равно дает мне HTML-форму, как из учебника. Это происходило и в других ситуациях.

  • Форма обратной связи GHC — это трата времени. Таким образом, у программных компаний есть блестящая идея: они будут получать плату за продукт, но в то же время любезно просить пользователей бесплатно участвовать в тестировании продуктов. Так, как и многие другие продукты, некоторые диалоги всплывают, спрашивая вас о вашем мнении. Вопрос в том, прочитает ли кто-нибудь то, что вы пишете, даже если вы заполните форму. Так много продуктов всплывают диалоговыми окнами, сообщая вам о новых функциях и прося оценить каждое полученное вами от них значение на 5 звезд, а также даже написать комментарии. Такие диалоги только загромождают мое рабочее пространство, и как правило, у меня есть более серьезные дела, чем отвечать на несколько вопросов, оценивающих каждую услугу, которую я получал. По сути, они хотят, чтобы пользователи массово помогали обучать их ИИ-систему, оценивая каждый ответ.

  • GHC преуспевает в малом, ограниченном объеме задач. Мне нужен был метод для Trim() всех строк в классе EF; я хотел общее решение. Я знал, что рефлексия — это путь, но в одной строке команды GHC создал мне идеальный 30-строчный метод. Это те случаи, когда GHC не имеет равных людям. Мне потребовалось бы время, чтобы найти правильный метод рефлексии, почитать некоторые API и т. д. Таким образом, я получил это за 20 секунд. Но GHC иногда блестящ, иногда бесполезен даже в таких сценариях.

  • GHC терпит неудачу в сложной задаче на JavaScript. У меня была простая проблема, ограниченного масштаба, мне нужен был метод в 10 строк, чтобы дождаться загрузки jQuery, потому что я использовал атрибут «defer» при загрузке jQuery. Это казалось идеальной задачей для GHC. Но я был шокирован. Даже после 5 попыток GHC вырабатывал какой-то JS-код, который делает что-то другое. Он не мог понять, что мне нужно. Он продолжал генерировать случайные фрагменты кода, которые, казалось, связаны с проблемой, но на самом деле были бесполезны. Это как если бы вы дали задачу младшему программисту, который «утверждает», что знает немного JS, и он продолжает приносить вам случайные образцы кода из интернета, но никто не делает простую вещь, которую вы попросили. Позже я сам нашел фрагмент на StackOverflow. Может быть, 3 клика в Google, и я его нашел. GHC иногда так невозможен.

  • GHC делает поверхностные комментарии на C#. Я использовал GHC, чтобы добавить некоторые комментарии к своим методам, и сгенерированные комментарии довольно поверхностные; они не видят главную цель, которую пытается достичь этот метод. Это важнее, чем комментарии по строкам, сейчас мы присваиваем это или то. Он может вывести по английским названиям методов цели метода, но все равно не очень впечатляет большую часть времени.

  • GHC не понимает комментарии C# хорошо. GHC, когда его просят создать комментарии для метода, может удалить некоторые строки реального кода. Будьте осторожны и внимательно читайте то, что вам дается в ответ. Это большая боль, вам нужно вручную перепроверить весь метод, и вы не можете доверять GHC. Похоже, что GHC не понимает синтаксис должным образом и что является комментарием или нет, он просто видит текст. Это случалось со мной, и я внимательно смотрел, почему. У меня было установлено какое-то свойство, и в комментарии выше было старое значение, которое я тестировал и закомментировал. Это существо GHC удалило оба: код и старый комментарий. Есть вероятность, что у меня такое было на многих местах в коде. Так что высокий риск нежелательной манипуляции кодом при простом запросе к просто добавить комментарии. Все сгенерированные прокомментированные коды необходимо пересматривать вручную.

  • История GHC о «контексте» не работает так, как рекламировалось. Кажется, идет какая-то игра «в вину», где технические компании указывают на разработчиков за неудачи продуктов ИИ-генерации. Просто современные инструменты Gen-AI не так полезны, как рекламируется в реальных ситуациях. Но компании прилагают огромные усилия, чтобы продать текущее поколение инструментов ИИ, какими бы несовершенными они ни были, и получить некоторый доход СЕЙЧАС. Также, за неудачи и ограничения, указывают пальцем на пользователей: «инструменты отличные, вы просто не знаете, как ими пользоваться». Технические компании говорят: это неудача пользователя, когда инструменты ИИ терпят неудачу, это не правда, что текущие инструменты ИИ имеют проблемы. Одной из таких «игр в вину» является установка «контекста» для GHC.

  • История GHC о «контексте» не работает так, как рекламировалось. Мне надоело читать/слушать: «вы недостаточно хорошо указали КОНТЕКСТ». Это просто отговорка, потому что я действительно следовал всем советам, а GHC все равно глупый и тратит мое время, генерируя бесполезные фрагменты кода, которые даже не компилируются, не говоря уже о том, что они не по теме. Я читал о «инженерии подсказок» и «контексте», но после своих лучших усилий я пришел к выводу, что GHC просто недостаточно умный, чтобы выполнить задачу. Давайте подождем 6 месяцев и попробуем новые инструменты. В это время пытаться выжать больше из GHC — это пустая трата времени. Таким образом, правда в том, что на данный момент (март 2025 года) GHC довольно глуп, и никакое количество предоставленной «информации о контексте» не может помочь ему решить задачу среднего уровня.

  • GHC не может решить простое Исключение. У меня был код, который вызывал исключение, и я хотел использовать GHC, чтобы решить его. Я расположился на Исключении в Visual Studio и вызвал GHC с /FIX. Он генерировал текст, включая рекомендацию «логировать больше, чтобы лучше понять дефекты кода», но никакого конкретного ответа. Это было легко, я просто скопировал текст Исключения в Google, и 3<sup>я</sup> ссылка была объяснением. Не говоря уже о том, что на Google было больше текста о том, почему EF9 не работает и так далее. GHC может быть так низок в обычных задачах.

  • GHC не может перечислить свойства из обычного класса C#. Я выполнял некоторые LINQ и копировал объекты из классов, которые наследуют друг от друга. Я хотел скопировать все совпадающие свойства. Их было около 25. Я начал назначать 2-3 свойства и надеялся, что GHC уловит шаблон и вставит код для остальных. Нет, он не стал этого делать. Он добавил несколько свойств в неправильном порядке (что является проблемой, вы не можете следить за тем, какие добавлены, а какие нет), а затем «выдумал» названия нескольких свойств, которых не существует (галлюцинация?), и застрял. Я пытался выдавать команды из командной строки, но он неправильно меня понял, вставил весь класс C# на место и т. д. Я пробовал это несколько раз в разных местах, потому что у меня много больших DTO, поэтому такое копирование является частой задачей. Я не смог заставить его сделать это за меня. Мне стало скучно, и я вручную скопировал свойства сам. Я устал давать инструкции казалось бы глупому инструменту. Странно, что вы не можете делегировать такую простую задачу GHC. Порой IntelliSense гораздо умнее и полезнее, чем GHC.

  • GHC не может сделать маленький проект из 4 файлов C#. Таким образом, я хотел бы использовать генеративный ИИ в своем проекте VS2022/C# и искал подходящий момент. Я заметил одну, я оформлял HTML/Razor/ASP.NET8/Bootstrap представления, которые представляют некоторые HTML таблицы, соответствующие таблицам базы данных. Это было немного сложно; внутри представления был интерфейс хлебных крошек, какой-то AJAX и так далее. Поэтому я вручную создал одно MVC действие/представление для таблицы клиентов и хотел сделать точно то же самое для контрактов. Все то же самое, просто другая таблица базы данных (соответствующая классу EF8), другое имя класса EF с новыми свойствами. HTML таблицу, которую я хотел сгенерировать, предполагалось, что она будет выглядеть так же, стиль Bootstrap. Так что типичная задача «следовать ШПАТЛУ» на 4 файлах. Я видел несколько видео, подчеркивающих важность «контекста». Так что в отдельном текстовом редакторе я начал писать точные инструкции для GitHub Copilot. Я объяснил задачу, сказал, какой файл хочу использовать в качестве шаблона, и отметил имя файла символом #. Я объяснил, откуда будет взята модель MVC, из какого файла и т. д. Я даже проверил свой маленький абзац с задачей для GHC. Я потратил некоторое время на подготовку заданий ясным образом. Затем я предоставил это GHC. Первая форма, которую он сгенерировал, НЕ следовала шаблону, который я явно упомянул. GHC дал мне что-то вроде HTML формы из учебника, а не кастомизированную для моего приложения в стиле Bootstrap. Я запросил новую генерацию файлов кода. Вторая форма выглядела как форма, которую я уже создал, но из 15 свойств таблицы базы данных он создал только 4. Позже я понял, что GHC не может читать зависимые файлы и в большинстве случаев угадывает имена свойств. Он угадал правильно, потому что я дисциплинированно придерживался одинаковых соглашений о наименованиях в разных классах EF, поэтому догадки GHC сработали. Я завершил файл вручную, вручную добавив более 10 недостающих свойств. Человек ожидал бы, что такую повторяющуюся задачу можно было бы делегировать GHC, но нет, GHC не может выполнить простую повторяющуюся работу.

  • GHC не может сделать маленький проект из 4 файлов C#. Я снова пробовал аналогичную ситуацию с генерацией некоторых файлов в своем проекте VS2022/C# на основе ясного шаблонного файла. Результаты не очень хороши, хотя это была ситуация, которая была так рекламирована, структурированная для успешнопотока GHC. Не сложная логика, требовалось только соответствие имен, немного сложная HTML таблица, соответствующая другой таблице базы данных. Но, похоже, GHC не может читать свойства EF8 из 3<sup>го</sup> файла и перечислять их для создания похожей HTML таблицы. Кроме того, он вносит много ошибок в сгенерированный файл, «галлюцинируя» по поводу свойств C#. Иногда он даже изменяет код файла без причины, поэтому необходима построчная проверка сгенерированного файла. Также, общение через командную строку с GHC и запрос изменений занимает время и, поскольку результат не гарантирован и содержит ошибки, в конце является неэффективным способом разработки программного обеспечения.

  • GHC не может сделать маленький проект из 4 файлов C#. Оглядываясь назад, я не мог бы быть более точным в спецификации «контекста. Любой человек понял бы данное письменное задание и заданный контекст. Я пришел к выводу, что GHC просто недостаточно умен, чтобы справиться с малой генерацией 4 файлов, даже когда у него довольно шаблонно-ориентированное задание. Я не хочу больше слышать истории о «правильном контексте», потому что я приложил усилия, чтобы сделать все правильно. И это пустая трата времени и усилий повторно запрашивать GHC для генерации файлов снова и снова и пересматривать каждый новый сгенерированный код в моем проекте VS2022/C#. Я пробовал это, и GHC может генерировать новый файл каждый раз, когда вы запрашиваете, и я устал от изучения неудачных попыток.

  • GHC не может сделать маленький проект из 4 файлов C#. Теперь, когда у меня есть аналогичная ситуация для генерации нового HTML представления на основе имеющегося шаблона, шаблонной задачи, я больше не спрашиваю GHC. Я просто использую текстовый редактор с функцией Найти/Заменить в моем проекте VS2022/C# и это занимает столько же времени и более надежно. Потому что, когда я использую Найти/Заменить, я точно знаю, что получаю, а GHC, возможно, изменит строки, но по своей инициативе сделает некоторые изменения в коде иногда, так что я никогда не был уверен, изменил ли он или стер линию или две оригинального шаблонного кода. Это скучная работа, но no неожиданного сюрприза от «умного» GHC, «улучшающего» мой код.

  • GHC делает глупые ошибки в Bootstrap. Я не мог запомнить имена классов Bootstrap, и я хотел увеличить кнопку по бокам. Я спросил GHC, и он выдал мне имена классов Bootstrap. Я применил их, и это увеличило кнопку сверху и снизу. Странно, как он может сделать такую ошибку. Мне нужна была помощь именно с классами CSS Bootstrap, я не могу их все запомнить. Это такой простой вопрос, а GHC не может с этим справиться.

6. Как описывать такие ИИ-системы, как GitHub Copilot

Типичное хорошее определение чего-то нового состоит из 2 частей: 1) объекта/концепции, с которым это похоже, и 2) как это отличается от похожего объекта/концепции.

Итак, когда речь идет о интеллектуальных системах, люди обычно принимают людей за ссылочное значение. Они, как правило, говорят: система AI-Gen на уровне младшего программиста, но лучше/хуже в этом или том.

Но мне кажется, что для ИИ-систем, таких как GitHub Copilot (GHC), люди не являются хорошей ссылкой. Люди постепенно развиваются в своих интеллектуальных способностях, они могут сначала решать простые задачи, а затем более сложные и так далее.

Я не знаю много о аутизме, кроме голливудских фильмов, таких как «Человек дождя» (1988) с Томом Крузом. Но если мы будем сравнивать GHC с людьми, GHC выглядит как тот аутичный персонаж из фильма. Он может быть блестящим и быстро решать сложные задачи, но он может провалить очень простую задачу.

Я бы поместил такие ИИ-системы, как GHC, в их собственную категорию. Их скорость и огромная память, а также способность быстро генерировать огромное количество текста/кода делают их непревзойденными по сравнению с людьми. Это как идиот, который обладает памятью и математическими способностями в миллион раз лучше любых людей, но все равно является идиотом, когда речь идет о простой задаче. Можно ли назвать его глупым, потому что он не «пишет код логически», а вместо этого, вероятно, ищет миллионы строк кода в своей памяти и находит решение проблемы быстрее, чем вы?

7. После опыта, как я сейчас использую GitHub Copilot

7.1 GitHub Copilot делает много ошибок в C#

Что касается генерации кода с помощью помощи, GHC такое огромное разочарование, что он не может всегда правильно понимать синтаксис C# и самостоятел
Перейти к источнику

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *