День 2682. #МоиИнструменты #Copilot
Как Эффективнее Использовать GitHub Copilot. Начало
Для большинства разработчиков важно использовать подходящие функции Copilot для тех задач, которые уже стоят перед вами. Наибольший прогресс обычно проявляется, когда вы начинаете использовать чат для поиска ответов и агента для выполнения задач. Visual Studio, Visual Studio Code, Copilot CLI и облачный агент — каждый инструмент отлично подходит для разных типов задач. Вопрос не в том, какой из них «самый продвинутый», а в том, какой из них подходит для работы, которую я выполняю прямо сейчас?
Реальные примеры использования чата
Чат полезен, когда требуется объяснение, сравнение, планирование или целевая генерация кода на основе вашего реального проекта.
Пример 1: Понимание сервиса перед его изменением в VS
Предположим, вы открываете существующий сервис ASP.NET Core и обнаруживаете класс с пятью зависимостями, несколькими флагами функций и бизнес-правилами, скрытыми в длинном методе. Прежде чем его изменять, используйте чат, чтобы сориентироваться.
Промпт:
Это гораздо лучше, чем просить о слепой переработке кода, и поможет вам понять существующую кодовую базу.
Пример 2: Создание тестов для бизнес-логики в VS
Представьте, что у вас есть метод ценообразования, который применяет скидки, ограничения и бонусы клиента. Вы можете написать первый тест для проверки работоспособности самостоятельно, а затем использовать чат для проверки граничных случаев.
Промпт:
Бонус: в VS, используйте Test Agent. В VS Code или CLI, используйте dotnet-test skill для достижения наилучших результатов. Это важный сценарий использования, поскольку нужны и результаты, и объяснение.
Пример 3: Планирование рефакторинга до изменения кода
Допустим, в контроллере слишком много логики, и вы хотите перенести проверку и оркестровку в сервис. Чат полезен перед редактированием.
Промпт:
Перед этим войдите в режим планирования, и Copilot создаст подробный план. Это хорошо работает в VS, т.к. вы уже видите соответствующие файлы и структуру решения.
Пример 4: Использование VS Code, когда изменение затрагивает код и конфигурацию
Распространённый сценарий в .NET — изменение API, описания OpenAPI, файла развёртывания и документации за один проход. Здесь поможет VS Code.
Промпт:
Здесь чат начинает восприниматься не как автозаполнение, а как коллега по работе. Он может помочь вам мыслить в масштабах всего репозитория, а не только файла перед вами.
Пример 5: Copilot CLI для анализа ошибки сборки
Если dotnet test или dotnet build завершаются с ошибкой, CLI — естественное место для работы, поскольку ошибка уже отображается в терминале.
Промпт:
Это лучше, чем копировать сообщение об ошибке в поисковую систему, потому что в CLI есть контекст вашего репозитория и цикла команд.
Окончание следует…
Источник: https://devblogs.microsoft.com/dotnet/doing-more-with-github-copilot/
Как Эффективнее Использовать GitHub Copilot. Начало
Для большинства разработчиков важно использовать подходящие функции Copilot для тех задач, которые уже стоят перед вами. Наибольший прогресс обычно проявляется, когда вы начинаете использовать чат для поиска ответов и агента для выполнения задач. Visual Studio, Visual Studio Code, Copilot CLI и облачный агент — каждый инструмент отлично подходит для разных типов задач. Вопрос не в том, какой из них «самый продвинутый», а в том, какой из них подходит для работы, которую я выполняю прямо сейчас?
Реальные примеры использования чата
Чат полезен, когда требуется объяснение, сравнение, планирование или целевая генерация кода на основе вашего реального проекта.
Пример 1: Понимание сервиса перед его изменением в VS
Предположим, вы открываете существующий сервис ASP.NET Core и обнаруживаете класс с пятью зависимостями, несколькими флагами функций и бизнес-правилами, скрытыми в длинном методе. Прежде чем его изменять, используйте чат, чтобы сориентироваться.
Промпт:
Объясни, за что отвечает сервис, определи ключевые зависимости и укажи, какие части относятся к бизнес-логике, а какие — к инфраструктурным задачам. Затем предложи безопасный первичный рефакторинг, который не изменит поведение.
Это гораздо лучше, чем просить о слепой переработке кода, и поможет вам понять существующую кодовую базу.
Пример 2: Создание тестов для бизнес-логики в VS
Представьте, что у вас есть метод ценообразования, который применяет скидки, ограничения и бонусы клиента. Вы можете написать первый тест для проверки работоспособности самостоятельно, а затем использовать чат для проверки граничных случаев.
Промпт:
Создай модульные тесты для этого метода, используя стиль тестирования этого проекта. Охвати граничные случаи скидок, обработку нулевых входных данных и случай, когда общая сумма ограничена. Объясни любые граничные случаи, которые легко пропустить.
Бонус: в VS, используйте Test Agent. В VS Code или CLI, используйте dotnet-test skill для достижения наилучших результатов. Это важный сценарий использования, поскольку нужны и результаты, и объяснение.
Пример 3: Планирование рефакторинга до изменения кода
Допустим, в контроллере слишком много логики, и вы хотите перенести проверку и оркестровку в сервис. Чат полезен перед редактированием.
Промпт:
Просмотри это действие контроллера и предложи рефакторинг, который перенесёт оркестровку в сервис без изменения HTTP-контракта. Покажи итоговую структуру контроллера, интерфейс сервиса и модульные тесты, которые нужно обновить.
Перед этим войдите в режим планирования, и Copilot создаст подробный план. Это хорошо работает в VS, т.к. вы уже видите соответствующие файлы и структуру решения.
Пример 4: Использование VS Code, когда изменение затрагивает код и конфигурацию
Распространённый сценарий в .NET — изменение API, описания OpenAPI, файла развёртывания и документации за один проход. Здесь поможет VS Code.
Промпт:
Я добавляю новый необязательный фильтр регионов к этой конечной точке. Обнови обработчик ASP.NET Core, скорректируй описание OpenAPI и найди любые конфигурации, документацию или клиентский код, которые также могут потребовать изменений.
Здесь чат начинает восприниматься не как автозаполнение, а как коллега по работе. Он может помочь вам мыслить в масштабах всего репозитория, а не только файла перед вами.
Пример 5: Copilot CLI для анализа ошибки сборки
Если dotnet test или dotnet build завершаются с ошибкой, CLI — естественное место для работы, поскольку ошибка уже отображается в терминале.
Промпт:
Объясни эту ошибку сборки простым языком, укажи, какой проект её вызвал, и предложи команды, которые я должен выполнить, чтобы сузить круг поиска.
Это лучше, чем копировать сообщение об ошибке в поисковую систему, потому что в CLI есть контекст вашего репозитория и цикла команд.
Окончание следует…
Источник: https://devblogs.microsoft.com/dotnet/doing-more-with-github-copilot/
👍5👎1
День 2683. #МоиИнструменты #Copilot
Как Эффективнее Использовать GitHub Copilot. Окончание
Начало
Как выглядят хороший промпт
Для работы с .NET лучшие промпты обычно включают:
- цель,
- вывод кода или команды,
- ограничение,
- ожидаемую форму ответа.
Например:
Чем больше подсказка похожа на реальный комментарий из обзора кода или инженерную задачу, тем полезнее, как правило, оказывается ответ.
Работа с агентами
Агенты наиболее полезны, когда задача многоэтапная, ограниченная и подлежащая проверке. Вы не просто запрашиваете ответ, а просите Copilot выполнить определённую работу.
Пример 1: Устранение пробелов в тестировании функции
Предположим, в ASP.NET Core API добавлена новая функция, но был протестирован только «счастливый» сценарий.
Задача:
Пример 2: Рефакторинг повторений
Во многих кодовых базах повторяется один и тот же шаблон в нескольких местах. Рефакторить это утомительно для человека, но часто хорошо подходит для агента.
Задача:
Пример 3: Copilot CLI для цикла исправления и проверки
CLI полезен, когда задача естественным образом включает команды, вывод и итерацию.
Задача:
Это хорошая задача для CLI, поскольку весь рабочий процесс уже находится в терминале: проверка, запуск, исправление, повторный запуск и объяснение.
Пример 4: Облачный агент для изменения нескольких файлов
Облачный агент особенно полезен, когда у вас есть реальная задача, которая может выполняться в фоновом режиме и возвращаться в виде черновика для проверки.
Задача:
Это задача для облачного агента, т.к. она достаточно широка, чтобы извлечь выгоду из делегирования, но при этом достаточно конкретна, чтобы тщательно её проверить.
Выбор между чатом и агентом
Используйте чат, когда нужна помощь в понимании, сравнении, описании, объяснении или составлении черновика.
Используйте агента, когда нужна помощь в изменении, проверке, обновлении, повторном запуске и предоставлении результата, пригодного для проверки.
Полезные советы
Независимо от того, используете ли вы чат или агентов, несколько привычек очень важны:
- задавайте задаче границы,
- явно указывайте ограничения,
- указывайте Copilot, что не должно меняться,
- запрашивайте вывод в удобном формате,
- проверяйте результат так же, как вы бы проверяли пул-реквест коллеги.
Источник: https://devblogs.microsoft.com/dotnet/doing-more-with-github-copilot/
Как Эффективнее Использовать GitHub Copilot. Окончание
Начало
Как выглядят хороший промпт
Для работы с .NET лучшие промпты обычно включают:
- цель,
- вывод кода или команды,
- ограничение,
- ожидаемую форму ответа.
Например:
Переработай этот фоновый процесс, чтобы упростить тестирование политики повторных попыток. Сохрани публичное поведение без изменений, сохрани структурированное логирование и покажи тестовые случаи, которые нужно добавить.
Чем больше подсказка похожа на реальный комментарий из обзора кода или инженерную задачу, тем полезнее, как правило, оказывается ответ.
Работа с агентами
Агенты наиболее полезны, когда задача многоэтапная, ограниченная и подлежащая проверке. Вы не просто запрашиваете ответ, а просите Copilot выполнить определённую работу.
Пример 1: Устранение пробелов в тестировании функции
Предположим, в ASP.NET Core API добавлена новая функция, но был протестирован только «счастливый» сценарий.
Задача:
Добавь недостающие тесты для процесса CreateOrder. Охвати ошибки валидации, обнаружение дубликатов заказов и случай таймаута платежа. Сохрани существующий стиль тестирования, не переименовывай публичные API и остановись после прохождения новых тестов.
Пример 2: Рефакторинг повторений
Во многих кодовых базах повторяется один и тот же шаблон в нескольких местах. Рефакторить это утомительно для человека, но часто хорошо подходит для агента.
Задача:
Обнови обработчики уведомлений в этом проекте, чтобы использовать общий шаблон Result<T> вместо генерации исключений валидации. Сохрани текущее поведение, обнови затронутые модульные тесты и кратко опиши, какие обработчики изменились.
Пример 3: Copilot CLI для цикла исправления и проверки
CLI полезен, когда задача естественным образом включает команды, вывод и итерацию.
Задача:
Исследуй причину сбоя dotnet test в проекте Notifications.Tests, внеси минимальное исправление, устраняющее первопричину, повторно запусти тесты и кратко опиши изменения.
Это хорошая задача для CLI, поскольку весь рабочий процесс уже находится в терминале: проверка, запуск, исправление, повторный запуск и объяснение.
Пример 4: Облачный агент для изменения нескольких файлов
Облачный агент особенно полезен, когда у вас есть реальная задача, которая может выполняться в фоновом режиме и возвращаться в виде черновика для проверки.
Задача:
Добавь распространение correlation ID в API и конвейер фоновых рабочих процессов. Обнови промежуточное ПО, обогащение логов и интеграционные тесты, проверяющие прохождение заголовка. Не меняй несвязанный формат логов и опиши любую последующую работу, если обнаружишь пробелы за пределами этого раздела.
Это задача для облачного агента, т.к. она достаточно широка, чтобы извлечь выгоду из делегирования, но при этом достаточно конкретна, чтобы тщательно её проверить.
Выбор между чатом и агентом
Используйте чат, когда нужна помощь в понимании, сравнении, описании, объяснении или составлении черновика.
Используйте агента, когда нужна помощь в изменении, проверке, обновлении, повторном запуске и предоставлении результата, пригодного для проверки.
Полезные советы
Независимо от того, используете ли вы чат или агентов, несколько привычек очень важны:
- задавайте задаче границы,
- явно указывайте ограничения,
- указывайте Copilot, что не должно меняться,
- запрашивайте вывод в удобном формате,
- проверяйте результат так же, как вы бы проверяли пул-реквест коллеги.
Источник: https://devblogs.microsoft.com/dotnet/doing-more-with-github-copilot/
👍3👎2