Kod tamamlama
Bu derste, modern yazılım geliştirmenin günlük alışkanlığı hâline gelen kod tamamlamayı sıfırdan ele alıyoruz: nasıl çalıştığını, türlerini, yaygın araçlarını ve önerileri doğru kullanmanın yollarını. Konu, yapay zekâ destekli programlamaya yeni adım atanlar için en uygun başlangıç noktalarından biridir. Bu ders, Yapay Zekâ dersleri kategorisindeki Yapay Zekâ ile Programlama ünitesinin ikinci başlığıdır.
Kod Tamamlama Nedir?
Kod tamamlama, sen yazarken düzenleyicinin bir sonraki kod parçasını tahmin edip önermesidir. Öneri, imlecin hemen önünde soluk gri bir yazıyla belirir; bu görünüme hayalet metin (ghost text) denir. Tab tuşuyla öneriyi kabul eder, Esc tuşuyla reddedersin.
Basit bir örnek: bir Python dosyasına def ortalama_hesapla(sayilar): yazdığında araç, listedeki sayıları toplayıp eleman sayısına bölen işlev gövdesini önerebilir. Öneriyi onayladığında kod saniyeler içinde hazır olur; sana yalnızca gözden geçirmek kalır.
Klasik tamamlama ile YZ tabanlı tamamlama arasındaki fark
Eski nesil tamamlama yalnızca açık dosyada geçen kelimeleri tamamlardı; bugünkü anlamda kod tamamlama, büyük dil modelleri sayesinde hiç yazılmamış yeni kod üretebilir. Fark şu maddelerde özetlenebilir:
- Kaynak: klasik tamamlama dosyandaki kelimeleri kullanır; YZ tabanlı tamamlama, eğitildiği milyonlarca koddan öğrendiği örüntüleri yeni koda uygular.
- Kapsam: klasik araçlar kelime düzeyinde kalır; YZ araçları satır, blok hatta işlev bütünü önerebilir.
- Bağlam: klasik tamamlama bağlamı pek dikkate almaz; YZ araçları değişken adlarından yorum satırlarına kadar bağlamı okur.
- Hata riski: klasik tamamlamanın en kötü önerisi alakasız bir kelimedir; YZ önerisi ise doğru görünen ama çalışmayan ya da hiç var olmayan bir öğe olabilir.
Kod Tamamlama Yapay Zekâ ile Nasıl Çalışır?
Bu araçların arkasında, açık kaynak depolardan ve teknik metinlerden eğitilmiş büyük dil modelleri (LLM) vardır. Modeller, kodda da tıpkı doğal dilde olduğu gibi bir sonraki en olası parçayı tahmin etmeyi öğrenir. Sen her tuşa bastığında kabaca şu adımlar işler:
- Düzenleyici o anki bağlamı toplar: dosya adı, içe aktarılan modüller, değişken ve işlev adları, imlecin üstündeki satırlar ve yazdığın yorum.
- Bu bağlam modele gönderilir; model, devamı en doğal görünen kodu olasılıklara dayanarak üretir.
- Üretilen metin hayalet yazı olarak gösterilir; Tab ile kabul edilir ya da yok sayılır.
Modeller yalnızca imlecin üstündeki satırlara değil, dosyanın geneline ve bazı araçlarda açık diğer sekmelere de bakabilir. Bu yüzden işlev ve değişken adlarını projen boyunca tutarlı kullanmak, önerilerin de tutarlı olmasını sağlar. Yorum satırları ise güçlü bir yönlendirme aracıdır: # Bu işlev metindeki e-posta adreslerini listeler gibi bir yorum yazdığında model, bu amaca uyan kod önermeye yönelir.
Kod Tamamlama Türleri
- Satır içi tamamlama: yazarken tek satırlık, hayalet metin biçiminde gelen öneri; en yaygın türdür.
- Çok satırlı (blok) tamamlama: döngü gövdesi ya da koşul bloğu gibi birkaç satırı birden önerir.
- İşlev bütünü önerme: yalnızca işlev adını ve parametrelerini yazarsın; gövdenin tamamını önerir.
- Sohbet temelli üretim: bir kutuya doğal dilde istek yazarsın ve araç isteğe uygun kodu üretir; bu kullanım biçimi, ayrı bir ders olan AI ile kod yazma dersinin konusudur.
İki yaklaşım birbirini tamamlar: sohbet temelli üretim büyük ve yeni parçalar için, satır içi tamamlama ise sıradan ve tekrar eden küçük parçalar için idealdir.
Popüler Kod Tamamlama Araçları
2024-2025 döneminde yaygın kullanılan başlıca araçlar şunlardır:
- GitHub Copilot: alanın en bilinen aracı; Visual Studio Code, JetBrains düzenleyicileri ve github.com üzerinde çalışır, öğrencilere ücretsiz erişim sunar.
- Cursor: VS Code temelli, yapay zekâ odaklı bir düzenleyici; tamamlamayı sohbet ve kod tabanı aramasıyla birleştirir.
- Amazon Q Developer: eski adıyla CodeWhisperer; AWS ortamında geliştirme yapanlara yöneliktir.
- Windsurf (Codeium): güçlü ücretsiz katmanı olan eklenti ve düzenleyici.
- Tabnine: gizlilik ve kurumsal dağıtım seçenekleriyle öne çıkar.
Araç seçerken ücret, desteklenen dil ve düzenleyici, gizlilik politikası gibi ölçütleri birlikte değerlendir.
Daha İyi Öneriler İçin İpuçları
- Anlamlı adlandır: siparisListesiniTariheGoreSirala gibi açıklayıcı bir işlev adı, modelin niyetini anlamasını kolaylaştırır; f1 gibi bir ad öneri kalitesini düşürür.
- Niyeti yorumla yaz: kodun hemen üstüne tek satırlık açıklama eklemek, önerilerin isabetini belirgin biçimde artırır.
- Küçük adımlarla ilerle: tüm programı tek seferde değil, işlev işlev yaz; her adımda öneriyi gözden geçir.
- Dosyayı derli toplu tut: kullanılmayan kodu ve karışık adlandırmayı temizlemek, bağlamı netleştirir.
- Anlamadığın öneriyi açıklat: kabul etmeden önce satırları oku; gerekirse kodu yapay zekâya açıklatabilirsin, yöntemini AI ile kod açıklama dersinde bulursun.
Sık Yapılan Hatalar ve Yanılgılar
- Okumadan kabul etmek: en yaygın hatadır; öneri çalışıyor olsa bile mantık hatası ya da güvenlik açığı içerebilir.
- Var olmayan öğelere güvenmek: modeller zaman zaman hiç var olmayan bir işlev ya da paket adı önerebilir; buna yapay zekâ halüsinasyonu denir. Önerilen paketin gerçekliğini belgelerden doğrula.
- Araç her şeyi biliyor yanılgısı: araç projenin tamamını ve iş kurallarını bilmez; yalnızca gönderebildiği bağlam kadarını görür.
- Temelleri atlamak: tamamlama araçları öğrenmeyi hızlandırır ama yerine geçmez; döngü ve koşul mantığını bilmeyen biri, hatalı öneriyi fark edemez.
- Gizliliği göz ardı etmek: şifre, API anahtarı ya da müşteri verisi gibi hassas bilgileri hiçbir araca girmemelisin; kurumsal projede kodun hangi araçla işlenebileceğine ekip politikası karar verir.
- Hatalı öneriyi tek başına çözmeye çalışmak: kabul ettiğin kod çalışmıyorsa sorunu adım adım incelerken AI ile hata ayıklama dersindeki yöntemlerden yararlanabilirsin.
Kod tamamlama, yapay zekâ destekli geliştirmenin giriş kapısıdır: amacı, denetim sende kalarak hızlanmanı sağlamaktır. Ünitenin büyük resmini çizen AI destekli yazılım geliştirme dersinden ve dil tarafını ele alan Python ve yapay zekâ dersinden devam edebilirsin. Daha geniş programlama başlıkları için yazılım kategorimizdeki derslere göz at.
Sık Sorulan Sorular
Kod tamamlama nedir?
Kod tamamlama, yazarken düzenleyicinin bir sonraki kod parçasını tahmin edip hayalet metin olarak önermesidir; Tab tuşuyla kabul edilen bu öneriler, yazma hızını artıran bir yapay zekâ desteğidir.
Kod tamamlama ile AI ile kod yazma arasındaki fark nedir?
Kod tamamlama pasiftir: sen yazarken küçük parçalar önerir. AI ile kod yazma ise sohbet kutusuna yazılan isteğe göre işlev ya da program bütünü üretir; ikisi birbirini tamamlar.
Kod tamamlama önerileri her zaman doğru mudur?
Hayır. Öneriler olasılıksal tahmindir; mantık hatası içerebilir ya da var olmayan bir işleve işaret edebilir. Her öneri, kabul edilmeden önce okunmalı ve test edilmelidir.