Copilot kullanımına giriş

Video paylaşımı

GitHub Copilot, makine öğrenimine dayalı bir kod tamamlama aracıdır ve kodunuzu daha hızlı yazmanıza ve kodlama verimliliğinizi artırmaya yardımcı olur.

Copilot Labs yetenekleri

Yetenek Açıklama Not örnek
Explain Kod parçası açıklaması üret Gelişmiş seçeneklerle talimatları özelleştir, ihtiyacınızı daha net belirtin resim 1
Show example code Kod parçası örneği üret Gelişmiş seçenekler mevcuttur resim 2
Language Translation Kod parçası çevirisi üret Bu çeviri programlama dillerine dayalıdır, örneğin C++ -> Python resim 3
Readable Kodun okunabilirliğini artır Basit biçimlendirme değil, gerçek okunabilirlik artışı resim 4
Add Types Tip çıkarımı Otomatik tip değişkenleri belirli tiplere dönüştürülür resim 5
Fix bug Hataları düzelt Bazı yaygın hataları düzeltir resim 6
Debug Kodu hata ayıklamasını kolaylaştır Hata ayıklama için log çıktısı veya kesme noktası ekler resim 7
Clean Kodu temizle Kodun gereksiz kısımlarını kaldırır, yorumlar/baskı/terk edilmiş kod vb. resim 8
List steps Kodun adımlarını listele Bazı kodların yürütülmesi sıraya bağlıdır, yürütme sırasını belirtmek için yorum eklenir resim 9
Make robust Kodu daha sağlam hale getir Sınır/hadde/tekrar girme vb. durumları göz önünde bulundurur resim 10
Chunk Kodu parçalara ayır Genellikle fonksiyon etkili satır sayısı<=50, iç içe<=4, çıkış<=7, döngü karmaşıklığı<=20 resim 11
Document Kodun belgesini üret Yorumlarla belge üretir, ayrıca koddan yorum ve belge üretir resim 12
Custom Özel işlemler Copilot’a kodunu nasıl işleyeceğini söyle resim 13

Copilot nedir

Web sitesi tanımı basit ve net: Yapay zeka eş programcın —— senin eş programcın

Eş programlama: Agile yazılım geliştirme yöntemidir, iki programcı aynı bilgisayarda işbirliği yapar: biri kodu girer, diğeri her satırı inceler. Roller sık sık değişir, mantıksal kesinliği ve sorun önleme sağlar.

Copilot, kodlama işine aşağıdaki yollarla katılarak eş programcı rolünü üstlenir.

Anlamak

Copilot büyük bir dil modelidir, kodumuzu anlayamaz, biz de Copilot’un modelini anlayamayız, burada anlamak bir programcı ile bir grup programcı arasındaki karşılıklı anlayışı ifade eder. Hepimiz bazı ortak anlayışlarla birlikte kod yazarız.

resim 14

Copilot, bağlamı anlamak için bilgi toplar, bilgiler şunları içerir:

  • Düzenlenmekte olan kod
  • İlgili dosyalar
  • IDE’de açılan dosyalar
  • Kütüphane adresi
  • Dosya yolu

Copilot sadece bir yorum satırıyla anlamaya çalışmaz, bir sonraki adımın ne olacağına dair yeterli bağlam bilgisini toplar.

Öneriler

Tüm blok önerileri inline öneriler
resim 15 resim 16

En yaygın öneri alım yönteminin, doğrudan kod yazmak yerine, bir açıklama yorumuyla GitHub Copilot’un tüm blok önerilerini yönlendirmek olduğu bilinir. Ancak bu yorum fazlalığına yol açabilir, yorum ne kadar çoksa o kadar iyi değildir, yorum kodun ana kısmı değildir. İyi kod yorum olmadan da anlaşılır, uygun adlandırma, mantıklı tasarım ve net mantık sayesindedir. Inline öneri kullanırken, uygun değişken adı/fonksiyon adı/sınıf adı verildiğinde Copilot her zaman uygun önerilerde bulunabilir.

Uygun dış girdilerin yanı sıra, Copilot mevcut kod parçasına dayalı öneriler de destekler, Copilot Labs->Show example code belirli bir fonksiyonun örnek kodunu oluşturmanıza yardımcı olur, kodu seçip Show example codea tıklamanız yeterlidir.

Ctrl+Enter, her zaman çok fazla ilham verir, üç dosya oluşturdum, boş bir main.cpp, boş bir calculator.h, calculator.cpp’de “toplama” ve “çıkarma” uyguladım, Copilot aşağıdaki önerileri verdi:

  1. “Çarpma” ve “bölme” uygulamaları ekle
  2. “Toplama, çıkarma, çarpma, bölme"yı main’de çağır
  3. calculator statik kitaplığının oluşturulması ve kullanılması yöntemleri
  4. main fonksiyonunun çalışma sonucu ve doğru sonuç
  5. calculator.h başlık dosyasının önerilen içeriği
  6. g++ derleme komutu
  7. gtest testi
  8. CMakeLists.txt içeriği ve testleri içerir
  9. objdump -d main > main.s montaj kodunu gösterir ve montaj kodunu gösterir
  10. ar statik kitaplığın içeriğini gösterir ve statik kitaplığın içeriğini gösterir

Varsayılan yapılandırmada, her Ctrl+Enter tuşuna basıldığında gösterilen içerik büyük ölçüde farklıdır, önceki oluşturulan içeriği geri izleyemezsiniz, daha istikrarlı içerik üretmek istiyorsanız temperature değerini [0, 1] olarak ayarlayabilirsiniz. Değer ne kadar düşükse, oluşturulan içerik o kadar istikrarlı olur; değer ne kadar yüksekse, oluşturulan içerik o kadar belirsiz olur.
Yukarıdaki öneriler, günlük kullanımdaki genel öneri içeriklerinin çok üzerindedir, muhtemelen proje gerçekten çok basit olduğundan dolayıdır, derleme dosyası, başlık dosyası tamamlandığında öneri o kadar çok olmaz, yine de sık sık iyi bir ilham kaynağı olur.

Copilot önerilerini kullanmak için kısayollar

Eylem Kısayol Komut adı
inline öneriyi kabul et Tab editor.action.inlineSuggest.commit
öneriyi reddet Esc editor.action.inlineSuggest.hide
sonraki inline öneriyi göster Alt+] editor.action.inlineSuggest.showNext
önceki inline öneriyi göster Alt+[ editor.action.inlineSuggest.showPrevious
inline öneriyi tetikle Alt+\ editor.action.inlineSuggest.trigger
ayrı panelde daha fazla öneri göster Ctrl+Enter github.copilot.generate

Hata ayıklama

Genellikle iki hata ayıklama yöntemi vardır, yazdırma ve kesme noktası.

  • Copilot, bağlama göre uygun yazdırma veya loglamayı seçerek otomatik olarak yazdırma kodu oluşturmanıza yardımcı olabilir.
  • Copilot mevcut kod yapısını değiştirmenize ve rahat bir kesme noktası konumu sağlamaya yardımcı olabilir. Bazı iç içe kod stilleri kesme noktası koymak için zordur, Copilot bunları doğrudan değiştirebilir.

Copilot Labs önceden aşağıdaki işlevleri ayarlar:

  • Debug, hata ayıklama kodu üretir, örneğin yazdırma, kesme noktası ve diğer hata ayıklama kodları.

Gözden geçirme

Gözden geçirme karşılıklıdır, biz ve copilot sık sık birbirimizi gözden geçirmeliyiz, hızlı üretilen koda güvenmemeliyiz.

Copilot Labs önceden aşağıdaki işlevleri ayarlar:

  • Fix bug, bulduğu hatayı doğrudan düzeltir, önce kodunuzu iyi bir şekilde kaydetmeli ve Copilot’un değişikliklerini dikkatlice gözden geçirmelisiniz.
  • Make robust, kodu daha sağlam hale getirir, Copilot ele alınmamış durumları keşfeder ve geliştirilmiş kod üretir, bunlardan ilham almalı ve daha titiz olmalıyız.

Yeniden düzenleme

Copilot Labs önceden aşağıdaki işlevleri ayarlar:

  • Readable, okunabilirliği artırır, sadece biçimlendirmek değil, gerçek okunabilirlik artışı, ancak Copilot’un değişikliklerini dikkatle incelemeye dikkat etmelisiniz.
  • Clean, kodu daha temiz hale getirir, gereksiz kodları kaldırır.
  • Chunk, kodu daha anlaşılır hale getirir, kodu parçalara ayırır, büyük bir fonksiyonu birden fazla küçük fonksiyona böler.

Belgeleme

Copilot Labs önceden aşağıdaki işlevleri ayarlar:

  • Document, belge üretir, örneğin fonksiyon yorumları ve diğer belgeler.

Custom kullanarak Copilot sınırlarını genişletme

Custom göze çarpmıyor, ancak Copilot’a sonsuz olasılık sağlar. Yeni bir programlama dili olarak anlayabiliriz, bu programlama dili İngilizce veya Çince’dir.

Custom ile şunları girebilirsiniz

  • Yorum kodunu kaldır
    resim 17

  • Çarpma ve bölme yeteneği ekle
    resim 18

  • Go olarak yeniden yaz
    resim 19

  • Üçgen fonksiyon hesaplaması ekle
    resim 20

  • Diferansiyel hesaplama ekle, burada Çince pek işe yaramaz, support calculate differential kullanın, düşük sıcaklık modunda güvenilir bir cevap yoktur, yüksek sıcaklık modunda birkaç saçma cevap vardır.

Günlük işlerde, istediğiniz zaman Copilot’a ihtiyaçlarınızı sunabilir, Custom yeteneği sayesinde Copilot’un birçok operasyonu gerçekleştirmesine yardımcı olabilir.

Bazı örnekler:

prompts açıklama
generate the cmake file cmake dosyası üret
generate 10 test cases for tan() 10 test durumu üret
format like google style kodu biçimlendir
consider edge cases sınır durumları göz önünde bulundur
confirm memory release bellek serbest bırakmasını onayla

Custom kullanımı hayal gücüne tamamen bırakılmıştır, ancak bazen güvenilir değildir, öneriyi kullanmadan önce kodunuzu iyi bir şekilde kaydetmeniz ve ardından yaptığı değişiklikleri iyi bir şekilde incelemeniz önerilir.

Daha profesyonel öneriler almak

Copilot’a verilen ipucu ne kadar netse, verdiği öneri o kadar doğrudur, profesyonel ipuçları daha profesyonel öneriler elde eder. Uygun olmayan kodlar, kod derlemeyi etkilemez ve iş sürecini etkilemez, ancak okunabilirliği, bakım kolaylığını, genişletilebilirliği, yeniden kullanılabilirliği etkiler, bu özellikler de çok önemlidir, daha profesyonel öneriler elde etmek istiyorsanız, en azından bazı en iyi uygulamaların İngilizce adlarını öğrenmelisiniz.

  • Öncelikle anlaşılabilir İngilizce kullanmak, açık kaynak projeleri izleyerek İngilizce öğrenilebilir.
  • Adlandırma kuralları, adlandırma kavramların en temel tanımıdır, iyi adlandırma belirsizliği önler, okuyucuyu iş ayrıntılarına sokmaktan kaçınır ve böylece kodun okunabilirliğini artırır, aynı zamanda en iyi bir uygulamadır.
    • Genellikle sadece mantıklı bir değişken adı gerekir, Copilot güvenilir bir bütün öneri verir.
  • Tasarım desenleri listesi, tasarım desenleri farklı sorunları çözmek için bir şablondur, farklı sorunlar için SOLID tasarım temel ilkelerinin uygun bir şekilde tercih edilmesi, çözüm tasarımlama süresini azaltır, kod kalitesini artırır.
    • Sadece ihtiyaç duyulan desen adını yazmanız yeterlidir, Copilot tam bir kod parçası oluşturur.
  • Algoritma listesi, iyi algoritmalar, bir sınıf sorunu çözmek için yüksek zeka birikimleridir, geliştiricilerin belirli sorunu soyutlaması ve verileri algoritmaya uygun şekilde girdi olarak soyutlaması gerekir.
    • Algoritma kodları genellikle evrenseldir, sadece algoritma adını yazmanız yeterlidir, Copilot algoritma kod parçasını oluşturur ve Copilot her zaman bağlamdaki veri yapılarını algoritmaya akıllıca uygular.

Sade metin önerileri

en zh
GitHub Copilot, OpenAI Codex’i kullanarak editörünüzden gerçek zamanlı olarak kod ve tam fonksiyonlar önerir. GitHub Copilot, OpenAI Codex’i kullanarak editörünüzden gerçek zamanlı olarak kod ve tam fonksiyonlar önerir.
Milyarlarca satır koda eğitildi, GitHub Copilot doğal dil ipuçlarını onlarca dilde kod önerilerine dönüştürür. Milyarlarca satır koda eğitildi, GitHub Copilot doğal dil ipuçlarını onlarca dilde kod önerilerine dönüştürür.
Yalnız uçmayın. Dünyanın dört bir yanındaki geliştiriciler, daha hızlı kodlamak, boilerplate kodundan ziyade iş mantığına odaklanmak ve en önemlisini yapmak için GitHub Copilot kullanıyor: harika yazılım üretmek. Yalnız uçmayın. Dünyanın dört bir yanındaki geliştiriciler, daha hızlı kodlamak, boilerplate kodundan ziyade iş mantığına odaklanmak ve en önemlisini yapmak için GitHub Copilot kullanıyor: harika yazılım üretmek.
Daha büyük sorunlara odaklanın. Boilerplate ve tekrarlayan kod kalıpları oluşturmak için daha az zaman harcayın, önemli olan şeylere daha fazla zaman ayırın: harika yazılım üretmek. İstediğiniz mantığı açıklayan bir yorum yazın ve GitHub Copilot hemen çözümü uygulamak için kod önerisi sunar. Daha büyük sorunlara odaklanın. Boilerplate ve tekrarlayan kod kalıpları oluşturmak için daha az zaman harcayın, önemli olan şeylere daha fazla zaman ayırın: harika yazılım üretmek. İstediğiniz mantığı açıklayan bir yorum yazın ve GitHub Copilot hemen çözümü uygulamak için kod önerisi sunar.
Sizin için AI tabanlı öneriler alın. GitHub Copilot, projenin bağlamı ve stil kurallarına dayanarak öneriler sunar. Kod satırlarını, fonksiyon önerilerini hızlıca inceleyin ve hangisini kabul, red ya da düzenleyeceğinize karar verin. Sizin için AI tabanlı öneriler alın. GitHub Copilot, projenin bağlamı ve stil kurallarına dayanarak öneriler sunar. Kod satırlarını, fonksiyon önerilerini hızlıca inceleyin ve hangisini kabul, red ya da düzenleyeceğinize karar verin.
Bilinmeyen alanda güvenle kodlayın. Yeni bir dilde veya çerçevede çalışıyor olmanızdan ya da sadece kodlamayı öğreniyor olmanızdan bağımsız olarak GitHub Copilot yolunuzu bulmanıza yardımcı olabilir. Bir bug’ı çözün ya da belgelerde veya web’de araştırma yapmadan yeni bir çerçeveyi nasıl kullanacağınızı öğrenin. Bilinmeyen alanda güvenle kodlayın. Yeni bir dilde veya çerçevede çalışıyor olmanızdan ya da sadece kodlamayı öğreniyor olmanızdan bağımsız olarak GitHub Copilot yolunuzu bulmanıza yardımcı olabilir. Bir bug’ı çözün ya da belgelerde veya web’de araştırma yapmadan yeni bir çerçeveyi nasıl kullanacağınızı öğrenin.

Bu çevirilerin hepsi Copilot tarafından üretilmiştir, bu önerilerin modele dayalı mı yoksa çeviri davranışı sonucu mu üretildiğinden emin olamayız. Aslında, en sütununda yazdığınız İngilizce içerik, zh sütunundaki içeriğe Copilot tarafından “çevrilebilir” (üretilebilir).

resim 21

Ayarlar

İstemci ayarları

Ayar Açıklama Not
temperature Örnekleme sıcaklığı 0.0 - 1.0, 0.0 en yaygın kod parçalarını üretir, 1.0 en yaygın olmayan ve daha rastgele kod parçalarını üretir
length Oluşturulan kod önerisinin maksimum uzunluğu Varsayılan 500
inlineSuggestCount Oluşturulan satır içi öneri sayısı Varsayılan 3
listCount Oluşturulan öneri sayısı Varsayılan 10
top_p Öncelikle gösterilen olasılık N önerileri Varsayılan tüm olası öneriler gösterilir

Kişisel hesap ayarları iki ayar içerir, biri telif hakkı ile ilgili, diğeri gizlilikle ilgilidir.

  • Açık kaynak kodlu önerileri kullanıp kullanmayacağınız, temel olarak Copilot’un oluşturduğu kod parçasındaki telif hakkı sorunlarından kaçınmak, açık kaynak lisansı kısıtlamalarından kaçınmak içindir.
  • Kişisel kod parçalarının ürünün geliştirilmesi için kullanılıp kullanılmayacağı, gizlilik sızıntısı riskini önlemek içindir.

Veri güvenliği

Copilot’un bilgi toplama

  • Ticari sürüm
    • Fonksiyon kullanım bilgileri, kişisel bilgiler içerebilir
    • Kod parçaları toplar, öneri sağlandıktan hemen sonra atar, herhangi bir kod parçasını saklamaz
    • Veri paylaşımı, GitHub, Microsoft, OpenAI
  • Kişisel sürüm
    • Fonksiyon kullanım bilgileri, kişisel bilgiler içerebilir
    • Kod parçaları toplar, öneri sağlandıktan sonra, kişisel telemetry ayarına göre saklar veya atar
    • Kod parçaları içerir, düzenlenecek kod, ilişkili dosyalar, IDE’de açılan dosyalar, kütüphane adresi, dosya yolu
    • Veri paylaşımı, GitHub, Microsoft, OpenAI
    • Kod veri koruması, 1. Şifreleme. 2. Copilot ekibi ile ilişkili GitHub/OpenAI çalışanlarına erişim. 3. Rol tabanlı erişim kontrolü ve çok faktörlü doğrulama gerekir
    • Kod parçalarının kullanılmasını önlemek (saklama veya eğitim), 1. Ayarlar 2. Copilot ekibiyle iletişime geçin
    • Özel kod kullanılır mı? Hayır.
    • Kişisel bilgileri (isim, doğum günü vb.) çıktılayabilir mi? Nadirdir, hâlâ geliştirilmektedir.
  • Ayrıntılı gizlilik bildirimi

Sıkça sorulan sorular

  • Copilot’un eğitim verileri, Github’ın açık depolarından gelir.
  • Copilot’un yazdığı kod mükemmel mi? Elbette değil.
  • Yeni bir platform için kod yazabilir mi? Şu anda sınırlı yetenek.
  • Copilot’u daha iyi nasıl kullanabiliriz? Kodu küçük fonksiyonlara ayırın, fonksiyonun işlevini doğal dille tanımlayın ve giriş/çıkışları belirtin, anlamlı değişken adı ve fonksiyon adı kullanın.
  • Copilot’un ürettiği kodda hatalar olur mu? Elbette kaçınılmaz değildir.
  • Copilot’un ürettiği kod doğrudan kullanılabilir mi? Elbette değil, bazen değiştirilmesi gerekir.
  • Copilot’un ürettiği kod ticari projelerde kullanılabilir mi? Evet.
    • Copilot’un ürettiği kod Copilot’un fikri mülkiyetine ait mi? Hayır.
    • Copilot, eğitim setinden kopyalama yapıyor mu? Copilot kod kopyalamaz, 150 satırdan fazla kodun eğitim setiyle eşleşmesi çok düşük bir ihtimaldir, aşağıdaki iki durumda ortaya çıkar
      • Bağlam bilgisi çok az olduğunda
      • Genel bir sorunun çözümü olduğunda
    • Açık kodla tekrar etmeyi önlemek için nasıl yapılır, filter ayarlayın
      resim 22
  • Copilot’un ürettiği kodu doğru nasıl kullanabiliriz? 1. Üretilen kodu kendiniz test/inceleme; 2. İncelemeden önce otomatik derleme veya çalıştırma yapmayın.
  • Copilot’un her doğal dilde aynı performansı var mı? En iyi performans İngilizcedir.
  • Copilot hakaret içeren içerik üretir mi? Filtrelenmiş, ancak ortaya çıkma ihtimali vardır.