Panduan Penggunaan Copilot

Berbagi Video

GitHub Copilot adalah alat pelengkapan code berbasis machine learning yang dapat membantu Anda menulis code lebih cepat dan meningkatkan efisiensi coding.

Kemampuan Copilot Labs

KemampuanPenjelasanCatatanexample
ExplainBuat penjelasan snippet codeOpsi lanjutan untuk menyesuaikan prompt, jelaskan kebutuhan Anda dengan lebih jelaspicture 1
Show example codeBuat contoh code snippetOpsi lanjutan untuk menyesuaikanpicture 2
Language TranslationTerjemahkan snippet codeTerjemahan ini berdasarkan terjemahan bahasa pemrograman, misalnya C++ -> Pythonpicture 3
ReadableTingkatkan keterbacaan codeBukan sekadar pemformatan, peningkatan keterbacaan sebenarnyapicture 4
Add TypesPrediksi tipeUbah variabel berbasis tipe automatis menjadi tipe eksplisitpicture 5
Fix bugPerbaiki bugPerbaiki bug umumpicture 6
DebugBuat code lebih mudah di-debugTambahkan log, atau variabel temporary untuk breakpointpicture 7
CleanBersihkan codeBersihkan bagian code yang tidak berguna, komentar/print/code yang usangpicture 8
List stepsDaftar langkah codeBeberapa code bergantung pada urutan yang ketat, perlu komentar eksplisit tentang urutan eksekusipicture 9
Make robustBuat code lebih robustPertimbangkan boundary/threading/reentransi, dll.picture 10
ChunkBagi codeUmumnya diinginkan baris efektif fungsi <=50, nesting <=4, fan-out <=7, kompleksitas lingkaran <=20picture 11
DocumentBuat dokumentasi codeBuat code melalui komentar, atau buat komentar dan dokumentasi dari codepicture 12
CustomOperasi kustomBeritahu Copilot cara mengoperasikan code Andapicture 13

Apa itu Copilot

Website resmi penjelasannya sederhana dan jelas: Your AI pair programmer —— programmer pasangan AI Anda

Pair programming: Ini adalah metode pengembangan perangkat lunak agile, dua programmer bekerja sama di satu komputer: satu mengetik code, yang lain meninjau setiap baris code. Peran bergantian sesekali, memastikan logika ketat dan pencegahan masalah.

Copilot berpartisipasi dalam pekerjaan coding, memainkan peran programmer pasangan, dengan cara berikut:

Pemahaman

Copilot adalah model bahasa besar, ia tidak dapat memahami code kita, dan kita tidak dapat memahami model Copilot, pemahaman di sini adalah pemahaman mutual antara programmer dan sekelompok programmer. Semua orang menulis code berdasarkan beberapa konsensus.

picture 14

Copilot mengumpulkan informasi untuk memahami konteks, informasi meliputi:

  • Code yang sedang diedit
  • File terkait
  • File yang dibuka IDE
  • Alamat library
  • Path file

Copilot tidak hanya memahami melalui satu baris komentar, ia mengumpulkan cukup banyak informasi konteks untuk memahami langkah selanjutnya.

Saran

Seluruh saraninline saran
picture 15picture 16

Seperti yang kita ketahui, cara paling umum untuk mendapatkan saran adalah melalui komentar yang menggambarkan kebutuhan daripada menulis code secara langsung, sehingga mengarahkan GitHub Copilot untuk memberikan seluruh saran. Tetapi ini dapat menyebabkan masalah komentar berlebihan, komentar bukanlah semakin banyak semakin baik, komentar dapat membantu pemahaman, tetapi bukanlah bagian dari code utama. Code yang baik dapat dimengerti tanpa komentar, bergantung pada penamaan yang tepat, desain yang masuk akal, dan logika yang jelas. Sa menggunakan inline saran, asalkan memberikan variabel/fungsi/kelas yang tepat, Copilot selalu dapat memberikan saran yang tepat.

Selain input eksternal yang tepat, Copilot juga mendukung berdasarkan snippet code yang ada untuk memberikan saran, Copilot Labs->Show example code dapat membantu mengenerate contoh code untuk fungsi tertinggi, hanya perlu memilih code, kemudian klik Show example code.

Ctrl+Enter, selalu dapat memberikan banyak inspirasi, saya membuat tiga file, satu file main.cpp kosong, satu file calculator.h kosong, di calculator.cpp mengimplementasikan “tambah” dan “kurang”, Copilot memberikan saran berikut:

  1. Tambahkan implementasi “kali” dan “bagi”
  2. Panggil implementasi “tambah kurang kali bagi” di main
  3. Cara membuat dan menggunakan static library calculator
  4. Hasil eksekusi fungsi main, dan hasilnya benar
  5. Isi saran untuk file header calculator.h
  6. Perintah kompilasi g++
  7. Kasus gtest
  8. Isi CMakeLists.txt, dan sertakan pengujian
  9. objdump -d main > main.s lihat code assembly, dan tampilkan code assembly
  10. ar lihat isi static library, dan tampilkan isi static library

Dengan konfigurasi default, setiap kali menekan Ctrl+Enter menampilkan isi yang sangat berbeda, tidak dapat kembali ke isi yang dihasilkan sebelumnya, jika ingin generate isi yang lebih stabil, dapat mengatur nilai temperature [0, 1]. Semakin kecil nilai, semakin stabil isi yang dihasilkan; semakin besar nilai, semakin tidak dapat diprediksi isi yang dihasilkan.
Saran di atas jauh melampaui saran harian umum, mungkin karena proyek ini memang terlalu sederhana, sekali file kompilasi, file header ditulis dengan lengkap, saran tidak akan sebanyak itu, tetapi tetap sering memiliki nilai inspirasi yang baik.

Gunakan shortcut key yang dibuat oleh Copilot

ActionShortcutCommand name
Terima inline saranTabeditor.action.inlineSuggest.commit
Abaikan saranEsceditor.action.inlineSuggest.hide
Tampilkan saran inline berikutnyaAlt+]editor.action.inlineSuggest.showNext
Tampilkan saran inline sebelumnyaAlt+[editor.action.inlineSuggest.showPrevious
Picu inline saranAlt+\editor.action.inlineSuggest.trigger
Tampilkan lebih banyak saran di panel terpisahCtrl+Entergithub.copilot.generate

Debugging

Dua cara debugging umum, print dan breakpoint.

  • Copilot dapat membantu mengenerate code print secara otomatis, berdasarkan konteks memilih format print atau log yang sesuai.
  • Copilot dapat membantu mengubah struktur code yang ada, memberikan posisi breakpoint yang nyaman. Beberapa code yang bersarang sulit di-breakpoint, Copilot dapat mengubahnya langsung.

Copilot Labs memiliki fungsi berikut:

  • Debug, generate code debugging, misalnya print, breakpoint, dan code debugging lainnya.

Inspeksi

Inspeksi adalah saling, kita dan Copilot perlu saling inspeksi secara teratur, jangan terlalu percaya code yang dihasilkan dengan cepat.

Copilot Labs memiliki fungsi berikut:

  • Fix bug, perbaiki langsung bug yang ditemukan, perlu menyimpan code terlebih dahulu, periksa dengan cermat perubahan Copilot.
  • Make robust, buat code lebih robust, Copilot akan menemukan kasus yang tidak ditangani, generate code perbaikan, kita harus terinspirasi, berpikir lebih teliti.

Rekonstruksi

Copilot Labs memiliki fungsi berikut:

  • Readable, tingkatkan keterbacaan, benar-benar meningkatkan keterbacaan, bukan sekadar pemformatan, tetapi perlu berhati-hati memeriksa perubahan Copilot.
  • Clean, buat code lebih bersih, buang code yang tidak perlu.
  • Chunk, buat code lebih mudah dipahami, bagi code, bagi satu fungsi besar menjadi beberapa fungsi kecil.

Dokumentasi

Copilot Labs memiliki fungsi berikut:

  • Document, generate dokumentasi, misalnya komentar fungsi, dan dokumentasi lainnya.

Meng menggunakan Custom untuk Membatasi Copilot

Custom tidak terlalu menonjol, tetapi memberikan Copilot kemungkinan tak terbatas. Kita dapat memahaminya sebagai bahasa pemrograman baru, bahasa pemrograman ini adalah Bahasa Inggris atau Bahasa China.

Anda dapat memasukkan melalui Custom

  • Hapus code yang dikomentari
    picture 17

  • Tambahkan kemampuan kali dan bagi
    picture 18

  • Tulis ulang menjadi go
    picture 19

  • Tambahkan perhitungan fungsi trigonometri
    picture 20

  • Tambahkan perhitungan turunan, Bahasa China di sini tidak berfung dengan baik, gunakan support calculate differential, pada mode suhu rendah, tidak ada jawaban yang canang, pada mode suhu tinggi, ada beberapa jawaban yang tidak masuk akal.

Dalam pekerjaan sehari-hari, kapan saja Anda dapat memberikan kebutuhan kepada Copilot, melalui kemampuan Custom, Copilot dapat membantu menyelesaikan berbagai operasi yang diinginkan.

Beberapa contoh:

promptsPenjelasan
generate the cmake fileGenerate file cmake
generate 10 test cases for tan()Generate 10 kasus uji
format like google styleFormat code
Pertimbangkan kasus boundaryPertimbangkan kasus boundary
Konfirmasi pelepasan memoriKonfirmasi pelepasan memori

Penggunaan Custom penuh dengan imajinasi, tetapi kadang tidak terlalu canang, disarankan untuk menyimpan code sebelum menggunakan, kemudian periksa dengan cermat modifikasi yang dilakukannya.

Dapatkan Saran yang Lebih Profesional

Semakin jelas petunjuk yang diberikan kepada Copilot, semakin akurat sarannya, petunjuk profesional dapat menghasilkan saran profesional. Banyak code yang tidak sesuai tidak memengaruksi kompilasi code, tidak memengaruksi operasi bisnis, tetapi memengaruksi keterbacaan, keberlanjutan, ekstensibilitas, reuse, karakteristik ini juga sangat penting, jika ingin mendapatkan saran yang lebih profesional, kita sebaiknya memahami beberapa praktik terbaik dalam Bahasa Inggris.

  • Yang pertama adalah menggunakan Bahasa Inggris yang dapat dipahami, dapat belajar Bahasa Inggris dengan melihat proyek open source.
  • Naming convention, penamaan adalah definisi dasar konsep, penamaan yang baik dapat menghindari keambiguan, menghindari pembaca dari detail bisnis, sehingga meningkatkan keterbacaan code, juga merupakan praktik terbaik.
    • Cukup dengan memberikan variabel yang masuk akal, Copilot dapat memberikan seluruh saran yang masuk akal.
  • Daftar design pattern, design pattern adalah template untuk menyelesaikan masalah, untuk berbagai masalah pilih SOLID prinsip desain dasar, menghemat waktu desain scheme, meningkatkan kualitas code.
    • Cukup dengan menulis nama pattern yang dibutuhkan, Copilot dapat generate snippet code lengkap.
  • Daftar algoritma, algoritma yang baik adalah kristal kebijaksanaan untuk menyelesaikan satu kelas masalah, pengembang perlu mengabstrak masalah spesifik, mengabstrak data dan masukkan ke algoritma.
    • Code algoritma biasanya universal, cukup dengan menulis nama algoritma, Copilot dapat generate snippet code algoritma, dan Copilot selalu dapat menggabungkan data structure konteks dengan cerdas ke dalam algoritma.

Saran Teks Biasa

enzh
GitHub Copilot uses the OpenAI Codex to suggest code and entire functions in real-time, right from your editor.GitHub Copilot menggunakan OpenAI Codex untuk memberikan saran code dan seluruh fungsi secara real-time, langsung dari editor.
Trained on billions of lines of code, GitHub Copilot turns natural language prompts into coding suggestions across dozens of languages.Dilatih pada miliaran baris code, GitHub Copilot mengubah prompt bahasa alami menjadi saran coding dalam berbagai bahasa.
Don’t fly solo. Developers all over the world use GitHub Copilot to code faster, focus on business logic over boilerplate, and do what matters most: building great software.Jangan terbang sendiri. Pengembang di seluruh dunia menggunakan GitHub Copilot untuk coding lebih cepat, fokus pada logika bisnis daripada boilerplate, dan lakukan yang paling penting: membuat software yang hebat.
Focus on solving bigger problems. Spend less time creating boilerplate and repetitive code patterns, and more time on what matters: building great software. Write a comment describing the logic you want and GitHub Copilot will immediately suggest code to implement the solution.Fokus pada menyelesaikan masalah yang lebih besar. Habiskan lebih sedikit waktu untuk membuat boilerplate dan pola code yang repetitif, dan lebih banyak waktu pada hal yang penting: membuat software yang hebat. Tuliskan komentar yang menggambarkan logika yang Anda inginkan dan GitHub Copilot akan segera memberikan saran code untuk mengimplementasikan solusi.
Get AI-based suggestions, just for you. GitHub Copilot shares recommendations based on the project’s context and style conventions. Quickly cycle through lines of code, complete function suggestions, and decide which to accept, reject, or edit.Dapatkan saran berbasis AI, khusus untuk Anda. GitHub Copilot berbagi rekomendasi berdasarkan konteks proyek dan konvensi gaya. Cepat looping melalui baris code, melengkapi saran fungsi, dan keputusan untuk menerima, menolak, atau mengedit.
Code confidently in unfamiliar territory. Whether you’re working in a new language or framework, or just learning to code, GitHub Copilot can help you find your way. Tackle a bug, or learn how to use a new framework without spending most of your time spelunking through the docs or searching the web.Code dengan percaya diri di wilayah yang tidak familiar. Apakah Anda bekerja dalam bahasa atau framework baru, atau baru belajar coding, GitHub Copilot dapat membantu menemukan jalan Anda. Selesaikan bug, atau pelajari cara menggunakan framework baru tanpa menghabiskan sebagian besar waktu mencari melalui dokumen atau mencari di web.

Terjemahan ini semua dihasilkan oleh Copilot, tidak dapat menentukan apakah saran ini berbasis model generate, atau berbasis terjemahan generate. Sebenarnya Anda menulis konten Bahasa Inggris di kolom en, semua itu dapat diterjemahkan (dienerate) oleh Copilot ke kolom zh.

picture 21

Pengaturan

Pengaturan klien

PengaturanPenjelasanCatatan
temperatureSuhu sampling0.0 - 1.0, 0.0 generate snippet code yang paling umum, 1.0 generate snippet code yang paling tidak umum dan lebih acak
lengthPanjang maksimum saran code yang dienerateDefault 500
inlineSuggestCountJumlah saran inline yang dienerateDefault 3
listCountJumlah saran yang dienerateDefault 10
top_pPrioritaskan tampilkan N saran dengan probabilitas tertinggiDefault tampilkan semua saran yang mungkin

Pengaturan akun pribadi ada dua pengaturan, satu terkait hak cipta, satu terkait privasi.

  • Apakah menggunakan code open source untuk memberikan saran, terutama untuk menghindari masalah hak cipta yang dihasilkan oleh Copilot, menghindari pembatasan lisensi open source.
  • Apakah mengizinkan menggunakan snippet code pribadi untuk meningkatkan produk, menghindari risiko kebocoran privasi.

Keamanan Data

Pengumpulan informasi Copilot

  • Versi komersial
    • Informasi penggunaan fitur, mungkin berisi informasi pribadi
    • Kumpulkan snippet code, setelah memberikan saran langsung dibuang, tidak menyimpan snippet code apa pun
    • Berbagi data, GitHub, Microsoft, OpenAI
  • Versi pribadi
    • Informasi penggunaan fitur, mungkin berisi informasi pribadi
    • Kumpulkan snippet code, setelah memberikan saran, berdasarkan pengaturan telemetry pribadi, simpan atau buang
    • Snippet code berisi, code yang sedang diedit, file terkait, file yang dibuka IDE, alamat library, path file
    • Berbagi data, GitHub, Microsoft, OpenAI
    • Perlindungan code data, 1. Enkripsi. 2. Bagian employee GitHub/OpenAI yang terkait dengan tim Copilot dapat melihat. 3. Akses berdasarkan peran dan verifikasi multi-faktor
    • Hindari snippet code digunakan (simpan atau latih), 1. Pengaturan 2. Hubungi Tim Copilot
    • Apakah code pribadi akan digunakan? Tidak.
    • Apakah akan mengeluarkan informasi pribadi (nama, ulang tahun, dll)? Jarang, masih dalam pengembangan.
  • Pernyataan privasi detail

Pertanyaan Umum

  • Data pelatihan Copilot, berasal dari repository publik Github.
  • Apakah code yang ditulis Copilot sempurna? Tidak selalu.
  • Dapat menulis code untuk platform baru? Kemampuan masih terbatas.
  • Bagaimana menggunakan Copilot dengan lebih baik? Bagi code menjadi fungsi kecil, deskripsikan fungsi menggunakan bahasa alami, dan input output, gunakan variabel dan fungsi dengan makna spesifik.
  • Apakah code yang dihasilkan Copilot akan punya bug? Tentu tidak dapat dihindari.
  • Apakah code yang dihasilkan Copilot dapat digunakan langsung? Tidak selalu, kadang perlu modifikasi.
  • Apakah code yang dihasilkan Copilot dapat digunakan untuk proyek komersial? Bisa.
    • Apakah code yang dihasilkan Copilot milik kekayaan intelektual Copilot? Tidak termasuk.
    • Apakah Copilot menyalin code dari training set? Copilot tidak menyalin code, peluang sangat kecil lebih dari 150 baris code dapat matched ke training set, dua kasus berikut akan muncul
      • Saat informasi konteks sangat sedikit
      • Solusi untuk masalah umum
    • Bagaimana menghindari duplication dengan code publik, set filter
      picture 22
  • Bagaimana menggunakan code yang dihasilkan Copilot dengan benar? 1. Uji/inspeksi sendiri code yang dihasilkan; 2. Jangan mengkompilasi atau menjalankan code yang dihasilkan sebelum inspeksi.
  • Apakah Copilot memiliki performa yang sama dalam semua bahasa alami? Performa terbaik adalah Bahasa Inggris.
  • Apakah Copilot akan menghasilkan konten yang mengancam? Sudah ada filter, tetapi tidak menutup kemungkinan muncul.