Gemini Code Assist kod özelleştirmesini kullanma

Bu belgede, Gemini Code Assist kod özelleştirme özelliğinin nasıl kullanılacağı açıklanmakta ve birkaç en iyi uygulama sunulmaktadır. Bu özellik, kuruluşunuzun dahili kitaplıklarından, özel API'lerinden ve kodlama stilinden yararlanan kod önerileri almanızı sağlar.

Başlamadan önce

  1. Enterprise aboneliği ile Gemini Code Assist'i ayarlayın.
  2. Gemini Code Assist kod özelleştirmesini ayarlayın.

Kod özelleştirmeyi kullanma

Aşağıdaki tabloda, Gemini Code Assist kod özelleştirmesini kullanmanın yolları listelenmiştir:

Form Nasıl tetiklenir? Notlar ve kaynaklar

Doğal dilde sohbet

IDE'deki Gemini Code Assist sohbetine doğal dilde bir istem girin.

Aşağıdakileri göz önünde bulundurun:

  • Sohbet geçmişi kullanılamaz. Çok adımlı sorgulardan kaçının.
  • Kaynaklarla ilgili daha fazla ayrıntı isteyebilir, örneğin belirli kaynakların bağlantılarını alabilirsiniz.
  • Sohbette mesaj gönderirken kodu vurgular veya seçerseniz Gemini Code Assist, kod özelleştirmesini ve sohbet kalitesini iyileştirmek için bu kodu kullanır.

Daha fazla bilgi için Gemini Code Assist ile sohbet etme başlıklı makaleyi inceleyin.

Kod oluşturma IDE'nizdeki hızlı seçim çubuğunda, kod seçili olsun veya olmasın Command+Enter (macOS'te) ya da Control+Enter tuşlarına basın. Daha fazla bilgi için İstemlerle kod oluşturma başlıklı makaleyi inceleyin.
Kodu dönüştür IDE'nizdeki hızlı seçim çubuğunda, kod seçili olsun veya olmasın /fix girin. Daha fazla bilgi için İstemlerle kod oluşturma başlıklı makaleyi inceleyin.
Otomatik tamamlama Kod özelleştirme otomatik olarak tetiklenir ve yazdıklarınıza göre öneriler sunar.

Aşağıdakileri göz önünde bulundurun:

  • Kod tamamlama, öneri sunmak için belirli bir güven düzeyine ihtiyaç duyar. İlgili snippet'lerin alınabilmesi için önemli miktarda kodun mevcut olduğundan emin olun.
  • Kod tamamlama, işlevin belirli öğelerini kullanmak için gerekli kitaplıklara sahip olup olmadığınızı kontrol eder.

Daha fazla bilgi için Kod tamamlama önerileri alma başlıklı makaleyi inceleyin.

Uzak depo bağlamı
  1. İsteminize @ simgesiyle başlayın. Dizin oluşturulmuş kullanılabilir uzak depoların listesi gösterilir.
  2. Listeden bağlam için kullanmak istediğiniz depoyu seçin. Listeyi filtrelemek için depo adını yazmaya da başlayabilirsiniz.
  3. Depoyu seçtikten sonra isteminizin geri kalanını yazın.

Aşağıdakileri göz önünde bulundurun:

  • Bu özellik, çoğunlukla belirli bir mikro hizmet, kitaplık veya modül grubuyla ilgili bir görev üzerinde çalışırken kullanışlıdır.

Daha fazla bilgi için Uzak depo bağlamıyla daha alakalı öneriler alma başlıklı makaleyi inceleyin.

Kullanım alanları ve istem örnekleri

Aşağıdaki tabloda, belirli kullanım alanlarında kod özelleştirme ile ilgili rehberlik ve örnekler verilmektedir:

Kullanım alanı Denemeye değer şeyler
Yeni kod yazma

IDE'nizde veya Gemini Code Assist sohbetinde kod oluşturmak için aşağıdakileri deneyin:

  • Kod tabanınızda zaten belirtilmiş terimleri kullanan kod oluşturun.
  • İşlevsel imza veya TODOaçıklamalar içeren kod gibi kodunuzu yapıştırın ve Gemini Code Assist'ten TODOaçıklamaları kodla doldurmasını veya değiştirmesini isteyin. Bağlamdan açıklama içeren yorumlar ekleyin.

Gemini Code Assist sohbetinde aşağıdaki istemlerle kod oluşturmayı deneyin:

  • "DATABASE ile bağlantının oluşturulduğu bir ana işlev yaz. Durum denetimlerini dahil edin."
  • "Aşağıdaki yapıda bir FUNCTION_OR_CLASS yaz: EXPLAIN_STRUCTURE."

Bir kod oluşturduktan sonra, kodu iyileştirmek için ek istem kullanmayı deneyin:

  • "Oluşturulan kodu (ör. söz dizimi hataları) ayarlamak için /fix komutunu deneyin."
  • "Eksik içe aktarmaları ekle"
  • "Sohbet tarafından oluşturulan kodda /fix'yı deneyin."
Kodu temizleme, basitleştirme ve yeniden düzenleme

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "Bu dosyada IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS birleştirebilir misin?"
  • "FUNCTION_NAME işlevini nasıl basitleştirirsiniz?"
  • "FUNCTION_NAME_1 ve FUNCTION_NAME_2 işlevlerini tek bir işlevde birleştirebilir misin?"
  • "Could you inline some variables in FUNCTION_NAME?" ("FUNCTION_NAME içinde bazı değişkenleri satır içi olarak ekleyebilir misin?")
  • "FUNCTION_NAME işlevinde değişken adlandırmayı basitleştirebilir misin?"
Okunabilirlik

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "Mümkünse FUNCTION_NAME işlevini daha az kod satırıyla yaz."
  • "Add comments to the function FUNCTION_NAME." (Fonksiyona yorum ekle FUNCTION_NAME.)
  • "İşlevdeki gereksiz boşlukları kaldırın FUNCTION_NAME."
  • "FUNCTION_NAME işlevini kodun geri kalanıyla benzer şekilde biçimlendir."
Kod incelemesi

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "Kodu parçalara ayır ve her parçayı kod tabanımızı kullanarak açıkla."
  • "Daha kısa ve daha açıklayıcı olabilecek değişkenler veya anahtar kelimeler var mı?"
  • "Can you give me useful code from the REPOSITORY_NAME_PACKAGE_MODULE context for this code?" (Bu kod için REPOSITORY_NAME_PACKAGE_MODULE bağlamından yararlı bir kod verebilir misin?)
  • "FUNCTION_NAME işlevi hakkında ne düşünüyorsun?"
Hata ayıklama

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "X işlemini yapmaya/Y öğesini eklemeye çalıştığımda hata alıyorum. Neden?"
  • "FUNCTION_NAME işlevinde hata bulabilir misin?"
  • "Bu hata mesajı göz önüne alındığında FUNCTION_NAME işlevini nasıl düzeltirsiniz?"
Öğrenme ve oryantasyon

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "Bu kodu parçalara ayır ve her birini kod tabanımızı kullanarak açıkla."
  • "Show how to call function FUNCTION_NAME?" (Show how to call function FUNCTION_NAME? - İşlevi nasıl çağıracağımı göster FUNCTION_NAME?)
  • "Show how to run the main function in the ENVIRONMENT_NAME environment?" ("ENVIRONMENT_NAME ortamında ana işlevin nasıl çalıştırılacağını göster?")
  • "Bu kodu daha iyi performans gösterecek şekilde değiştirmek için yapabileceğimiz en önemli teknik iyileştirme nedir?"
  • "Daha iyi sonuçlar elde etmek için FUNCTION_OR_CLASS_NAME öğesinin nasıl uygulandığını göster ve bu öğenin ne olduğunu ekle" (örneğin, "foo işlevinin nasıl uygulandığını göster. Burada foo, işlevin adıdır.")
Taşıma

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "FILE_NAME dilinden LANGUAGE_1 diline nasıl geçiş yapabileceğime dair bir strateji ver." Örneğin, Go'dan Python'a geçiş.LANGUAGE_2
  • "REPOSITORY_NAME deposundaki FUNCTION_NAME işlevine göre, LANGUAGE_NAME dilinde kullanabileceğim eşdeğer bir işlev bul."

Aşağıdaki istemleri kullanarak sohbet tabanlı veya kod oluşturma dönüşümü iş akışını deneyin:

  1. "LANGUAGE_1 dilinde yazılmış FILENAME_COMPONENT kodunu alıp yeniden düzenle ve LANGUAGE_2 diline taşı" (örneğin, Go'dan Python'a).
  2. Bazı kodları taşıdıktan sonra aşağıdakileri deneyin:
    • Daha küçük parçalar seçin ve /fix simgesini kullanarak istediğiniz duruma getirin.
    • Aşağıdaki istemleri deneyin:
      • "İyileştirilebilecek bir şey var mı?"
      • "Olası sorun noktalarını göster."
      • "Bu taşıma işlemi doğruysa bu kodu nasıl test edersiniz?"
Belge oluşturma

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "Paket veya klasördeki kodu özetle X ve en önemli beş yöntemle ilgili doküman sağla."
  • "FUNCTION_OR_CLASS_NAME için doküman oluştur."
  • "Shorten the documentation while preserving the key information." (Temel bilgileri koruyarak dokümanları kısalt.)
Birim testi oluşturma

Gemini Code Assist sohbetinde aşağıdaki istemleri deneyin:

  • "FILENAME için birim testleri oluştur."
  • "FUNCTION_NAME işlevi için en alakalı test durumlarını ekle."
  • "Çok fazla değer katmadığını düşündüğünüz test senaryolarını kaldırın."

En iyi uygulamalar

  • Alakalı değişken ve işlev adları ya da kod snippet'leri kullanın. Bu, kod özelleştirmesini en alakalı kod örneklerine yönlendirir.
  • Ölçeklendirmek istediğiniz dizin depolarını kullanın ve kullanımdan kaldırılan işlevleri eklemeyin. Kod özelleştirme, kod tabanında kod stili, kalıplar, kod semantiği, bilgi ve uygulamaları ölçeklendirmeye yardımcı olur. Ölçeklendirme için kötü depo örnekleri arasında kullanımdan kaldırılmış işlevler, oluşturulmuş kod ve eski uygulamalar yer alır.
  • Kod alma kullanım alanlarında, kod tamamlama yerine kod oluşturma işlevini kullanın. "FUNCTION_NAME tanımını kullanarak aynı işlevi oluştur" veya "FUNCTION_NAME işlevinin tam uygulamasını oluştur" gibi bir dil kullanarak istem oluşturma
  • Gemini'ın bağlama dair farkındalığını artırmak için almak istediğiniz kodun bulunduğu dosyada include veya import ifadeleri yer almalıdır.
  • Her istem için yalnızca bir işlem gerçekleştirin. Örneğin, kodu almak ve bu kodun yeni bir işlevde uygulanmasını istiyorsanız bu adımları iki istemde gerçekleştirin.
  • Yalnızca koddan daha fazlasını istediğiniz kullanım alanlarında (ör. kod açıklaması, taşıma planı veya hata açıklaması), Gemini ile kod tabanınız bağlamında sohbet ettiğiniz sohbet için kod özelleştirmeyi kullanın.
  • Yapay zeka modeli oluşturmanın deterministik olmadığını unutmayın. Yanıtı beğenmediyseniz aynı istemi tekrar girerek daha iyi bir sonuç elde edebilirsiniz.
  • Birim testleri oluşturmanın genellikle dosyayı yerel olarak açtıktan sonra sohbetten bu dosya veya belirli bir işlev için birim testleri oluşturulmasını istemeniz durumunda daha iyi çalıştığını unutmayın.

Uzak depo bağlamıyla daha alakalı öneriler alma

Gemini Code Assist'i belirli uzak depolar üzerinde çalışmaya yönlendirerek bağlama daha uygun ve alakalı kod önerileri alabilirsiniz. Sohbette @ simgesini kullanarak istemleriniz için bağlamın birincil kaynağı olarak kullanılacak bir veya daha fazla depo seçebilirsiniz. Bu özellik, çoğunlukla belirli bir mikro hizmet, kitaplık veya modül grubuyla ilgili bir görev üzerinde çalışırken kullanışlıdır.

Bağlam olarak uzak bir depo kullanmak için IDE'nizin sohbetinde aşağıdaki adımları uygulayın:

  1. İsteminize @ simgesiyle başlayın. Dizine eklenmiş kullanılabilir uzak depoların listesi gösterilir.
  2. Listeden bağlam için kullanmak istediğiniz depoyu seçin. Listeyi filtrelemek için depo adını yazmaya da başlayabilirsiniz.
  3. Depoyu seçtikten sonra isteminizin geri kalanını yazın.

Gemini, yanıt oluştururken seçilen depoya öncelik verir.

Örnek İstemler

Bu özelliği nasıl kullanabileceğinize dair bazı örnekleri burada görebilirsiniz:

  • Bir depoyu anlamak için:
    • "@REPOSITORY_NAME Bu depodaki genel yapı nasıl?"
    • "@REPOSITORY_NAME Ekibe yeni katıldım. Bu deponun amacı ve temel modülleri hakkında genel bir bilgi verebilir misin?"
  • Kod oluşturma ve değiştirme için:
    • "@REPOSITORY_NAME Bu depodaki kimlik doğrulama işlevine benzer bir işlev uygulayın."
    • "@REPOSITORY_NAME Aşağıdaki kodu, seçilen depodaki kurallara uyacak şekilde yeniden düzenle."
    • "@REPOSITORY_A_NAME Bu depodaki en yeni işlevleri kullanarak REPOSITORY_B_NAME dilindeki kodumu nasıl iyileştirebilirim?"
  • Test için:
    • "@UNIT_TEST_FILE_NAME Seçili dosyadaki örneklere göre MODULE için birim testleri oluştur."

Bağlam için odaklanılmış bir kaynak olarak uzak depoları kullanarak Gemini Code Assist'ten daha doğru ve alakalı öneriler alabilirsiniz. Bu öneriler, daha hızlı ve verimli bir şekilde kod yazmanıza yardımcı olabilir.