ChatGPT с кодом Visual Studio

Это революционная технология искусственного интеллекта, которая помогает пользователю искать длинные вопросы-ответы и пишет код.

Нужен ли нам код Visual Studio, игра просто окончена?

TL;DR;

Протестировав его с помощью логической головоломки, я узнал, что он:

  • Требуется контекст для вывода значения: если в коде нет комментариев, а имена переменных и методов не описывают себя, то это будет проблематично, как и у программиста.

На основе этого эксперимента я бы посоветовал разработчикам и инженерам:

  • Надейтесь продвинуться вверх по пищевой цепочке: найдите способы использовать ChapGPT в своем кодировании, чтобы оставаться жизнеспособным программистом. Плагин Visual Coding Studio является хорошей отправной точкой.
  • Опирайтесь на человека: разработка программного обеспечения часто является игрой с людьми, глубокое понимание и дружба с людьми, с которыми мы работаем, является убийственным преимуществом, люди — социальные животные, вы можете Дай пять компьютеру!
  • Не паникуйте. Я думаю, что у вас будет несколько лет, прежде чем станет возможным масштабное использование без участия человека, потому что юридические и финансовые обвинения требуют какой-либо формы законодательства или правила, и он нуждается в дополнительной подготовке, доработке, он все еще немного сырой.

Эксперимент с кодом Visual Studio

Возникновение ИИ захватывает, давайте осмотримся.

Я подошел к CodeWars и взял головоломку под названием Прогуляйся десять минут:

Напишите функцию на C#, чтобы решить эту проблему. Вы живете в городе Картезии, где все дороги выложены идеальной сеткой. Вы пришли на встречу на десять минут раньше назначенного срока, поэтому решили воспользоваться возможностью прогуляться. Город предоставляет своим гражданам приложение Walk Generating на их телефонах — каждый раз, когда вы нажимаете кнопку, оно отправляет вам массив однобуквенных строк, представляющих направления ходьбы (например, «n», «s», «w», «e»). '). Вы всегда проходите только один квартал для каждой буквы (направления), и вы знаете, что вам потребуется одна минута, чтобы пройти один городской квартал, поэтому создайте функцию, которая будет возвращать true, если прогулка, которую предлагает вам приложение, займет у вас ровно десять минут (вы не хочу ни рано, ни поздно!) и, конечно же, вернет вас в исходную точку. В противном случае верните false.

И ввел его в плагин Visual Studio ChatGPT:

Он написал код для решения головоломки примерно за 20 секунд:

bool CheckWalkLength(string[] walk) 
{
    if (walk.Length == 10) {
        int x = 0;
        int y = 0;

        // Iterate through the walk instructions
        foreach(string direction in walk) {
            switch(direction) {
                case 'n':
                    y++;                
                    break;
                case 's':
                    y--;
                    break;
                case 'e':
                    x++;
                    break;
                case 'w':
                    x--;
                    break;
            }
        }

        // Check to see if the final position is at the origin
        return (x == 0 && y == 0);
    }

    // If the length of the walk wasn't 10, return false
    return false;
}

Сначала код не запускался, потому что он использовал ' речевые метки, обозначающие char в C#, но как только я заменил их двойными кавычками, код запустился и решил проблему, потрясающе.

Затем я попросил его объяснить код:

Реализовать тесты:

Проанализируйте его, чтобы найти потенциальные проблемы:

Затем я удалил комментарии и описательные имена методов и переменных из сгенерированного кода:

bool Check(string[] walk) 
{
    if (walk.Length == 10) {
        int x = 0;
        int y = 0;

        foreach(string direction in walk) {
            switch(direction) {
                case 'n':
                    y++;                
                    break;
                case 's':
                    y--;
                    break;
                case 'e':
                    x++;
                    break;
                case 'w':
                    x--;
                    break;
            }
        }

        return (x == 0 && y == 0);
    }

    return false;
}

И попросил его объяснить код:

Затем я рефакторил код, чтобы сделать его более декларативным с использованием Linq:

И попросил его объяснить рефакторинг кода:

И напишите для него тесты:

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

Ссылки

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу