dev-tools
Sözlük ↗Kod Tamamlama
Kod tamamlama, bir geliştiricinin ne yazmak üzere olduğunu tahmin edip öneren özelliktir — bir değişken adını bitirmekten tüm bir işlev gövdesi üretmeye kadar her şey olabilir. Geleneksel kod tamamlama (bazen Microsoft'un uygulamasından sonra IntelliSense olarak adlandırılır) statik analiz tarafından yönlendirilir: IDE bir nesnenin türünü bilir ve yalnızca geçerli yöntemlerini ve özelliklerini sunar. 2021'de GitHub Copilot ile yaygınlaşan modern AI destekli kod tamamlama, bunu milyarlarca satır genel kod üzerinde eğitilmiş bir LLM ile değiştirir veya destekler; bu model, çevredeki dosyayı, açık sekmeleri ve bazen bağlam olarak tüm depoyu temel alarak olası bir sonraki token'ları tahmin eder. Geliştiriciler için önemi: bu, bir geliştiricinin gününde en yüksek frekanslı AI temas noktasıdır — bir sohbette bir kez değil, dakikada birçok kez kabul edilir — bu yüzden gecikmesi ve doğruluğu, algılanan üretkenliğe ağırlıklı şekilde birikir. Kötü tamamlamalar (uzun, desen dışı veya ince şekilde hatalı) kazanılan zamandan daha ağır basabilecek bir "inceleme vergisi" oluşturur. Nasıl çalışır: yazdıkça, editör mevcut dosyayı (ve genellikle yakındaki açık dosyaları veya depo çapındaki gömme vektörlerini) bir tamamlama modeline gönderir; model, gri renkli "hayalet metin" olarak gösterilen sıralı bir öneri döndürür. Tab'a basmak onu kabul eder; yazmaya devam etmek onu görmezden gelir. Copilot ve Cursor gibi modern araçlar ayrıca "bir sonraki düzenleme tahmini" de yapar — yalnızca bir sonraki ne yazacağınızı değil, dosyanın başka nerelerinde ilgili bir düzenleme yapmanız muhtemel olduğunu da tahmin eder. Uygulamalı örnek: Python fonksiyonu yazan bir geliştirici `def calculate_discount(price, customer_tier):` yazmaya başlar ve Enter'a basar. Depoda başka yerlerde benzer katmanlı fiyatlandırma mantığını görmüş olan AI tamamlama motoru şunu önerir: `if customer_tier == "gold": return price * 0.8`, ardından `elif customer_tier == "silver": return price * 0.9` ve varsayılan `return price`. Geliştirici ilk iki satırı Tab ile kabul eder, varsayılan 0,9 indirimini reddedip yerine `0.85` yazar (hayalet metin buna göre güncellenir) ve geri kalanını kabul eder. Tüm fonksiyon, manuel yazmanın bir veya iki dakikasına karşı beş saniyenin altında taslak haline getirilir ve önerinin mantığını doğrudan aynı depodaki bir kardeş fonksiyondan çektiği için, ortaya çıkan kod stili yalnızca genel kod üzerinde eğitilmiş genel bir otomatik tamamlamanın asla başaramayacağı kadar çevredeki kod tabanına yakından uyar. Gecikme burada da son derece önemlidir — görünmesi 800 milisaniye süren bir tamamlama, 100 milisaniyede görünen bir tamamlamaya kıyasla bir geliştiricinin akışını çok daha fazla bozar; bu yüzden tamamlama sağlayıcıları her tuş vuruşunu mevcut en büyük, en yavaş modelden geçirmek yerine bu özel kullanım durumu için hızlı, hafif modellere büyük yatırım yapar.
İlgili terimler