Ana içeriğe geç

Gemini Code Assist: Örneklerle Bir Rehber

Google’ın Gemini Code Assist aracını Visual Studio Code’da Python örnekleriyle nasıl kurup kullanacağınızı öğrenin.
· 12 dk. oku

Yapay Zeka ile Keşfedin

Son zamanlarda açık kaynak modellerde bir artış var ve kod düzenlemeye geldiğinde Cursor AI ve GitHub Copilot gibi oyuncular kullanıcıların yapay zekâlı kod asistanlarını ücretsiz denemesine izin veriyor, ancak gerçek bir proje geliştirmeye kalktığımızda hızla ödeme duvarına çarpıyoruz.

Gemini Code Assist, Google'ın yapay zekâ destekli kod asistanı, yakın zamanda oldukça cömert bir ücretsiz katman sundu. Visual Studio Code ve JetBrains eklentileri şeklinde geliyor. 

Bu eğitimde, onu Visual Studio Code üzerinde nasıl kuracağımızı ve birkaç pratik örnekle nasıl kullanacağımızı öğreneceğiz.

Yapay Zekâlı Kod Asistanları Nedir?

Yapay zekâlı kod asistanları, Visual Studio Code gibi kodlama ortamlarında kod parçacıkları önermek, tekrarlayan görevleri otomatikleştirmek ve gerçek zamanlı düzeltmeler sağlamak için yapay zekâyı kullanarak geliştiricilerin daha verimli kod yazmasına yardımcı olur. Bu sayede geliştiriciler rutin işlere daha az, karmaşık ve yaratıcı çalışmalara daha fazla zaman ayırabilir.

Sohbet robotları kodlama görevlerinde yardımcı olabilir, ancak IDE ile yapay zekâ platformu arasında gidip gelmeyi, bolca kopyala-yapıştır yapmayı gerektirdikleri için kullanımları zahmetli olabilir.

Yapay zekâlı kod asistanları doğrudan kodlama ortamına entegre olur. Bu sayede bağlamımızın farkında olabilir ve soru sorduğumuzda kod parçacıklarını ayrıca vermemize gerek kalmaz. Ayrıca kodu doğrudan değiştirme yeteneği kazandırır, bu da değişiklikleri entegre etmeyi çok daha hızlı hale getirir.

Gemini Code Assist Nasıl Kurulur?

Bu eğitimde, Gemini Code Assist'i Visual Studio Code ile birlikte kullanacağız. Gemini Code Assist bir Visual Studio uzantısıdır; dolayısıyla diğer uzantılarda olduğu gibi kurabiliriz:

  1. Sol paneldeki uzantılar sekmesine tıklayın.
  2. Arama kutusuna "gemini code assist" yazın.
  3. "Install" düğmesine tıklayın.

Visual Studio Code'a Gemini Code Assist kurulumu

Kurulumdan sonra, sol panelde Gemini sekmesi görünecektir. Kod asistanını kullanmaya başlamak için Gemini logosu olan bu sekmeye tıklayın ve Google hesabınıza giriş yapın.

Gemini Code Assist'i etkinleştirme

Gemini Code Assist'i Test Etme

Gemini Code Assist'i test etmek için Python kullanarak yakın tarihli bir Spotify şarkıları veri setini analiz etmeye karar verdim. Kullandığım veri seti Kaggle'dan ve burada mevcut.

Başlamak için bir klasör oluşturun ve songs.csv dosyasını bu klasöre çıkarın. Ardından klasörü Visual Studio Code ile açın. Planımız hiçbir kod olmadan başlayıp Gemini Code Assist'in her şeyi bizim için yazması.

Başlangıç

Gönderdiğim ilk istem, veriyi bir pandas DataFrame'ine yükleyen bir Python fonksiyonu oluşturmasını istedi.

Visual Studio Code'da Gemini Code Assist için ilk istem

Genellikle kod asistanı, mevcut kodu değiştirerek ve yeni değişikliklerin farkını (diff) göstererek çalışır. Bu durumda henüz bir kod olmadığından, sohbet penceresindeki kod kutusunun sağ üst köşesindeki son düğmeye tıklayarak önerilen kodla yeni bir dosya oluşturmasını isteyebiliriz.

Visual Studio Code'da verilen bir kod parçasından yeni dosya oluşturma

Ardından dosyayı songs.py olarak yeniden adlandırıyoruz.

Kodu çalıştırma

Kodu, Visual Studio Code'daki tümleşik terminali kullanarak şu komutla çalıştırabiliriz:

python songs.py

Bu durumda bir hata alıyoruz:

ModuleNotFoundError: No module named 'pandas'

Bunun nedeni, songs.py betiğinin kurulu olmayan pandas'ı kullanmaya çalışması. Bu, Gemini Code Assist'in Visual Studio Code içindeki terminalin çıktısından haberdar olup olmadığını kontrol etmek için iyi bir fırsat.

Hatanın terminalde nasıl düzeltileceğini açıklamasını istedim. Ne yazık ki, terminal çıktısına erişimi olmadığını gösteren genel bir cevap verdi. Alternatif olarak hata metnini kopyalayıp yapay zekâ sohbetine yapıştırmak gerekiyor; bu biraz zahmetli. Ancak bunu yaptığımızda, terminalde pip install pandas komutunu çalıştırmamız gerektiğine dair doğru yanıtı aldık.

Bu talihsiz bir kısıtlama; çünkü bir yazılım mühendisi olarak terminalde gördüğüm bir hata hakkında soru sormak, yapay zekâyı en sık kullandığım durumlardan biridir.

pandas'ı kurduktan sonra kodu başarıyla çalıştırabiliriz.

İlk kod çalıştırmanın sonucu

Genel sorular sorma

Gemini Code Assist yalnızca kodlama sorularıyla sınırlı değildir. Genel veya veriye ilişkin sorular da sorabiliriz. songs.csv dosyasındaki verilere dair fikir edinmek için tüm sütunları listelemesini isteyelim:

gemini code assist için istem

Yanıtta, sütunları listeleyen bir fonksiyon oluşturdu ama ayrıca doğrudan yanıtta bir liste de gösterdi:

songs.csv dosyasındaki sütun listesi

Gemini Code Assist'i kullanırken, yalnızca metinsel bir cevap gerektiren genel bir soru sorduğumda mı, yoksa kod yazmasını istediğimde mi olduğunu ayırt etmekte zaman zaman zorlandığı izlenimini edindim. Bu küçük bir sorun; kod kısmını görmezden gelebiliriz, ancak sohbeti epey kalabalıklaştırıyor.

Yeni işlevler isteme

Önceki yanıttan, bir track_popularity sütunu olduğunu görüyoruz. En popüler şarkıyı getiren yeni bir fonksiyon yazmasını Gemini Code Assist'ten isteyelim.

gemini code assist için istem

Gemini Code Assist yanıtında kod yazdığında, fonksiyon otomatik olarak kodumuza entegre edilmez. Bunu yapmak için, çift ok simgeli "Diff with Open File" düğmesine tıklarız. Tıklamadan önce değişikliklerin ait olduğu dosyanın editörde açık olan dosya olduğundan emin olun; aksi halde değişiklikler yanlış dosyaya birleştirilebilir.

gemini code assist'te diff nasıl görülür

Düğmeye bastıktan sonra bir diff ile karşılaşırız. Solda kodun mevcut hâlini, sağda yeni hâlini görürüz. Kırmızı vurgulanan satırlar silinecek veya değiştirilecek satırları, sarı vurgulananlar ise eklemeleri ya da değişiklikleri temsil eder.

gemini code assist'te farklar

Bu değişiklikleri bulmak için sağdaki kaydırma çubuğuna bakabiliriz. Çoğu zaman dosyada birden fazla noktada değişiklik gerekir ve değişiklikleri kabul etmeden önce hepsine göz atmak önemlidir.

Diff konumları

Bir değişikliğin üzerine geldiğimizde ortada bir ok görüyoruz:

gemini code assist'te farklar

Simgeyi sezgisel bulmuyorum, ancak bu oka tıklamak belirli o değişikliği dahil etmek istemediğimizi belirtir. Hangi değişiklikleri istediğimize karar verdikten sonra, üstteki "Accept” butonuna tıklayarak yeni kodu içeri alabiliriz.

Değişiklikleri entegre etme

Otomatik tamamlama

Şimdiye kadar Gemini Code Assist ile yapay zekâ sohbetini kullanarak etkileşime girdik. Bu, her şeyin aynı pencerede entegre olması ve farkları görmemiz sayesinde, kodu bir yapay zekâ platformuna kopyala-yapıştır yapmak zorunda kalmaya göre zaten çok daha iyi bir iş akışı. Ancak Code Assist bununla sınırlı değil.

Kod yazarken asistan yazdıklarımızı analiz eder ve tek tuşla entegre edilebilen kod önerileri sunar.

Veri setindeki track_popularity sütunu bir parçanın popülerliğini saklar. Belirli bir sanatçının şarkılarının popülerliğini, çıkış tarihine göre sıralayarak gösteren bir fonksiyon yazalım. Sıralama için track_album_release_date'i kullanabiliriz.

Fonksiyonu yazarken Gemini Code Assist otomatik tamamlama önerilerinde bulunur. Fonksiyon imzasını yazmaya başladığımızda, fonksiyon adından ne istediğimizi tahmin eder:

gemini code assist'te otomatik tamamlama örneği

Bir öneriyi eklemek için klavyede yalnızca Tab tuşuna basmamız yeterli. Sıradaki adım, yalnızca verilen sanatçının şarkılarını içeren DataFrame'in bir kopyasını oluşturmak:

gemini code assist'te otomatik tamamlama örneği

Bazen kod önerisi aradığımız şey olmayabilir. Bu durumda hâlâ istediğimizi elle yazmamız ya da yeterince yakınsa kabul edip düzenlememiz gerekir. Bu örnekte, bir sonraki adım track_album_release_date'i bir tarih biçimine dönüştürmek. Ancak nedense Gemini Code Assist yalnızca çıkış yılını almak istiyor; bu yüzden satırı elle yazdım.

gemini code assist'te otomatik tamamlama hatası

Sonraki adımda, şarkıları tarihe göre sıralamak istiyorum:

gemini code assist'te otomatik tamamlama örneği

Son olarak, popülerlik puanlarını döndürüyorum:

gemini code assist'te otomatik tamamlama örneği

Belirli kodu hedefleme

Editörde önce kodu seçerek belirli bir kodu hedefleyebiliriz. Kod seçildiğinde, "Bunu açıkla" veya "Birim testleri üret" gibi birkaç otomatik istem önerilir.

gemini code assist'te seçili kod için istem önerileri

Bir kod parçasını seçip ne yaptığını veya nasıl çalıştığını sorabilmek, yeni bir kod tabanına girerken çok faydalıdır. Bu adımın, mevcut kod tabanına sahip yeni bir ürün üzerinde çalışırken sıklıkla en zor kısım olduğunu gördüm.

Ayrıca özel bir istemle kodu değiştirmesini de isteyebiliriz. Örneğin, az önce oluşturduğumuz analyze_artist_popularity_over_time() fonksiyonunu iyileştirmesini isteyebiliriz:

gemini code assist'te özel istem

Bu durumda, hataları önlemek için bazı kontroller ekleyerek fonksiyonu iyileştirdi.

Ücretsiz Planın Sınırlamaları 

Bireyler için Gemini Code Assist'in ücretsiz planı, Standart ve Kurumsal planlarla karşılaştırıldığında bazı sınırlamalara sahip:

  • Sınırlı özelleştirme ve entegrasyon: Ücretsiz plan, Kurumsal planda sunulan özelleştirilmiş kod önerileri için özel kaynak kodu depolarınızı bağlamanıza izin vermez.
  • Özellik erişimi: Gemini for Firebase ve Apigee'deki bazı gelişmiş özellikler ile Application Integration'da yapay zekâ destekli gelişmiş otomasyon yalnızca Standart ve Kurumsal planlarda mevcuttur.
  • Güvenlik ve uyumluluk: Ücretsiz plan, Standart ve Kurumsal tekliflerde bulunan kurumsal düzeyde güvenlik özellikleri ve yönetim araçları ile fikrî mülkiyet tazminatını içermez.
  • Operasyonel sınırlar: Ücretsiz plan, bireysel kullanım için yeterli olabilecek ancak daha büyük ekip projeleri için kısıtlayıcı olabilecek günlük 6.000 kodla ilgili istek ve 240 sohbet isteği sınırı sunar.
  • Kurumsal özellikler ve destek: API oluşturma için kurumsal bağlam özellikleri ve gelişmiş uygulama kalite analizi ücretsiz planda mevcut değildir.

Daha fazla ayrıntı için Gemini Code Assist’in web sitesine göz atın.

Gemini Code Assist Hakkındaki İzlenimlerim

Genel olarak Gemini Code Assist'in oldukça iyi çalıştığını gördüm. Deneyimime göre, başlıca rakipleri Cursor ve Copilot ile benzer bir performans sergiledi. Ücretsiz bir araç için gerçekten etkileyici. Ücretsiz katman günde 6.000 kodla ilgili istek ve 240 sohbet isteğine kadar destekliyor. Bu, çoğu programcı için fazlasıyla yeterli olmalı.

Burada ele almadığımız bir başka ilginç özellik de GitHub entegrasyonları. GitHub için Gemini Code Assist, hataları ve stil sorunlarını bulmak için çekme isteklerini (pull request) gözden geçirmeye yardımcı olur ve kod değişiklikleri ile düzeltmeleri otomatik olarak önerir. Bu, geliştiricilerin kod yazmaya daha fazla odaklanmasını sağlar. Yardıma ihtiyaç duyulursa, kullanıcılar çekme isteklerine yorum bırakarak Gemini'den yardım isteyebilir.

Karşılaştığım bir sorun, geçmiş isteklerle biraz zorlandığı izlenimiydi. Bazen bazı değişiklikleri isteyip sonra farklı bir yöne gitmeye karar veriyordum. Ancak sonraki yinelemelerde, o değişiklikleri entegre etmekte ısrar etmeye devam ediyordu. Böyle bir örnek, bir parçanın zaman içindeki popülerliğini gösteren fonksiyondu. Başta bu verilerle bir grafik çizmek istedim, sonra fikrimi değiştirdim. Ancak bu veriyi çizdirmeye yönelik kod, daha sonra alakasız isteklerde bile eklenmeye devam etti ve bu biraz can sıkıcıydı.

Kod Asistanlarının Tehlikeleri

Yakın zamanda, bu Reddit başlığında olduğu gibi, Cursor veya Copilot gibi kod asistanlarını kullanmanın zamanla kod yazmayı unutturduğu yönünde endişelerini dile getiren daha fazla programcı gördüm.

Bu araçların olağanüstü bir verimlilik artışı sağladığı ve onları kullanmamanın bizi akranlarımıza kıyasla dezavantajlı konuma düşürdüğü kuşkusuz. Ancak bence hayatta her şeyde olduğu gibi denge gerek, ve yapay zekâ kodlama araçlarında körü körüne verilen kodu kabul etmek tuzağına düşmek kolay. En azından, ürettiği kodu okumaya ve anlamaya zaman ayırmalıyız.

Kod tamamlama kullanmak da daha iyi bir orta yol gibi görünüyor; çünkü en azından bir şeyler yazmaya başlamamız gerekiyor, bu da kas hafızasını korumaya ve programcıların yapay zekâ araçlarına aşırı bağımlı olmasını önlemeye yardımcı oluyor. Kod tamamlama genellikle daha küçük kod parçaları sunduğundan sindirmeyi de kolaylaştırır.

Sonuç

Yapay zekâ araçları gelişmeye devam ediyor; maliyetler düşüyor ve erişilebilirlik artıyor. Gemini Code Assist, ücretsiz olarak güçlü bir yapay zekâlı kod asistanı sunarak bu eğilimi örnekliyor.

Google'ın bu girişimi, geliştiriciler için giriş engelini düşürüyor ve neredeyse herkesin kodlama görevlerinde güçlü yapay zekâ desteği kullanmasını sağlıyor. Özellikle, Gemini Code Assist'in, Cursor ve Copilot gibi ücretli hizmetlerle denk, hatta onlarla rekabet edebilecek özellikler sunması takdire şayan. Günde 6.000 kodla ilgili istek ve 240 sohbet isteğine kadar sunmasıyla, bireysel geliştiriciler veya küçük projeler için fazlasıyla yeterli destek sağlıyor.

François Aubry

Yazar

François Aubry

CheapGPT’te full-stack mühendisi ve kurucuyum. Öğretmek her zaman tutkum oldu. Öğrencilik yıllarımdan itibaren diğer öğrencilere ders verme ve yardımcı olma fırsatlarını hevesle aradım. Bu tutku beni doktora yapmaya yönlendirdi; bu süreçte akademik çalışmalarımı desteklemek için araştırma görevlisi olarak da görev aldım. O yıllarda, geleneksel sınıf ortamında bağlar kurmaktan ve öğrenmeyi kolaylaştırmaktan büyük bir tatmin duydum. Ancak çevrim içi öğrenme platformlarının ortaya çıkmasıyla birlikte dijital eğitimin dönüştürücü potansiyelini fark ettim. Nitekim üniversitemizde bu tür bir platformun geliştirilmesinde aktif rol aldım. Geleneksel öğretim ilkelerini yenilikçi dijital yöntemlerle bütünleştirmeye derinden bağlıyım. Tutkum, yalnızca ilgi çekici ve bilgilendirici olmakla kalmayan, aynı zamanda bu dijital çağdaki öğrenenler için erişilebilir kurslar tasarlamaktır.

Konular

İlgili