Рефакторинг коду з використанням GitHub Copilot режимів чату
GitHub Copilot можна використовувати для рефакторингу коду у вашій кодовій базі. Ви можете використовувати агенти Chat View для аналізу, планування та реалізації завдань рефакторингу коду. Агенти перегляду чату забезпечують зручний інтерфейс для керування чат-розмовами та доступу до функцій GitHub Copilot. Перегляд чату включає такі вбудовані агенти:
- Запитуйте: Використовуйте Ask, щоб ставити запитання про вашу кодову базу або технологічні концепції. Ви можете використовувати Ask для пояснення коду, пропозицій змін чи виправлень, або надходження інформації, пов'язаної з кодом.
- План: Використовуйте агент плану для створення структурованого покрокового плану реалізації перед написанням будь-якого коду. Коли план виглядає правильно, передайте його агенту з реалізації для виконання.
- Агент: Використовуйте агент для початку робочого процесу з агентного кодування. Ви можете використовувати Agent для виконання команд, виконання коду або інших завдань у вашому робочому просторі.
Важливо
Коли ви користуєтеся агентом, GitHub Copilot можете робити кілька преміум-запитів для виконання одного завдання. Преміум-запити можуть використовуватися для підказок, ініційованих користувачами, та подальших дій GitHub Copilot які виконує від вашого імені. Загальна кількість використаних преміум-запитів залежить від складності завдання, кількості кроків і вибраної моделі.
Використовуйте Ask для рефакторингу коду
Ви можете використовувати Ask, щоб отримати допомогу з програмуванням, зрозуміти складні концепції та покращити свій код. Ask призначений для інтерактивних розмов із GitHub Copilot Chat. Ви можете ставити запитання, отримувати пояснення або запитувати пропозиції в режимі реального часу.
Відкрийте перегляд чату і виберіть Запитати.
Додайте контекст до чату.
Ask підтримує учасників чату, слеш-команди та змінні чату. Ви можете додати
#codebaseучасника чату або#codebaseдо чату, щоб надати контекст разом із файлами чи папками.Поставте запитання, які допоможуть зрозуміти код, який потрібно відродити, і зміни, які потрібно внести.
Наприклад, ви можете попросити GitHub Copilot допомогти вам зрозуміти ваш існуючий код автентифікації, як оновити поточний метод за допомогою OAuth.
Створіть запит, який описує оновлення, яке потрібно реалізувати.
Запит має містити опис функції коду, яку потрібно реалізувати. Наприклад,
#codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files. Explain how to update the EnumHelper class using dictionaries and show me the updated code.Перегляньте запропонований код у поданні чату.
Відповідь, що відображається в поданні чату, міститиме фрагмент коду, який можна використовувати для реалізації цієї функції. Ви можете ввести оновлені запити, щоб уточнити код, або запитати додаткові відомості.
Щоб реалізувати запропонований код, можна навести курсор миші на фрагмент коду і вибрати між опціями Apply, Insert і Copy .
- Apply: Застосовує пропозицію коду до поточного файлу в редакторі.
- Вставка: Вставляє пропозицію коду в поточну позицію курсора в редакторі.
- Копія: Копіює пропозицію коду в планшет.
Перевірте свій відшкодований код, щоб переконатися, що він працює без помилок і генерує очікуваний результат.
Використовуйте Plan для рефакторингу коду
Ви можете використовувати агент плану, коли хочете створити структурований, покроковий план впровадження перед внесенням змін. Агент плану аналізує вашу кодову базу, ставить уточнюючі запитання та готує детальний план. Коли план виглядає правильно, ви можете передати його агенту впровадження для його виконання.
Порада
Використовуйте Ask, щоб оцінити код, який ви хочете рефакторити, і оцініть свої варіанти перед тим, як почати змінювати. Ви можете використати Plan для створення структурованого плану, а потім передати його агенту з впровадження.
Відкрийте перегляд чату та виберіть План.
Додайте контекст до чату.
Вкажіть контекст робочого простору за допомогою
#codebaseта додаючи файли до чату.Створіть запит, який описує функцію коду, яку потрібно реалізувати.
Запит має містити опис функції коду, яку потрібно реалізувати. Наприклад,
#codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files.Перегляньте структурований план впровадження, який GitHub Copilot створює.
Агент плану створює покроковий план, який ви можете переглянути перед внесенням будь-яких змін у кодексі.
Коли план виглядає правильно, передайте його агенту з реалізації для виконання.
Ви можете передати план агенту, щоб він застосував зміни до вашої кодової бази.
Перегляньте запропоновані зміни в редакторі коду.
Прийняття або скасування запропонованих змін.
Ви можете переходити між змінами за допомогою стрілок вгору та вниз. Ви можете зберегти (прийняти) або Скасувати (скасувати) запропоновані зміни окремо за допомогою спливаючого меню, яке відображається над кожним редагуванням. Ви також можете прийняти або відхилити всі правки одночасно, використовуючи кнопки «Залишити » та «Скасувати » внизу вкладки редактора (або перегляду чату).
Перевірте свій відшкодований код, щоб переконатися, що він працює без помилок і генерує очікуваний результат.
Використовуйте агент для рефакторингу коду
Ви можете використовувати агента, коли хочете автоматизувати процес рефакторингу коду. Агент діє як автономний агент, який може діяти від вашого імені. Ви можете попросити GitHub Copilot виконати конкретні завдання, і він генерує код на основі ваших запитів.
З Agent ви можете використовувати природну мову для визначення високорівневого завдання, дозволяючи GitHub Copilot самостійно обміркувати запит, планувати необхідну роботу та застосовувати зміни до вашої кодової бази. Агент використовує поєднання редагування коду та виклику інструментів для виконання заданого вами завдання. Коли запит обробляється, він відстежує результати змін і інструментів, а також ітерує для вирішення будь-яких проблем, які виникають.
Важливо
Коли ви користуєтеся агентом, GitHub Copilot можете робити кілька преміум-запитів для виконання одного завдання. Преміум-запити можуть використовуватися для підказок, ініційованих користувачами, та подальших дій GitHub Copilot які виконує від вашого імені. Загальна кількість використаних преміум-запитів залежить від складності завдання, кількості кроків і вибраної моделі.
Відкрийте перегляд чату та виберіть Агент.
Створіть завдання, яке описує завдання, яке ви хочете виконати, GitHub Copilot виконати.
Припустімо, у вас є проект коду, який використовує кілька процесів або методів для виконання одного завдання. Ви можете попросити GitHub Copilot рефакторити ваш код, використовуючи єдиний підхід, щоб покращити послідовність, обслуговуваність і продуктивність.
Наприклад,
Review the LINQ code used in the JsonData and JsonLoanRepository classes. Refactor the methods in the JsonPatronRepository class using LINQ queries. Ensure that existing code functionality is maintained.Агент може викликати кілька інструментів для виконання різних завдань. За потреби клацніть піктограму Знаряддя, щоб настроїти засоби, які можна використовувати для відповіді на ваш запит.
Підтвердьте виклик інструментів і команди терміналів.
Перед тим, як GitHub Copilot виконає термінальну команду або інструмент, який не вбудований, він запитує підтвердження для продовження. Підтвердження потрібне, оскільки засоби можуть працювати локально на комп'ютері та виконувати дії, які змінюють файли або дані.
GitHub Copilot виявляє проблеми в редагуванні коду та термінальних командах, а також ітерує та виконує дії для їх вирішення.
Важливо
Хоча GitHub Copilot здатний до самозцілення, він не завжди може самостійно вирішувати проблеми. Ви можете призупинити процес і надати більше контексту, щоб допомогти GitHub Copilot зрозуміти проблему. Ви також можете скасувати цей процес і почати все спочатку з нового запиту.
Перегляньте запропоновані зміни та прийміть або скасуйте запропоновані зміни.
Перевірте свій відшкодований код, щоб переконатися, що він генерує очікуваний результат.
Агент має самостійно вирішувати проблеми, але ви все одно повинні протестувати код, щоб переконатися, що він працює як треба.
Ви можете скасувати правки, зроблені агентом, за допомогою кнопки «Скасувати » у перегляді чату. Ви також можете скористатися опцією Revert в редакторі, щоб скасувати зміни, внесені агентом.
Коли обирати агента замість плану
Розгляньте такі критерії для вибору між планом і агентом:
- Планування: План створює структурований покроковий план реалізації перед написанням будь-якого коду. Агент автономно визначає відповідний контекст і файли для редагування і починає безпосередньо вносити зміни.
- Складність завдання: Агент краще підходить для складних завдань, які потребують як редагування коду, так і виклику інструментів або термінальних команд.
- Тривалість: Агент використовує кілька кроків для обробки запиту, тому генерація відповіді може зайняти більше часу. Наприклад, щоб визначити відповідний контекст і файли для редагування, визначте план дій тощо.
- Самозцілення: Агент оцінює результати згенерованих правок і може кілька разів ітерувати для вирішення проміжних проблем.
- Квота запитів: Коли ви використовуєте режим агента, залежно від складності завдання, один запит може призвести до великої кількості запитів до бекенду.
Зведення
GitHub Copilot можна використовувати для рефакторингу коду у вашій кодовій базі. Ви можете використовувати агенти Chat View для аналізу, планування та реалізації завдань рефакторингу коду. Перегляд чату включає три вбудовані агенти: Запитай, Плануй і Агент. Ви можете використовувати Ask, щоб ставити запитання про вашу кодову базу або технологічні концепції. Ви можете використовувати Plan для створення структурованого плану реалізації перед написанням коду. Ви можете використовувати Agent для початку робочого процесу агентного кодування.