Praktik terbaik untuk peningkatan GitHub Copilot

Ikuti panduan ini untuk mendapatkan hasil terbaik dari peningkatan GitHub Copilot saat meningkatkan proyek .NET.

Sebelum Anda mulai

Siapkan proyek Anda sebelum memulai peningkatan untuk mendapatkan hasil terbaik.

Pastikan bahwa solusi Anda dibangun dengan benar dan semua ujian lulus.

Agen memvalidasi perubahan yang dilakukannya dengan menjalankan build dan pengujian. Jika solusi Anda sudah rusak sebelum memulai, agen tidak dapat membedakan kegagalan yang sudah ada sebelumnya dari masalah yang diperkenalkannya.

Dokumentasikan kegagalan scenario-instructions.md pengujian yang diketahui sehingga agen tahu untuk mengabaikannya.

Mengkomit atau menyisihkan pekerjaan yang belum dikomitmenkan

Mulailah dengan direktori kerja yang bersih untuk menghindari pencampuran perubahan yang belum dikomit dengan modifikasi oleh agen. Garis besar yang bersih memudahkan untuk meninjau atau mengembalikan perubahan.

git stash
git status

Mencadangkan repositori non-Git

Agen juga bekerja dengan folder yang tidak berada di bawah kontrol sumber. Jika proyek Anda tidak berada di repositori Git, agen melewati cabang dan melakukan operasi. Jika demikian, cadangkan folder proyek Anda sebelum memulai agar Anda dapat mengembalikannya jika diperlukan.

Pertimbangkan untuk menginisialisasi repositori Git lokal sebelum memulai memperbarui, meskipun Anda tidak mengunggah ke penyedia cloud. Repositori Git lokal memungkinkan Anda:

  • Batalkan perubahan individual dengan git revert.
  • Lacak kemajuan peningkatan langkah demi langkah dalam riwayat penerapan.
  • Mengontrol perubahan mana yang akan disimpan atau dibuang.
  • Jaga keamanan kode asli Anda di cabang utama saat agen bekerja di cabang terpisah.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"

Tinjau cakupan pengujian Anda

Agen bergantung pada pengujian untuk memvalidasi bahwa perubahannya tidak merusak perilaku. Proyek dengan cakupan pengujian yang baik mendapatkan peningkatan keyakinan yang lebih tinggi.

Tip

Anda tidak memerlukan cakupan 100%. Fokus pada kode peningkatan kemungkinan besar akan berubah, seperti batas API, serialisasi, akses database, dan autentikasi.

Mulai dari yang kecil

Jika ini pertama kalinya Anda menggunakan agen, pilih proyek kecil berisiko rendah sebagai pilot. Pustaka kelas atau proyek utilitas sangat ideal. Memulai dari yang kecil memungkinkan Anda memahami alur kerja, membangun kepercayaan diri, dan menemukan masalah khusus repositori sebelum menangani aplikasi utama Anda.

Selama pemutakhiran

Ikuti panduan ini saat agen bekerja dalam proses peningkatan Anda.

Gunakan mode terpandu untuk peningkatan pertama Anda

Agen mendukung mode terpandu dan mode otomatis. Dalam mode terpandu, agen berhenti sejenak di titik keputusan utama untuk peninjauan dan persetujuan Anda. Mulailah dengan mode terpandu untuk memahami apa yang dilakukan agen dan mengapa. Beralih ke mode otomatis setelah Anda nyaman dengan alur kerja.

Tinjau penilaian dengan cermat

Penilaian adalah kesempatan terbaik Anda untuk menangkap masalah sebelum agen mulai membuat perubahan. Cari:

  • Proyek yang mungkin terlewatkan atau salah diidentifikasi oleh agen.
  • Dependensi yang Anda tahu bermasalah.
  • Sesuatu yang tidak biasa tentang solusi Anda yang harus diketahui agen.

Jika Anda menemukan sesuatu, beri tahu agen dalam obrolan atau tambahkan informasi ke scenario-instructions.md. Edit assessment.md langsung untuk menambahkan konteks, memperbaiki proyek yang salah diidentifikasi, atau menandai potensi masalah sebelum agen memasuki tahap perencanaan.

Luangkan waktu dengan tahap perencanaan

Agen menghasilkan rencana berdasarkan penilaiannya. Tinjau rencana sebelum melanjutkan:

  • Apakah pesanan masuk akal untuk basis kode Anda?
  • Apakah ada dependensi yang mungkin tidak diketahui agen?
  • Haruskah ada proyek yang dikecualikan atau ditangani secara berbeda?

Minta agen untuk menyusun ulang tugas, melewati proyek, atau mengubah pendekatannya. Anda tahu basis kode Anda lebih baik daripada agen, jadi gunakan pengetahuan itu. Edit file secara plan.md langsung untuk menyesuaikan urutan tugas, menambahkan tugas, atau menghapus tugas.

Caution

Berhati-hatilah saat mengedit plan.md secara langsung. Agen mungkin tidak sepenuhnya menginterpretasikan perubahan Anda jika membuat instruksi yang bertentangan. Misalnya, menghapus proyek dependensi sambil mempertahankan proyek yang bergantung padanya.

Berikan umpan balik segera

Agen belajar dari pembetulan Anda selama sesi. Jika agen membuat pilihan yang Tidak Anda setujui:

  • Beri tahu segera: "Jangan gunakan pola itu, gunakan X sebagai gantinya."
  • Tambahkan panduan persisten ke scenario-instructions.md agar agen dapat mengingat di seluruh tugas dan sesi.

Tetap terlibat selama eksekusi

Eksekusi tidak langsung. Sebelum memberi tahu agen untuk memulai, tinjau tasks.md:

  • Apakah urutan tugas masuk akal untuk basis kode Anda?
  • Apakah ada tugas yang ingin Anda lewati atau urutan ulang?
  • Apakah ada tugas yang hilang?

Minta agen untuk menyesuaikan daftar tugas, atau edit tasks.md langsung sebelum eksekusi dimulai. Setelah eksekusi dimulai, jika agen membuat keputusan yang buruk di tengah tugas, beri tahu segera—agen akan menerapkan koreksi Anda di masa mendatang.

Anda tahu basis kode Anda lebih baik daripada agen, jadi gunakan pengetahuan itu di setiap tahap.

Kesalahan Umum

Perhatikan masalah umum ini yang dapat memperlambat atau mempersulit peningkatan.

Solusi besar dengan 50+ proyek

Agen ini bekerja proyek demi proyek, sehingga solusi besar membutuhkan waktu. Bersabarlah dan pantau kemajuan. Pertimbangkan untuk memulai dengan satu proyek perwakilan secara end-to-end sebelum berkomitmen pada solusi lengkap. Pilot proyek tunggal mengidentifikasi masalah sistemik lebih awal.

Umpan NuGet Pribadi

Untuk umpan NuGet privat, lakukan autentikasi sebelum memulai peningkatan (misalnya, melalui penyedia kredensial organisasi atau konfigurasi umpan). Tanpa autentikasi, kegagalan pemulihan paket memblokir kemajuan.

Target dan impor MSBuild kustom

Kustomisasi build yang kompleks, seperti file kustom .targets , impor bersyarat, atau logika build non-standar, dapat membingungkan penilaian dan menyebabkan kegagalan build yang tidak terduga. Jika solusi Anda memiliki penyesuaian ini, sebutkan dalam obrolan atau scenario-instructions.md agar agen dapat memperhitungkannya.

Batas waktu sesi

Peningkatan yang memakan waktu lama mungkin mencakup beberapa sesi. Agen melacak kemajuannya dalam file alur kerja (di bawah .github/upgrades/), sehingga dapat melanjutkan dari tempat terakhir. Saat Anda memulai sesi baru, sebutkan di mana Anda berada: "Lanjutkan peningkatan .NET 10. Saya berada di tengah proyek Data.Access."

Berkolaborasi secara efektif

Kualitas interaksi Anda secara langsung memengaruhi kualitas hasil.

Spesifikkan tentang cakupan

Semakin spesifik Anda, semakin baik performa agen:

Alih-alih Coba
"Tingkatkan semuanya" "Tingkatkan proyek Data.Access ke .NET 10"
"Perbaiki pembangunannya" "Perbaiki kesalahan build di CustomerService.cs yang terkait dengan API yang dihapus"
"Tingkatkan komponen database" "Tingkatkan Kerangka Kerja Entitas 6 ke EF Core dalam proyek Repositori"

Bagikan batasan Anda

Beri tahu agen tentang batasan dunia nyata di muka:

  • "Kami tidak dapat memutuskan kompatibilitas mundur untuk API publik."
  • "Kami memiliki tenggat waktu rilis dalam dua minggu, jadi prioritaskan proyek web."
  • "Modul pelaporan warisan harus dikecualikan dari peningkatan ini."

Menjelaskan arsitektur Anda

Agen menganalisis struktur kode, tetapi tidak tahu model mental tim Anda. Bantu agen memahami:

  • Project A adalah perpustakaan bersama kita. B, C, dan D semuanya bergantung padanya."
  • "Proyek WebApi adalah API kami yang menghadap publik; Internal.Api hanya untuk layanan internal."
  • "Proyek Model dibuat secara otomatis dari spesifikasi OpenAPI kami. Jangan memodifikasinya secara langsung."

Tanyakan mengapa

Agen dapat menjelaskan penalarannya. Jika keputusan tidak terlihat benar, tanyakan:

  • "Mengapa Anda memilih urutan bottom-up?"
  • "Mengapa Anda meningkatkan paket ini ke versi X alih-alih Y?"
  • "Mengapa Anda memecah ini menjadi sub-tugas?"

Memahami penalaran membantu Anda memberikan umpan balik yang lebih baik.

Simpan preferensi lebih awal

Jika Anda memiliki preferensi yang kuat tentang gaya pengodean, pola, atau pendekatan, tambahkan ke scenario-instructions.md dalam sesi pertama. File ini persisten di semua sesi dan selalu dalam lingkungan agen, menjadikannya cara yang paling dapat diandalkan untuk mempengaruhi perilaku.

Pulihkan dari masalah

Gunakan strategi ini saat peningkatan tidak berjalan seperti yang diharapkan.

Kegagalan build setelah tugas

Beri tahu agen: "Pembangunan mengalami kegagalan setelah tugas yang terakhir." Agen menganalisis kesalahan tersebut dan mencoba memperbaikinya. Jika agen tidak dapat mengatasi masalah:

  1. Berikan perbaikan manual dan beri tahu agen apa yang Anda lakukan. Agen belajar dari perbaikan Anda.
  2. Kembalikan penerapan (git revert atau reset ke penerapan sebelumnya) dan minta agen untuk mencoba pendekatan yang berbeda.
  3. Lewati tugas yang bermasalah dan kembali lagi nanti.

Strategi salah dipilih

Jika pendekatan keseluruhan agen tidak berfungsi untuk basis kode Anda, mulai ulang tahap perencanaan:

  • "Mari kita ulangi rencananya. Saya ingin memprioritaskan peningkatan proyek web terlebih dahulu alih-alih menggunakan pendekatan bottom-up.
  • "Ubah strategi untuk memperbarui semua pustaka bersama secara bersamaan."

Agen terjebak dalam perulangan

Jika agen mengulangi perbaikan yang sama tanpa kemajuan, ucapkan "Hentikan" dan jelaskan apa yang Anda amati, atau hentikan sesi secara manual. Agen dapat mengatur ulang pendekatannya dan mencoba sesuatu yang berbeda.

Urungkan semua perubahan

Jika Anda menggunakan cabang Git untuk peningkatan, batalkan semuanya dengan beralih kembali ke cabang asli Anda:

git checkout your-original-branch
git branch -D upgrade-branch

Kode asli Anda tidak tersentuh. Jika Anda bekerja tanpa kontrol sumber, pulihkan dari cadangan yang Anda buat sebelum memulai.

Keamanan dan privasi

  • cuplikan Code: GitHub Copilot memprosesnya sesuai dengan kebijakan privasi GitHub's Copilot dan tidak mempertahankannya di luar sesi saat ini.
  • File alur kerja (scenario-instructions.md, tugas kustom, preferensi) tetap berada di repositori Anda di bawah .github/upgrades/. GitHub tidak mengirimkan file ini ke layanan eksternal.
  • Folder .github/upgrades/ adalah bagian dari repositori Anda. Komit folder tersebut karena berisi kemajuan dan status pemutakhiran Anda. Agen memerlukan folder untuk melanjutkan pekerjaan di berbagai sesi. Anda dapat menghapusnya setelah peningkatan selesai.
  • Telemetri: Nonaktifkan melalui pengaturan telemetri IDE Anda.

Tips kinerja

  • Tutup file dan tab yang tidak perlu: Agen menganalisis ruang kerja aktif, dan lebih sedikit file terbuka berarti lebih sedikit kebisingan.
  • Tingkatkan secara bertahap untuk solusi yang sangat besar: Daripada meningkatkan semua proyek sekaligus, kelompokkan mereka. Misalnya, tingkatkan semua pustaka terlebih dahulu, lalu semua proyek web, lalu uji.
  • Gunakan caching build: Agen menjalankan banyak build inkremental saat validasi. Cache build yang sudah terisi membuat validasi menjadi jauh lebih cepat. Hindari membersihkan output build antar tugas.