Pengantar Penggunaan Copilot

Video berbagi

GitHub Copilot adalah alat pelengkapan kode berbasis pembelajaran mesin yang membantu Anda menulis kode lebih cepat dan meningkatkan efisiensi pengkodean.

Kemampuan Copilot Labs

KemampuanDeskripsiCatatanContoh
ExplainMenghasilkan penjelasan untuk cuplikan kodeAda opsi lanjutan untuk menyesuaikan petunjuk, menjelaskan kebutuhan Anda dengan lebih jelasgambar 1
Show example codeMenghasilkan contoh kode untuk cuplikan kodeAda opsi lanjutan untuk menyesuaikangambar 2
Language TranslationMenghasilkan terjemahan untuk cuplikan kodeTerjemahan ini didasarkan pada bahasa pemrograman, misalnya C++ -> Pythongambar 3
ReadableMeningkatkan keterbacaan kodeBukan sekadar format, meningkatkan keterbacaan yang sebenarnyagambar 4
Add TypesInferensi tipeMengubah variabel tipe otomatis menjadi tipe eksplisitgambar 5
Fix bugMemperbaiki bugMemperbaiki bug umumgambar 6
DebugMembuat kode lebih mudah di-debugMenambahkan pencetakan log atau variabel sementara untuk breakpointgambar 7
CleanMembersihkan kodeMembersihkan bagian kode yang tidak perlu, komentar/pencetakan/kode yang dibuang, dll.gambar 8
List stepsMendaftar langkah-langkah kodeBeberapa kode eksekusi sangat bergantung pada urutan, perlu memberi komentar secara eksplisit tentang urutan eksekusigambar 9
Make robustMembuat kode lebih tangguhMempertimbangkan batas/multithreading/reentrant, dll.gambar 10
ChunkMembagi kode menjadi bagian-bagianUmumnya diharapkan baris efektif fungsi <=50, bersarang <=4, fan-out <=7, kompleksitas lingkaran <=20gambar 11
DocumentMenghasilkan dokumentasi kodeMelalui penulisan komentar untuk menghasilkan kode, juga dapat menghasilkan komentar dan dokumentasi melalui kodegambar 12
CustomOperasi kustomMemberi tahu copilot bagaimana mengoperasikan kode Andagambar 13

Apa itu Copilot

Introduksi resmi sangat sederhana: Programmer pasangan Anda — programmer pasangan Anda

Pemrograman berpasangan adalah metode pengembangan perangkat lunak agile, dua programmer bekerja sama di depan satu komputer: satu mengetik kode, satu lagi memeriksa setiap baris kode. Peran sering kali dipertukarkan, memastikan logika ketat dan pencegahan masalah.

Copilot berpartisipasi dalam pekerjaan pengkodean melalui cara berikut, mewujudkan peran programmer pasangan.

Memahami

Copilot adalah model bahasa besar, ia tidak dapat memahami kode kita, dan kita juga tidak dapat memahami model Copilot, di sini memahami adalah saling memahami antara seorang programmer dan sekelompok programmer. Semua orang menulis kode berdasarkan beberapa konsensus.

gambar 14

Copilot mengumpulkan informasi untuk memahami konteks, informasi meliputi:

  • Kode yang sedang diedit
  • File terkait
  • File yang sudah dibuka di IDE
  • Alamat library
  • Jalur file

Copilot tidak hanya memahami melalui satu baris komentar, ia mengumpulkan cukup banyak informasi kontekstual untuk memahami langkah selanjutnya yang akan dilakukan.

Saran

Saran keseluruhanSaran inline
gambar 15gambar 16

Seperti yang diketahui umum, cara paling umum untuk mendapatkan saran adalah melalui komentar yang menjelaskan kebutuhan daripada langsung menulis kode, sehingga memandu GitHub Copilot untuk memberikan saran keseluruhan. Namun, ini mungkin menyebabkan masalah redundansi komentar, komentar bukan semakin banyak semakin baik, komentar dapat membantu pemahaman, tetapi bukan bagian utama dari kode. Kode yang baik jelas tanpa komentar, mengandalkan penamaan yang sesuai, desain yang masuk akal, dan logika yang jelas. Saat menggunakan saran inline, selama memberikan nama variabel/fungsi/kelas yang sesuai, Copilot selalu dapat memberikan saran yang sesuai.

Selain input eksternal yang sesuai, Copilot juga mendukung memberikan saran berdasarkan cuplikan kode yang sudah ada, Copilot Labs->Show example code dapat membantu menghasilkan contoh kode untuk fungsi tertentu, cukup pilih kode dan klik Show example code.

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

  1. Tambahkan implementasi “perkalian” dan “pembagian”
  2. Panggil implementasi “tambah kurang kali bagi” di main
  3. Metode pembuatan dan penggunaan library statis calculator
  4. Hasil eksekusi fungsi main, dan hasilnya benar
  5. Isi saran header calculator.h
  6. Perintah kompilasi g++
  7. Kasus uji gtest
  8. Isi CMakeLists.txt, termasuk pengujian
  9. objdump -d main > main.s melihat kode assembly, dan menampilkan kode assembly
  10. ar melihat isi library statis, dan menampilkan isi library statis

Dengan konfigurasi default, setiap kali menekan Ctrl+Enter konten yang ditampilkan sangat berbeda, tidak dapat melihat kembali konten yang dihasilkan sebelumnya, jika perlu konten yang dihasilkan lebih stabil, dapat mengatur nilai temperature [0, 1]. Semakin kecil nilainya, semakin stabil konten yang dihasilkan; semakin besar nilainya, semakin tidak dapat diprediksi konten yang dihasilkan. Saran di atas jauh melebihi konten saran umum yang digunakan sehari-hari, mungkin karena proyek memang terlalu sederhana, begitu file kompilasi dan header ditulis lengkap, saran tidak akan sebanyak itu, tetapi tetap sering memiliki efek inspiratif yang baik.

Shortcut untuk menggunakan saran Copilot

TindakanShortcutNama Perintah
Terima saran inlineTabeditor.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 saran inlineAlt+\editor.action.inlineSuggest.trigger
Tampilkan lebih banyak saran di panel terpisahCtrl+Entergithub.copilot.generate

Debug

Umumnya ada dua metode debug, pencetakan dan breakpoint.

  • Copilot dapat membantu menghasilkan kode pencetakan secara otomatis, memilih format pencetakan atau log berdasarkan konteks.
  • Copilot dapat membantu memodifikasi struktur kode yang ada, memberikan posisi breakpoint yang mudah. Beberapa gaya kode bersarang sulit untuk diberi breakpoint, Copilot dapat langsung memodifikasinya.

Copilot Labs telah menyediakan fungsi berikut:

  • Debug, menghasilkan kode debug, seperti pencetakan, breakpoint, dan kode debug lainnya.

Pemeriksaan

Pemeriksaan bersifat timbal balik, kita dan copilot perlu sering saling memeriksa, jangan mudah percaya pada kode yang dihasilkan dengan cepat.

Copilot Labs telah menyediakan fungsi berikut:

  • Fix bug, langsung memperbaiki bug yang ditemukannya, perlu menyimpan kode Anda terlebih dahulu, periksa modifikasi Copilot dengan hati-hati.
  • Make robust, membuat kode lebih tangguh, Copilot akan menemukan situasi yang belum ditangani, menghasilkan kode perbaikan, kita harus terinspirasi olehnya, berpikir lebih matang.

Refactoring

Copilot Labs telah menyediakan fungsi berikut:

  • Readable, meningkatkan keterbacaan, benar-benar meningkatkan keterbacaan, bukan sekadar format, tetapi harus berhati-hati memeriksa modifikasi Copilot.
  • Clean, membuat kode lebih ringkas, menghilangkan kode yang tidak perlu.
  • Chunk, membuat kode lebih mudah dipahami, membagi kode menjadi bagian-bagian, membagi fungsi besar menjadi beberapa fungsi kecil.

Dokumentasi

Copilot Labs telah menyediakan fungsi berikut:

  • Document, menghasilkan dokumentasi, seperti komentar fungsi, dan dokumentasi lainnya.

Memperluas Batas Copilot dengan Custom

Custom tidak mencolok, tetapi membuat Copilot memiliki kemungkinan tak terbatas. Kita dapat memahaminya sebagai bahasa pemrograman baru, bahasa pemrograman ini adalah bahasa Inggris atau bahasa Mandarin.

Anda dapat menggunakan Custom untuk memasukkan

  • Hapus kode komentar
    gambar 17

  • Tambahkan kemampuan perkalian dan pembagian
    gambar 18

  • Tulis ulang dalam go
    gambar 19

  • Tambahkan perhitungan fungsi trigonometri
    gambar 20

  • Tambahkan perhitungan diferensial, di sini bahasa Mandarin tidak berfungsi, gunakan support calculate differential, dalam mode suhu rendah, tidak ada jawaban yang dapat diandalkan, dalam mode suhu tinggi, ada beberapa jawaban yang aneh.

Dalam pekerjaan sehari-hari, Anda dapat mengajukan kebutuhan Anda kepada Copilot kapan saja, melalui kemampuan Custom, Anda dapat membuat Copilot membantu menyelesaikan banyak operasi yang ingin Anda lakukan.

Beberapa contoh:

promptDeskripsi
generate the cmake fileMenghasilkan file cmake
generate 10 test cases for tan()Menghasilkan 10 kasus uji
format like google styleFormat kode
pertimbangkan kasus batasPertimbangkan kasus batas
konfirmasi pelepasan memoriKonfirmasi pelepasan memori

Penggunaan Custom penuh dengan imajinasi, tetapi terkadang juga tidak terlalu dapat diandalkan, disarankan untuk menyimpan kode Anda terlebih dahulu sebelum menggunakan, kemudian memeriksa modifikasi yang dilakukannya dengan hati-hati.

Mendapatkan Saran yang Lebih Profesional

Semakin jelas petunjuk yang Anda berikan kepada Copilot, semakin akurat saran yang diberikannya, petunjuk profesional dapat memperoleh saran yang lebih profesional. Banyak kode yang tidak tepat tidak hanya tidak memengaruhi kompilasi kode, tetapi juga tidak memengaruhi operasi bisnis, tetapi memengaruhi keterbacaan, keterpeliharaan, ekspansi, dan penggunaan kembali, karakteristik ini juga sangat penting, jika ingin mendapatkan saran yang lebih profesional, kita sebaiknya memahami beberapa nama Inggris dari praktik terbaik.

  • Pertama adalah menggunakan bahasa Inggris yang dapat dipahami, dapat belajar bahasa Inggris dengan melihat proyek open source.
  • Konvensi penamaan, penamaan adalah definisi paling dasar dari konsep, penamaan yang baik dapat menghindari ambiguitas, menghindari pembaca tenggelam dalam detail bisnis, sehingga meningkatkan keterbacaan kode, juga merupakan praktik terbaik.
    • Biasanya hanya perlu nama variabel yang masuk akal, Copilot dapat memberikan saran keseluruhan yang dapat dipercaya.
  • Daftar pola desain, pola desain adalah templat untuk memecahkan masalah, secara rasional mengorbankan prinsip desain SOLID untuk masalah yang berbeda, menghemat waktu desain solusi, meningkatkan kualitas kode.
    • Hanya perlu menulis nama pola yang dibutuhkan, Copilot dapat menghasilkan cuplikan kode lengkap.
  • Daftar algoritma, algoritma yang baik adalah kristalisasi kebijaksanaan tingkat tinggi untuk memecahkan kelas masalah, pengembang harus secara mandiri mengabstraksi masalah spesifik, mengabstraksi data dan kemudian memasukkannya ke algoritma.
    • Kode algoritma biasanya bersifat umum, cukup menulis nama algoritma, Copilot dapat menghasilkan cuplikan kode algoritma, dan Copilot selalu dapat dengan cerdik menerapkan struktur data konteks ke algoritma.

Saran Teks Biasa

enzh
GitHub Copilot menggunakan OpenAI Codex untuk menyarankan kode dan seluruh fungsi secara real-time, langsung dari editor Anda.GitHub Copilot menggunakan OpenAI Codex untuk menyarankan kode dan seluruh fungsi secara real-time, langsung dari editor Anda.
Dilatih pada miliaran baris kode, GitHub Copilot mengubah petunjuk bahasa alami menjadi saran pengkodean di seluruh puluhan bahasa.Dilatih pada miliaran baris kode, GitHub Copilot mengubah petunjuk bahasa alami menjadi saran pengkodean di seluruh puluhan bahasa.
Jangan terbang solo. Pengembang di seluruh dunia menggunakan GitHub Copilot untuk mengkode lebih cepat, fokus pada logika bisnis daripada boilerplate, dan melakukan hal yang paling penting: membangun perangkat lunak hebat.Jangan terbang solo. Pengembang di seluruh dunia menggunakan GitHub Copilot untuk mengkode lebih cepat, fokus pada logika bisnis daripada boilerplate, dan melakukan hal yang paling penting: membangun perangkat lunak hebat.
Fokus pada memecahkan masalah yang lebih besar. Habiskan lebih sedikit waktu menciptakan boilerplate dan pola kode berulang, dan lebih banyak waktu pada hal yang penting: membangun perangkat lunak hebat. Tulis komentar yang menggambarkan logika yang Anda inginkan dan GitHub Copilot akan segera menyarankan kode untuk mengimplementasikan solusi tersebut.Fokus pada memecahkan masalah yang lebih besar. Habiskan lebih sedikit waktu menciptakan boilerplate dan pola kode berulang, dan lebih banyak waktu pada hal yang penting: membangun perangkat lunak hebat. Tulis komentar yang menggambarkan logika yang Anda inginkan dan GitHub Copilot akan segera menyarankan kode untuk mengimplementasikan solusi tersebut.
Dapatkan saran berbasis AI, hanya untuk Anda. GitHub Copilot membagikan rekomendasi berdasarkan konteks dan konvensi gaya proyek. Dengan cepat berpindah dari baris kode, saran fungsi lengkap, dan putuskan mana yang akan diterima, ditolak, atau diedit.Dapatkan saran berbasis AI, hanya untuk Anda. GitHub Copilot membagikan rekomendasi berdasarkan konteks dan konvensi gaya proyek. Dengan cepat berpindah dari baris kode, saran fungsi lengkap, dan putuskan mana yang akan diterima, ditolak, atau diedit.
Kode dengan percaya diri di wilayah yang tidak dikenal. Apakah Anda bekerja dalam bahasa atau framework baru, atau hanya belajar mengkode, GitHub Copilot dapat membantu Anda menemukan jalan. Tangani bug, atau pelajari cara menggunakan framework baru tanpa menghabiskan sebagian besar waktu Anda menjelajahi dokumen atau mencari di web.Kode dengan percaya diri di wilayah yang tidak dikenal. Apakah Anda bekerja dalam bahasa atau framework baru, atau hanya belajar mengkode, GitHub Copilot dapat membantu Anda menemukan jalan. Tangani bug, atau pelajari cara menggunakan framework baru tanpa menghabiskan sebagian besar waktu Anda menjelajahi dokumen atau mencari di web.

Terjemahan ini semua dihasilkan oleh Copilot, tidak dapat dipastikan apakah saran ini didasarkan pada generasi model atau dihasilkan oleh perilaku terjemahan. Faktanya, Anda menulis konten bahasa Inggris apa pun di kolom en tabel, dapat diterjemahkan (dihasilkan) oleh Copilot ke konten di kolom zh.

gambar 21

Pengaturan

Pengaturan klien

PengaturanDeskripsiCatatan
temperatureSuhu sampling0.0 - 1.0, 0.0 menghasilkan cuplikan kode paling umum, 1.0 menghasilkan cuplikan kode paling tidak umum dan lebih acak
lengthPanjang maksimum saran kode yang dihasilkanDefault 500
inlineSuggestCountJumlah saran inline yang dihasilkanDefault 3
listCountJumlah saran yang dihasilkanDefault 10
top_pPrioritaskan menampilkan saran dengan probabilitas N teratasSecara default menampilkan semua saran yang mungkin

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

  • Apakah menggunakan kode sumber terbuka untuk memberikan saran, terutama untuk menghindari masalah hak cipta dalam cuplikan kode yang dihasilkan oleh Copilot, menghindari batasan lisensi sumber terbuka.
  • Apakah mengizinkan menggunakan cuplikan kode pribadi untuk meningkatkan produk, menghindari risiko kebocoran privasi.

Keamanan Data

Pengumpulan informasi Copilot

  • Versi komersial
    • Informasi penggunaan fungsi, mungkin berisi informasi pribadi
    • Mengumpulkan cuplikan kode, segera membuang setelah memberikan saran, tidak menyimpan cuplikan kode apa pun
    • Berbagi data, GitHub, Microsoft, OpenAI
  • Versi pribadi
    • Informasi penggunaan fungsi, mungkin berisi informasi pribadi
    • Mengumpulkan cuplikan kode, berdasarkan pengaturan telemetry pribadi, menyimpan atau membuang setelah memberikan saran
    • Cuplikan kode termasuk, kode yang sedang diedit, file terkait, file yang sudah dibuka di IDE, alamat library, jalur file
    • Berbagi data, GitHub, Microsoft, OpenAI
    • Perlindungan data kode, 1. Enkripsi. 2. Tim Copilot terkait GitHub/OpenAI sebagian karyawan dapat melihat. 3. Akses memerlukan kontrol akses berbasis peran dan verifikasi multifaktor
    • Menghindari cuplikan kode digunakan (disimpan atau dilatih), 1. Pengaturan 2. Hubungi Tim Copilot
    • Apakah kode pribadi akan digunakan? Tidak.
    • Apakah akan menghasilkan informasi pribadi (nama, ulang tahun, dll.)? Jarang terjadi, masih dalam proses perbaikan.
  • Pernyataan privasi terperinci

Pertanyaan Umum

  • Data pelatihan Copilot, berasal dari repositori publik Github.
  • Apakah kode yang ditulis Copilot sempurna? Tidak tentu.
  • Dapatkah menulis kode untuk platform baru? Kemampuan terbatas saat ini.
  • Bagaimana cara menggunakan Copilot dengan lebih baik? Memecah kode menjadi fungsi kecil, menggunakan bahasa alami untuk menggambarkan fungsi dan input/output fungsi, menggunakan nama variabel dan fungsi yang memiliki makna spesifik.
  • Apakah kode yang dihasilkan oleh Copilot akan memiliki bug? Tentu tidak dapat dihindari.
  • Dapatkah kode yang dihasilkan oleh Copilot digunakan secara langsung? Tidak tentu, terkadang perlu dimodifikasi.
  • Dapatkah kode yang dihasilkan oleh Copilot digunakan untuk proyek komersial? Bisa.
    • Apakah kode yang dihasilkan oleh Copilot milik kekayaan intelektual Copilot? Bukan.
    • Apakah Copilot menyalin kode dari dataset pelatihan? Copilot tidak menyalin kode, sangat kecil kemungkinannya ada lebih dari 150 baris kode yang dapat dicocokkan dengan dataset pelatihan, dua situasi berikut ini akan muncul
      • Ketika informasi konteks sangat sedikit
      • Adalah solusi umum untuk masalah umum
    • Bagaimana menghindari duplikasi dengan kode publik, atur filter
      gambar 22
  • Bagaimana cara menggunakan kode yang dihasilkan oleh Copilot dengan benar? 1. Uji/periksa kode yang dihasilkan secara mandiri; 2. Jangan kompilasi atau jalankan kode yang dihasilkan sebelum pemeriksaan.
  • Apakah Copilot memiliki performa yang sama di setiap bahasa alami? Performa terbaik adalah bahasa Inggris.
  • Apakah Copilot akan menghasilkan konten yang menyinggung? Sudah ada filter, tetapi tidak menutup kemungkinan munculnya.