📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

GitHub Copilot CLI in Action: Getting Started

Dan Wahlin23:29

Transcription

Что такое GitHub Copilot CLI? Зачем его использовать? И как начать им пользоваться? Ну, об этом мы и поговорим в этом видео. Итак, прежде всего, если вы хотите им воспользоваться, вы можете перейти на сайт github.com/features/copilot/cli, URL, который вы видите здесь на экране. И существует множество способов его установки: от Homebrew до скрипта Windgit, если вы используете Windows, или mpm, просто зависит от того, что вам нравится. Но как только вы его установите, вы сможете использовать его для генерации кода, проверки кода, просмотра PR, отправки PR, и этот список можно продолжать бесконечно. Лично я являюсь большим поклонником Cloud Code и Codeex, например. Я активно использовал оба этих инструмента за последние 6 месяцев или около того. И Copilot CLI, хотя он и появился на сцене немного позже, теперь является одним из моих любимых. Теперь, самые проницательные из вас могут сказать: "Да, Дэн, ты работаешь на Microsoft. Конечно, ты будешь так говорить". И если бы вы знали меня, вы бы знали, что нет, это неправда. [смех] Если мне что-то не нравится, я просто не буду об этом говорить. Я не буду много об этом говорить. Я не буду это продвигать, если я не верю в то, что он делает. И поэтому это то, о чем я могу сказать с уверенностью, потому что я использовал его, я не знаю, сколько часов уже, но много, и он работает чрезвычайно хорошо, и он теперь на одном уровне с моим использованием Cloud Code и моим использованием Codeex, и я использую все три часто. Я использую их для проверки кода, например, потому что у каждого из этих AI-ассистентов на основе CLI есть разные оболочки и, конечно же, разные модели, и мне нравится сравнивать их друг с другом, смотреть, что они мне дают, а затем получать консенсус.

Итак, если вы хотите начать с этого, вам придется его установить. Следующий вопрос, конечно, почему бы его устанавливать? Зачем мне это делать вместо использования GitHub Copilot, который работает прямо в VS Code или в Visual Studio, или Xcode, или инструментах Jet Brains, или других. И ответ действительно прост: это просто зависит от ваших предпочтений. Я часто бываю в терминале, потому что я выполняю различные команды сервера или проверяю журналы или что-то еще. Я много работаю с Docker-контейнерами, например, обычно это делается в терминале. Так что для меня это был просто естественный способ делать то, что я уже делал. И многие AI-инструменты должны интегрироваться с командами терминала в любом случае. И поэтому это просто ощущалось очень естественно, супер быстро, и мне это нравится. Теперь, означает ли это, что мне не нравится графический подход, который вы можете использовать с GitHub Copilot и VS Code? Нет. Я на самом деле все еще использую это время от времени, но моим основным инструментом в наши дни определенно является CLI. Это просто мои предпочтения.

Теперь, сказав это, мы только что выпустили новый курс по этому поводу. Так что, если вы хотите начать с ним работать, он будет содержать гораздо больше, чем я могу охватить в этом видео, но вы можете перейти на gh.io/copilot-cli-course. Опять же, я выведу это на экран здесь. И если вы прокрутите вниз, там будет рассказано, о чем все это. Но мне нравится эта строка здесь, которую мы добавили. "Научитесь ускорять свой рабочий процесс разработки с помощью AI-ассистента командной строки". Теперь вы можете использовать это буквально для очистки, я не знаю, старых файлов на вашем жестком диске, например. Как будто он это сделает, если вы захотите. Вам придется быть очень осторожными, потому что, конечно, вы не хотите удалять вещи, которые не должны были быть удалены. Но он действительно мог бы это сделать. Или он мог бы создавать полноценные приложения. Он мог бы создавать API. Он может проводить проверки кода. И опять же, список можно продолжать и продолжать, чтобы понять, почему бы я это использовал.

Теперь, если вы никогда раньше не сталкивались с чем-то подобным, прокрутите вниз. Во-первых, будет хорошее сравнение с тем, как это соотносится с GitHub Copilot, или есть Copilot на GitHub, есть GitHub Copilot coding agent на GitHub, и, знаете, существует множество вариантов. Мы сосредоточимся здесь на CLI, но если вам интересно, есть ссылки для сравнения. И вы можете увидеть сводку здесь. Теперь, в этом курсе, я бы рекомендовал начать с "быстрого старта", если вы собираетесь пройти это видео со мной, потому что он не только поможет вам установить его, вы войдете в систему, он проведет вас через этот процесс, но вы также выполните свою первую команду Copilot. Я сделаю это через секунду. Но это отличный способ начать. А затем, если вы хотите узнать больше, вы узнаете о контексте, разговорах, рабочих процессах, навыках, MCP и агентах, и здесь есть много всего хорошего. Так что проверьте это, если вам интересно.

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

Теперь, прежде чем мы перейдем к этому, давайте сразу перейдем в терминал. Итак, поскольку я его установил, я собираюсь просто набрать Copilot. Здесь появится классный баннер. Вы можете настроить его так, чтобы он всегда появлялся, если хотите, в настройках. Напоминает мне старые добрые видеоигры 80-х или что-то в этом роде. Мне нравится. Теперь, первое, что я сделаю, это осмотрюсь. Итак, вы заметите, что наверху я вижу версию. Есть несколько подсказок. Внизу я вижу используемую модель. Я покажу вам, как мы можем ее изменить. У меня здесь загружено много всего. Мы пропустим это и, возможно, поговорим об этом в будущих видео. Но давайте просто скажем, что вы можете для меня сделать? Обычно это приведет к проверке документации, а затем к возвращению и предоставлению сводки. Вероятно, я скажу, что могу отлаживать, писать код, работать над PR, и тому подобное. Так что да, я могу помочь с большинством задач разработки на основе терминала. Понимать кодовую базу, редактировать файлы, реализовывать функции, отлаживать, и все в таком духе. А затем обратите внимание, что он дает мне пару команд. Он может проводить проверки кода. Так что вы можете ввести /review, дать ему подсказку о том, что вы хотите, чтобы он проверил. Я хочу проверить эти API на безопасность или что-то еще. Вы можете это сделать. /PR может быть использован для работы с запросами на слияние, которые у вас могут быть. Супер круто.

Теперь я использую GPT-4, но одна из приятных особенностей Copilot CLI — это выбор модели. Как я уже говорил, я большой поклонник некоторых других CLI-инструментов, потому что я часто использую их все одновременно. Но одна из отличительных черт Copilot CLI заключается в том, что если я перейду к модели, здесь есть много разных моделей, которые вы можете использовать. И поэтому вы можете увидеть все это здесь, что на самом деле довольно круто. Теперь я оставлю его на GPT-4, но, например, если бы мы провели проверку кода, я мог бы сказать что-то вроде этого. Проверить, я не знаю, проверить API, используя, я мог бы сказать GPT-4, Opus 4.6, знаете, какую-то другую. Он фактически получит консенсус по всем трем. Так что вместо одной точки зрения вы могли бы иметь три точки зрения, что очень круто, если вы занимаетесь проверкой кода и тому подобным. Я не скажу, что это замена человеческой проверке, потому что я так не думаю, но это очень полезно. Я проверяю почти после каждой добавленной функции, я мгновенно провожу проверку. После любого изменения, которое я вношу, я провожу проверку. Я постоянно заставляю его оценивать код, который он пишет. Так что это довольно круто.

Теперь я уже показал вам /model и /plan. Мы сделаем это по-другому. Но если я перейду к плану, я могу перейти в так называемый режим плана. Теперь я покажу вам другой способ сделать это, еще один способ. Итак, давайте сделаем что-нибудь полезное. Итак, я очищу контекст. Теперь я быстро покажу вам. Если я наберу /context, эти команды с косой чертой, посмотрите, что мне дается. Итак, я упомянул ранее, что у меня есть MCP и навыки, и агенты. У меня сейчас загружено все, что не всегда хорошо, потому что обратите внимание, что это занимает 24% моего общего окна, которое может быть отправлено AI-модели. И если вы новичок в этом, вы можете почти представить себе, что у вас есть окно в дом, и вы вливаете воду из шланга в дом. Как только вы наполните этот дом водой, вода начнет выливаться, и вы ее потеряете, понимаете? Ну, мы этого не хотим. И поэтому у нас здесь еще много места. Осталось 60%. 15% зарезервировано в качестве буфера, потому что как только это окно заполнится, Copilot сожмет его, а затем передаст сводку того, что только что произошло в этом последнем окне, в новое окно. И это происходит автоматически. Но это хороший способ взглянуть на контекст. Теперь я очищу его. Скажу очистить контекст. Теперь я нахожусь в папке desktop/test, и я собираюсь сказать: "Создай приложение NodeJS CLI hello world". Хорошо, вот и все. Теперь это ужасная подсказка. Очень расплывчатая, но эй, это hello world. Так что посмотрим, что получится. С помощью магии видео я ускорю это для вас. Хорошо.

Итак, вы увидите, что он создаст крошечный CLI в новой папке и проверит его работоспособность. Похоже, он добавил задачу, потому что у него есть небольшая база данных, где он отслеживает: мне нужно сделать это, это и это. Этот настолько прост, что, похоже, всего одна задача. Хорошо. И теперь он спрашивает меня, нормально ли мне продолжить, потому что теперь он начнет создавать папку и добавлять файлы и все эти вещи, которые вы, возможно, захотите, особенно когда вы новичок в этом, проверить, что вы с этим согласны. Так что я собираюсь сказать "да", но я скажу "да". Не спрашивайте меня снова о таких вещах. Так что я просто нажму Enter. И теперь он начнет создавать все это для нас. Хорошо, он закончил. Это было довольно быстро, потому что, знаете, это Hello World. Так что он создал автономное приложение Node.js. Hello world CLI. Показывает, что есть package.json. Есть индекс. И если я перейду, позвольте мне открыть новую вкладку. И давайте сделаем ls. Вот оно. Так что у нас есть hello world CLI. Давайте перейдем в него. Давайте сделаем ls. И похоже, у нас есть index.js и package.json. Хорошо, вполне нормально. Давайте сделаем cat на package.json. И вы можете видеть, что он чрезвычайно минималистичен. Но у него есть npm start. Так что он запустит node index.js. Хорошо, начало положено. Давайте сделаем cat index.js. И, как и следовало ожидать, он чрезвычайно минималистичен. Консольный вывод "hello world". Хорошо, очень просто, но это то, что он может для нас сделать. Итак, закроем это. И хорошо. Так что у нас есть наша первая вещь. И он уже проверил, что она работает. Он фактически проверил ее тремя разными способами, что, вероятно, избыточно, но эй, это круто.

Теперь я очищу. Так что я очищу контекст. И снова, если я перейду к /context, обратите внимание, что у меня сейчас 0% использовано для моих сообщений, потому что я только что очистил его. Хорошо, это хорошо. Хорошо. Хорошо. Теперь у меня есть этот GitHub Copilot get started. И это погодный вид. И внутри этого проекта у меня есть некоторые подсказки. Теперь я не буду запускать все эти. Я просто возьму эту. Я хотел бы создать веб-сайт под названием weatherview, который выглядит очень профессионально. Он получает погоду из этого API openweathermap.com и отображает карточки для следующих 5 дней погоды, типа того. Так что очень просто. Но давайте поиграем с этим. Теперь, что я собираюсь сделать, даже если это то, что я мог бы просто дать ему подсказку, и он справится довольно хорошо, я покажу вам еще один маленький трюк. Вы заметите, что у меня есть этот shift-tab switch mode. Позвольте мне сделать это. Shift-tab. А, режим плана. Круто. Автопилот. Это похоже на то, как просто позволить ему работать, выполнять множество вещей и просто продолжать, пока он не закончит. И тогда мы вернемся в обычный интерактивный режим, как мы его называем. Так что я перейду в режим плана. Обратите внимание, что говорится "опишите план". Хорошо. Так что я вставлю: "Я хотел бы создать веб-сайт". Теперь, что я обычно делаю в конце этого, это говорю: "Есть ли у вас вопросы ко мне?", потому что часто, даже если вы написали более подробную подсказку для планирования, в ней все равно есть некоторая расплывчатость. И часто он это улавливает, а затем начинает задавать вам вопросы. Теперь посмотрим, сделает ли он это для этого, потому что это довольно простой запрос. Но теперь мы перейдем в режим планирования. Хорошо. Так что давайте сделаем это.

Теперь, пока он это делает, я сделаю кое-что здесь. Я создам еще одну вкладку и сделаю здесь mkdir. Назовем ее weather. И затем мы перейдем в нее. И тогда мы могли бы начать копировать это. Но я покажу вам другой способ. Итак, теперь у нас есть эта пустая папка, и вы заметите, что она проверяет доступные проекты, чтобы увидеть, как сформировать план. Теперь я нажму Escape. Я хотел показать вам это, потому что если мы вернемся, и позвольте мне фактически подняться на уровень выше и сделать ls. Видите, как у меня здесь есть все эти другие вещи? To-dos. И это на самом деле то, над чем я работаю по-настоящему для работы. Hello world CLI. Это то, что мы только что сделали. Скопированный агент, размещенный autocloud, знаете, все эти разные вещи. Так что я на самом деле не хочу, чтобы он смотрел на эти другие вещи. Он как бы рассматривает это как, о, у вас уже есть подпапки для существующего проекта или что-то в этом роде. На самом деле мы этого не хотим. Так что, если я сделаю /CWD или /CD, обратите внимание на CWD или смену рабочего каталога. И обратите внимание, что он дает мне список. Ну, я спущусь до weather и обратите внимание, где мы сейчас. Мы в desktop/test/weather. Теперь, что это сделало, это фактически исключило контекст, который у меня был бы раньше со всеми этими другими вещами, потому что он делал глоббинг и перечислял каталоги, и поскольку он не знал, он думал, что я начал проект, например, там могли быть уже доступны API. Так что я сделаю clear. Мы очистим контекст. Я вставлю свой план обратно, которого у меня, видимо, нет. Давайте возьмем это снова. Вставим это. Есть ли у вас вопросы ко мне? И давайте запустим его снова. Так что я хотел показать вам, что если вы начинаете с чего-то, где уже есть код, нет реального способа узнать, следует ли его использовать. Теперь, мог ли я обновить подсказку, чтобы сказать "не смотрите на другие папки"? Конечно. Но я просто хотел показать вам, что если вы начинаете с нуля, вы, возможно, захотите это сделать. Так что проверка того, что уже есть в проекте, там ничего нет, так что, надеюсь, он не сделает многого. И тогда он должен сделать. Хорошо, вот оно. Я могу смотреть на пустой каталог. Так что мне нужно создать план. Ну, вот почему мы перешли в режим плана. Так что я планирую с чистого листа, а не адаптирую существующее приложение. И именно поэтому я начал с некоторых папок, потому что я хотел показать вам, что он пытается быть полезным. Но в этом случае я говорю: "Нет, я этого не хочу". Теперь посмотрите на это. Он создал документ планирования. Теперь я часто, даже если вы можете получить к ним доступ, скажу ему сохранить результат плана в папке, и я помещу точку plans, и мне действительно нравится их хранить, потому что часто я возвращаюсь и смотрю, как я начал конкретный проект.

Хорошо, теперь он спрашивает, какой стек вы хотите использовать, потому что это была пустая папка, ничего нет. Так что вы хотите Next.js, вы хотите React и Vite и Typescript? Обычный HTML, CSS, знаете, JavaScript. Посмотрим, насколько хорошо он справится только с обычным. Давайте оставим его минималистичным. И посмотрим, что получится. Так что я собираюсь с этим согласиться, а затем с помощью магии видео я ускорю это для вас. Хорошо. Итак, для V1, должен ли Weatherview включать поиск города? Хорошо. Это на самом деле хороший вопрос. Или должна быть локация по умолчанию? Давайте сделаем поиск города. Это имеет смысл. Теперь имейте в виду, он еще не начал кодировать вообще. Мы только планируем. Это как сидеть на совещании и начинать проходить, знаете, возможно, вы обходите комнату со стейкхолдерами и собираете первоначальные функции для первого спринта или как бы вы это ни делали. Хорошо, он говорит, что план готов. Хотим ли мы принять план и построить на основе разрешений по умолчанию? Хорошо, выйти из режима плана, и я сам выполню подсказки. Принять план и построить на автопилоте. Теперь я собираюсь сделать это, потому что это запустит его и просто продолжит и просто будет работать, пока не закончит. Действительно, действительно круто, на самом деле. Так что позвольте мне выбрать это. Теперь я включу все разрешения, но именно здесь, знаете ли, вы хотите быть осторожны. Я нахожусь в своего рода тестовой области, или если вы находитесь в песочнице, то, вероятно, не беспокоитесь о разрешениях. Но если вы находитесь в области, где есть, я не знаю, какие-то конфиденциальные файлы или что-то еще, во-первых, я бы рекомендовал работать где-нибудь еще, в другой области вашего компьютера. Но здесь, знаете ли, вы хотите использовать здравый смысл. Теперь я в порядке с тем, где он работает, так что я не очень беспокоюсь об этом. Так что я включу все. Теперь обратите внимание здесь, внизу, он теперь в режиме автопилота. Хорошо, круто. Хорошо, план готов. Обратите внимание, что он сказал, что сохранил его здесь. Я обнаружил, что проект в настоящее время пуст. Так что он сделает все эти вещи. Обычный API прогноза открытых данных, API геокодирования. Это круто. Профессиональный стиль панели, все эти хорошие вещи. Так что у меня есть план. Он переходит к реализации, потому что мы на автопилоте. Так что снова я ускорю это для вас.

Теперь, несколько вещей, которые вы можете заметить здесь. Он фактически говорит: "Эй, может быть, я буду использовать debounce". Хорошо, это круто. Так что он не вызывает API слишком часто. Я также говорил об этом немного раньше, имея некоторые скелетные карточки, потому что, знаете, пока вы не вызовете API и не получите данные, это просто будет пустая страница. Так что посмотрим, как это получится. Но вы можете видеть, что он много думает, и я использую только GPT-4 medium. Если бы я использовал high, он думает еще больше, но он действительно обдумывает это и задает вопросы, как бы мы спрашивали. Хорошо. Теперь он пробует слой данных API. Похоже, он проверяет. Запускает сервер, чтобы попробовать. И вот здесь обычно мне пришлось бы перейти в окно терминала, чтобы запустить команду. И поскольку мы уже находимся в окне терминала, это просто очень приятно. Я имею в виду, я действительно больше не набираю команды терминала, потому что я могу просто сказать ему: "Эй, сделай это", и он пойдет и выполнит эту команду прямо здесь, что очень приятно. Хорошо, так что он говорит, что все готово. Теперь давайте скажем, что мы хотим знать, как я могу это запустить? Как я могу это запустить? И давайте посмотрим, что он говорит здесь. Хорошо, он уже запустил сервер. Так что давайте возьмем это сейчас. И момент истины, барабанная дробь, пожалуйста, здесь, народ. Так что давайте перейдем сюда. И вот оно. Хорошо. Мне не нравятся цветовые решения, должен признаться. Но это легко исправить. Обратите внимание, что он уже вставил здесь Сиэтл. И поэтому мы будем искать. И еще одна вещь, я в США. Мы не сказали ему, хотим ли мы использовать, знаете ли, Цельсия или Фаренгейта. Теперь все мои друзья за пределами США, которые используют Цельсия, вы говорите: "Нет, это правильный путь". И это, вероятно, так и есть. Но обратите внимание, у нас есть 5-дневный прогноз, быстрый поиск города. Так что я живу в районе Финикса, Аризона. Давайте попробуем. О, здорово. Он даже вставил что-то вроде автозаполнения. Давайте попробуем. И да, вот оно. Это на самом деле примерно правильно. Я знаю Цельсий достаточно хорошо, чтобы понимать, что происходит. Похоже, у нас будет немного ветра. О, и еще несколько карточек здесь. Теперь в репозитории, если мы вернемся сюда, у меня есть некоторые другие вещи, например: "Давайте добавим тесты Playwright". Могли бы вы использовать это для создания скриншотов? Я, вероятно, зайду, потому что мы ничего не говорили о цветах. И я мог бы даже сказать: "Давайте сделаем светлый режим, темный режим, например". Но, знаете, не так уж плохо для начала. Как будто это действительно, действительно хорошая отправная точка. Теперь мы можем просто уточнить цвета и все такое. Но эй, даже он придумал "weather intelligence refined". Да, конечно.

Вот и все. Это введение в GitHub Copilot, от Hello World до фактического создания чего-то. Надеюсь, это даст вам хорошее представление. Добавьте любые комментарии, если у вас есть вопросы по этому поводу. Я надеюсь сделать еще несколько видео в ближайшем будущем. Но опять же, если вы хотите углубиться, проверьте этот курс "Copilot CLI для начинающих". Но спасибо, что присоединились, и подписывайтесь и ставьте лайки, и знаете, все то, что люди любят говорить на YouTube, потому что я надеюсь, что сделаю для вас еще кое-что. Большое спасибо.