Как это повлияло на мой рабочий процесс и что он может и чего не может делать в настоящее время
За последние несколько месяцев GitHub Copilot привлек внимание сообщества программистов, вызвав у нас удивление и страх. Если вы живете под камнем, Copilot — это помощник ИИ, который поможет вам писать код быстрее. Поскольку о нем впервые было объявлено в июне 2021 года, он очень быстро завоевал популярность, несмотря на то, что все еще находится на стадии раннего доступа.
Copilot работает на OpenAI Codex, модели искусственного интеллекта, которая обучена понимать и генерировать как естественный язык, так и, что наиболее важно, исходный код. Несмотря на огромную шумиху, которую Copilot поднял в сообществе программистов, у многих еще не было возможности попробовать его. По этой причине я хотел бы поделиться текущим состоянием Copilot, а также своими мыслями о том, как из-за этого изменился мой рабочий процесс.
Что может второй пилот?
Как вы, наверное, уже знаете, Copilot анализирует ваш исходный код и вносит соответствующие предложения. Тем не менее, это заявление очень широкое и на самом деле не включает никаких подробностей о том, как это влияет на ваш рабочий процесс.
Во-первых, Copilot знает популярные API и фреймворки и знает, как их использовать. Из-за этого вы можете просто описать задачу в комментарии или просто позволить Copilot сделать вывод о ваших намерениях и позволить ему позаботиться о написании правильных вызовов API.
По моему опыту, эта функция в основном работает без проблем. Однако подсказки кода не полностью отражают вашу цель и могут привести к скрытым ошибкам в вашем программном обеспечении либо из-за нежелательных побочных эффектов некоторых операций, либо из-за некоторых специфических структур данных, с которыми он не знает, как обращаться.
Точно так же Copilot также может предложить реализацию популярных алгоритмов на различных языках программирования. Скажем, вам нужно отсортировать список элементов, вы можете просто сказать Copilot, чего вы пытаетесь достичь, и он напишет код для вас. Чтобы получить еще более подходящие результаты, вы также можете указать имя алгоритма в комментарии.
Например, вы можете попросить своего помощника по написанию кода отсортировать список чисел, используя сортировку выбором или сортировку пузырьком.
Теперь вы можете подумать, что Copilot также должен иметь возможность создавать новые алгоритмы с нуля, в зависимости от ситуации. Ну, это не всегда так.
Copilot действительно может анализировать ваш исходный код, чтобы понять ваши намерения, и, если руководствоваться описательными комментариями, в большинстве случаев он может написать правильный алгоритм. Однако он определенно не является отказоустойчивым и часто может испортить типы данных и структуры данных, особенно если они не встроены в язык.
Из-за этого я думаю, что вы не должны полагаться на Copilot для написания алгоритмов, специфичных для вашей проблемы, если только он не может быть прослежен до комбинации двух или более популярных алгоритмов.
Чего не может второй пилот
Несмотря на все свои возможности, Copilot не может ни заменить человека-программиста, ни приблизиться к созданию сложной системы самостоятельно.
Прежде всего, Copilot в настоящее время испытывает затруднения при работе с несколькими файлами в одной кодовой базе. Похоже, он не может понять импорт файлов, часто путая имена и типы данных. Я предполагаю, что он анализирует только текущий сфокусированный файл, а не всю кодовую базу, что, кстати, было бы очень неэффективно.
Во-вторых, иногда второй пилот изо всех сил пытается понять ваши истинные намерения из контекста и заканчивает тем, что предлагает какую-то абсурдную чепуху. Однако иногда автозавершения кода могут казаться правильными или даже разумными, но вместо этого могут приводить к странным, трудным для отладки ошибкам. Из-за этого вам всегда следует перепроверять предложения Copilot на наличие скрытых ошибок или, возможно, нежелательных побочных эффектов. В конце концов, Copilot — это всего лишь помощник, а вы отвечаете за разработку программного обеспечения.
Наконец, несмотря на то, что могут подумать некоторые люди, и даже несмотря на то, что горстка ютуберов, которых я не буду упоминать, показывают, как Copilot рассказывает анекдоты, отвечает на странные вопросы и говорит на темы, не связанные с кодированием, поскольку это был чат-бот общего назначения. , нет, второй пилот не умеет шутить. Это просто умная афера, чтобы получить много просмотров от тех, у кого еще не было возможности попробовать Copilot.
Как изменился мой рабочий процесс
Теперь давайте перейдем к самой важной части статьи: как Copilot повлиял на мой рабочий процесс и какие преимущества он привнес в мой опыт разработки.
Наиболее важным аспектом использования помощника по написанию кода ИИ является скорость, особенно для повторяющихся шаблонов или структур, которые не могут или не должны создаваться во время выполнения. Примером такой структуры является интерполяционная таблица, основная цель которой состоит в сокращении вычислений во время выполнения в обмен на память. Если вы не знакомы с таблицами поиска, я настоятельно рекомендую вам ознакомиться с моей статьей на эту тему, так как они являются мощным инструментом для повышения скорости выполнения ваших программ.
Еще одно большое улучшение в моем опыте программирования — это то, как быстро я могу осваивать новые API и фреймворки. Поскольку Copilot обычно уже знает технологии, с которыми я буду работать, он может легко предложить целые строки кода или шаблоны, характерные для конкретного контекста, в котором я работаю, что позволяет мне больше сосредоточиться на написании кода, а не на просмотре документации API. Тем не менее, я все же рекомендую прочитать документацию для структур и вызовов, которые не столь очевидны, поскольку они могут иметь некоторые детали реализации, о которых Copilot не знает.
И последнее, но не менее важное: моя скорость при прототипировании значительно возросла. Вы можете использовать алгоритмы, предложенные Copilot, или позволить им реализовать свои собственные, чтобы ускорить время написания кода. Затем вы можете реорганизовать и оптимизировать свой код после того, как вы создали доказательство концепции. Таким образом, вы не тратите свое драгоценное время на написание кода, который, вероятно, все равно придется переписывать.
Заключение
Подводя итог, можно сказать, что Copilot — отличный инструмент для разработчиков, позволяющий значительно повысить производительность за счет интеллектуального завершения кода в зависимости от контекста. Хотя он обычно хорош в своей работе и значительно ускоряет ваше письмо, он не может построить систему сам по себе, и его предложения не всегда уместны. Из-за этого вы всегда должны дважды проверять завершение кода на наличие возможных ошибок и нежелательных побочных эффектов. В конце концов, это всего лишь помощник ИИ, и вы отвечаете за разработку программного обеспечения.
Надеюсь, вам понравилась эта статья. Если вам есть что добавить или у вас есть другой опыт работы с Copilot, поделитесь своими мыслями в комментариях. Спасибо за прочтение!
Если вам понравилась эта статья и вы хотите узнать больше о Copilot, я предлагаю вам ознакомиться с этой историей ниже: