GitHub Copilot Nasıl Kullanılır

Baran Kaya
6 min readMay 7, 2024

--

https://github.blog/2023-02-22-responsible-ai-pair-programming-with-github-copilot/

GitHub Copilot, kod yazmak için en popüler yapay zeka asistanlarından biridir. GitHub Copilot ile niyetinizi doğru bir şekilde nasıl iletebileceğinizi ve gereksiz deneme-yanılmalardan kaçınarak kodu daha hızlı yazabileceğinizi öğrenebilirsiniz.

Bu blog yazısında, GitHub Copilot’tan en iyi şekilde nasıl yararlanabileceğinizi ve hatta ücretsiz erişimi nasıl elde edebileceğinizi açıklıyorum.

GitHub Copilot Nedir?

GitHub Copilot, geliştiricilere kod yazmada yardımcı olmak için tasarlanmış bir yapay zeka aracıdır. Yapay zeka eş programcı olarak adlandırılan bu araç, geniş bir açık kaynak kodu veritabanını ve makine öğrenimi algoritmalarını kullanarak kodun bağlamını anlar ve siz yazarken satır veya tam kod blokları için öneriler sunar.

GitHub Copilot’u diğer benzer çözümlerden ayıran şey, kullanıcı kontrolüne verdiği önceliktir. Kod önerilerini kabul etmekte veya reddetmekte, manuel olarak düzenlemekte ve farklı seçeneklere göz atmakta özgürsünüz.

GitHub Copilot Nasıl Çalışır?

GitHub Copilot’ın önerileri, dosyanızdaki çeşitli bağlamsal ipuçlarına dayanır; örneğin, fonksiyon isimleri, yorumlar, dokümanlaştırma yazıları (docstring’ler) ve imlecin konumu. Bu, özellikle aşina olmadığınız çerçeveler ve kütüphanelerle çalışırken oldukça faydalıdır. Copilot, açık kaynak dökümantasyonunu hızla okuyabilir ve size birkaç saniye içinde alakalı bilgiler ve kod parçacıkları sunabilir.

Araç, tüm programlama dillerini destekler ve hatta yalnızca dosya içindeki bağlamdan yola çıkarak düz metinlerle bile çalışabilir. GitHub Copilot’ın öne çıkan özelliklerinden biri, hem programlama dillerini hem de doğal insan dillerini anlama yeteneğidir. Ancak önerileri her zaman mükemmel değildir: bazıları pratik olmayabilir veya belirli bağlamlarda mantıklı gelmeyebilir.

Ayrıca, GitHub Copilot’un önerdiği kodları test etmediğini unutmamanız önemlidir. Program derlenmeyebilir veya doğru şekilde çalışmayabilir, bu nedenle kullanmadan önce kodu dikkatlice gözden geçirmek ve test etmek hayati öneme sahiptir.

GitHub Copilot ile Nasıl Başlanır

GitHub Copilot kullanmaya başlamak gerçekten çok kolay. Eklentiyi yüklemeniz ve birkaç klavye kısayolunu öğrenmeniz yeterli.

Eklentiyi Yükleyin

GitHub Copilot, varsayılan olarak hiçbir metin düzenleyiciye dahil edilmez, bu nedenle onu bir eklenti olarak yüklemeniz gerekir. Bunu yapmak için aşağıdaki seçenekleri kullanabilirsiniz:

  • Visual Studio Code Marketplace,
  • JetBrains Marketplace,
  • GitHub Copilot için Neovim Eklentisi.

Yüklendikten sonra, Copilot, eklentiye yetki vermek için GitHub’a giriş yapmanızı isteyecek. Ardından, düzenleyicinize geri yönlendirileceksiniz. Kurulumun başarılı olup olmadığını görmek için düzenleyicinizin durum panelinde Copilot simgesini kontrol edin.

GitHub Copilot için temel klavye kısayolları, macOS, Windows ve Linux platformları arasında biraz farklılık gösterir.

Artık yapay zeka eş programcım çalışmaya hazır. Bir sonraki bölümde, ondan en iyi şekilde nasıl yararlanabileceğinizi açıklayacağım.

GitHub Copilot best practices

GitHub Copilot, çok çeşitli kod örnekleriyle eğitildiği için bir sonraki kod satırı için sayısız tahmin üretebilir. Genel kural, belirli bir satırın etrafında daha fazla bağlam sağlarsanız bu tahminleri daraltmaya yardımcı olabilirsiniz.

Genel öneriler şunlardır:

  • Fonksiyonlar için açıklayıcı isimler oluşturun: Anlamlı isimler, Copilot’un niyetinizi daha iyi anlamasına ve daha doğru öneriler sunmasına yardımcı olur.
  • Yorumlarla Copilot’u yönlendirin: Kodunuzda açıklayıcı yorumlar yazarak, aracı belirli kod parçacıkları veya fonksiyonlar oluşturması için yönlendirebilirsiniz.
  • Farklı senaryoları keşfedin: Copilot’u çeşitli programlama senaryolarında deneyin, birim testleri yazmaktan yeni kütüphaneler veya çerçeveler keşfetmeye kadar. Bu yaklaşım değerli bakış açıları sağlayabilir.
  • Geribildirim sağlayın: Önerileri gözden geçirerek ve geliştirerek, Copilot’a belirli proje gereksinimleriyle uyumlu doğru yönlendirmeyi verin.

Şimdi, ayrıntılara girelim; nihai kodunuzun hem onu çalıştıran bilgisayara hem de onu okuyan programcılara hizmet ettiğini unutmayın. Bu nedenle, kodunuzun hem doğru hem de anlaşılır olduğundan emin olun.

GitHub Copilot gibi büyük dil modelleri (LLM’ler), desenleri tanımakta ve sürdürmekte iyidir. Bu nedenle, Copilot’un etkinliğini artırmak için kodunuzu daha fazla desen tabanlı hale getirmeniz önerilir; yani, tutarlı ve tanınabilir desenler veya bloklar halinde yapılandırın.

Açık dosyalar

GitHub Copilot, sınırlı “bağlam pencereleri” ile çalışır; bu da, bir seferde tüm kod tabanını tam anlamıyla kapsayamayacağı anlamına gelir. Ancak GitHub, Copilot’a bir düzeyde bağlam sunmayı hedefler. Bu nedenle, düzenleyicinizde açık dosyalar varsa, GitHub, Copilot’un önerilerini bilgilendirmek için bu dosyaların içeriğini kullanabilir. Örneğin, testler yazıyorsanız, test edilen dosyayı açık tutun veya veri işleme üzerinde çalışıyorsanız, bir örnek veri dosyasını açık tutun. Bazı durumlarda, bağlam için birden fazla dosya gerekebilir: biri yeni bir dosyanın yapısını gösterirken, diğeri temel verileri sağlayabilir.

Yorumlar

Farklı seviyelerde yorumlar ekleyin. Yüksek seviyeli yorumlarda, dosyanın amacını ve projenin geri kalanıyla olan ilişkisini açıklayın. Satır seviyesindeki yorumlarda, fonksiyonları ve sınıfları belirtin. En etkili yorumlar, koddaki belirsizlikleri nasıl çözdüğünüzü vurgulayanlardır. Örneğin, Python’da, fonksiyon seviyesindeki bir yorum, bir listeyi işleyen bir fonksiyonun yeni bir liste mi döndüreceğini yoksa mevcut listeyi mi değiştireceğini belirtebilir; bu, fonksiyonun nasıl yazılacağını büyük ölçüde etkiler.

Imports

Birçok programlama dilinde, dosyanın başında standart veya üçüncü taraf kütüphaneleri açıkça içe aktarmak gerekir. Bu bilgi, Copilot’un kod üretimi için uygun yaklaşımı belirlemesinde değerlidir. Örneğin, Python’da, web kazıma için urllib3 ve BeautifulSoup gibi kütüphaneleri import etmek, Copilot’un uygun kodu oluşturmasına yardımcı olacaktır.

İsimler

Kodunuzda Copilot’a daha fazla bağlam sağlayan açıklayıcı isimleri tercih edin. Örneğin, kodunuz JSON dosyasını ayrıştırmayı ve sonucu saklamayı içeriyorsa, değişkeni sadece data olarak adlandırmak fazla belirsiz olabilir. Eğer sonuç kitapların bir listesi ise, books gibi daha açıklayıcı bir isim, değişkenin bir dizi içerdiğini ve her öğenin bir kitabı temsil ettiğini gösterir.

  • Tutarlı değişken adlandırma kurallarını kullanın. Özellikle programlama dilinin kurallarına uygun bir adlandırma şeması izleyin. Dizi benzeri nesneleri tutan değişkenler için “s” son ekini eklemek yaygın bir uygulamadır. Ayrıca, Copilot, adlandırma desenlerinizi daha iyi anladığında daha etkili çalışır (örneğin, getter fonksiyonlarını get ile başlatmak).

Types

Python veya JavaScript gibi type belirtmenin isteğe bağlı olduğu dillerde, özellikle fonksiyon parametreleri ve dönüş değerleri için type eklemeyi düşünün. Bu, Copilot’un kod önerilerini önemli ölçüde iyileştirebilir.

Yapılandırılmış kod

Kodunuzu öngörülebilir ve düzenli bir şekilde organize etmek, hem okunabilirliği hem de Copilot’un kodunuzu anlama yeteneğini artırır. Doğru yapılandırma, sadece koda değil, aynı zamanda ilgili dosyalara da uygulanır.

GitHub Copilot Kullanırken Gizlilik Koruması, Lisanslama ve Gizlilik Sözleşmesi (NDA)

GitHub Copilot, GitHub’daki açık depolar da dahil olmak üzere büyük miktarda kod üzerinde eğitilmiştir. Bu, telif hakkıyla korunan veya lisanslı kodun kullanılmasıyla ilgili endişeleri gündeme getirir. Copilot, tescilli veya belirli lisanslara tabi olabilecek kod parçacıkları önerebilir ve bu öneriler, uygun atıf yapılmadan veya lisans koşullarına uyulmadan kullanılırsa fikri mülkiyet ihlallerine yol açabilir.

Ayrıca güvenlik endişeleri de vardır. Gizli veya NDA ile korunan kodla birlikte kullanıldığında, GitHub Copilot’un dikkatli bir şekilde ele alınması gerekir.

Bilmeniz gerekenler şunlardır:

  • Araç, GitHub’daki açık kodları içeren bir veri kümesi üzerinde eğitildiğinden, doğrudan özel depolara veya halka açık olmayan koda erişmez veya bunları kullanmaz. Bu, özel ortamlarda veya NDA kapsamında gördüğü kodlardan ‘öğrenmediği’ veya ‘hatırlamadığı’ anlamına gelir.
  • Eğer bir NDA kapsamında olan bir kod üzerinde çalışıyorsanız, Copilot, kodun gizli olduğunu ‘bilmez.’ Yine de, eğitimine dayanarak önerilerde bulunmaya devam eder.
  • NDA’ye bağlı kod üzerinde Copilot kullanırken temel endişe, aracın kodu sızdırması değil (çünkü kodunuzu bir sunucuya geri göndermiyor veya ondan öğrenmiyor), aksine sağladığı önerilerin, eğitim veri setinden tescilli veya hassas kod parçacıkları içermediğinden emin olmaktır.

Sonuç olarak: Gizli veya NDA ile korunan kodla çalışırken, Copilot’un sağladığı tüm kod önerilerini gözden geçirmeniz gerekir. Bir geliştirici olarak, bu tür araçların kullanımının kuruluşunuzun güvenlik politikalarına ve herhangi bir NDA’nın şartlarına uygun olduğundan emin olmak sizin sorumluluğunuzdadır.

Açık kod için, önerilerini kabul ettiğinizde eşleşen kod hakkında ayrıntılar sunan kod referanslama özelliğini kullanabilirsiniz. Ancak, bu özellik şu anda yalnızca Visual Studio Code’da mevcuttur.

GitHub Copilot ücretsiz mi?

İyi şeylerin hepsi bir bedelle gelir. Bireyler için GitHub Copilot’un her bir kullanıcı için aylık maliyeti 10 dolar veya yıllık 100 dolardır. İşletme versiyonu ise her kullanıcı için ayda 19 dolar olarak fiyatlandırılır. Neyse ki, her abonelik 30 günlük ücretsiz deneme süresiyle gelir.

Ancak iyi haberler de var. Eğer bir öğretmen, öğrenci ya da popüler açık kaynak projesinde maintainer iseniz, aracı ücretsiz olarak kullanabilirsiniz.

Daha fazla ayrıntıyı GitHub Copilot’un SSS (Sıkça Sorulan Sorular) sayfasında bulabilirsiniz.

GitHub Copilot alternatifleri nelerdir?

GitHub Copilot’a hem ücretsiz hem de ücretli birkaç alternatif vardır. İşte denemek isteyebileceğiniz bazı ücretsiz seçenekler:

JetBrains AI Assistant: Intellij IDEA’da plugin olarak yüklenebilen bir araçtır. IDE bazı özelliklerine entegre olarak çalışabilmesi gibi avantajları vardır.

Code Whisperer: Amazon’un bu aracı, bireysel kullanım için ücretsizdir. AWS Toolkit uzantısı, yalnızca Code Whisperer’ın kodlama asistanı özelliklerini sağlamakla kalmaz, aynı zamanda AWS kaynaklarını görüntülemeyi, değiştirmeyi ve dağıtmayı da kolaylaştırır. Code Whisperer, çeşitli programlama dillerini destekler.

IntelliCode: Microsoft tarafından geliştirilen Visual Studio ve Visual Studio Code için açık kaynaklı bir uzantıdır. Mevcut bağlama göre özelleştirilmiş ve birçok dil ve çerçeveyle uyumlu kod önerileri üretir.

CodeGeex: 20'ye kadar farklı programlama dilinden oluşan büyük kod depolarıyla çalışır ve farklı programlama dilleri arasında kod dönüştürebilir.

TabNine: Bu yapay zeka kod asistanı, akıllı kod tamamlama, sözdizimi vurgulama ve hata kontrolü sunar. Açık kaynak veri setlerinden öğrenir ve kişisel kullanım için ücretsizdir.

GitHub Copilot, yazılım geliştirme sürecinizi önemli ölçüde hızlandırabilir. Deneyiminizi geliştirmek için, iyi yapılandırılmış, daha küçük fonksiyonlar ve açıklayıcı yorumlar aracılığıyla net bir bağlam sağlamaya odaklanın. GitHub Copilot’u çeşitli kodlama senaryolarında denemek, aracın kodunuzla ilgili önerilerini sürekli geliştirmesine yardımcı olur ve böylece daha iyi bir yardımcı haline gelir.

Bu bölümde sizin için derlediğimiz materyalleri keşfederek konuyu daha derinlemesine inceleyin.

--

--