Claude ile Kod Yazmak: Prompt’tan Çalışan Uygulamaya
Yazılım dünyası garip ve bir o kadar da heyecan verici bir yere doğru evriliyor. Eskiden saatlerce Stack Overflow forumlarında hata kodu ararken bugün yapay zekayla kahve eşliğinde sohbet ederek kod yazıyoruz. Peki, Anthropic’in geliştirdiği Claude gibi bir LLM (büyük dil modeli) gerçekten bizim yerimize hatasız kod yazabilir mi? Yoksa her şey süslü bir prompt engineering pazarlamasından mı ibaret?
Bu yazıda büyük vaatleri bir kenara bırakıp Claude’u masaya yatırıyor, sıfırdan çalışan bir uygulamayı nasıl ayağa kaldıracağımızı adım adım deniyoruz.
Neden Claude, neden şimdi?
Piyasada GPT-4o, Gemini ve Llama gibi güçlü rakipler varken neden Claude? Claude 3.5 Sonnet modelinin özellikle yazılımcılar arasında bu kadar popüler olmasının iki temel nedeni var: bağlam yönetimi (context window) ve mantıksal akıl yürütme yeteneği.
Bağlam penceresi, bir modelin tek seferde ne kadar bilgiyi aklında tutabildiğini belirler. Claude, kod blokları arasındaki ilişkileri ve projenin genel yapısını rakiplerine göre çok daha iyi kavrıyor. Kodu yalnızca “tamamlamıyor”, projenin mimarisini anlayarak mantıklı öneriler de sunuyor.
Sistem promptu ve context yönetimi: Claude’a “kim olduğunu” söyleyin
Doğrudan “Bana bir yapılacaklar listesi uygulaması yaz” derseniz, Claude size ortalama, jenerik ve muhtemelen hatalarla dolu bir kod sunacaktır. İyi çıktının sırrı, ona doğru bir rol (System Prompt) vermektir.
Claude API kullanırken ya da arayüzden çalışırken şu tarz bir sistem tanımı yapmak işleri tamamen değiştirir:
Sen kıdemli bir Python ve React geliştiricisisin.
Yazdığın kodlar temiz, okunabilir (clean code prensiplerine uygun) ve optimize olmalı.
Hataları açıklamadan önce doğrudan çalışan kodu ver, ardından kısa açıklamalar ekle.
Bu basit dokunuş yapay zekanın “gevezelik etmesini” engeller ve doğrudan sonuca odaklanmasını sağlar.
Gerçek bir deney: Python ile CLI harcama takipçisi
Claude’un yeteneklerini test edelim. Amacımız, harcamalarımızı terminalden kaydeden, bunları bir JSON dosyasında tutan ve basit bir rapor sunan Python tabanlı bir uygulama yazmak.
Claude’a verdiğimiz ilk prompt şu oldu: “Bana kullanıcıdan harcama adı ve tutar alan, bunları local bir JSON dosyasında saklayan ve ‘rapor’ komutuyla toplam harcamayı gösteren basit bir Python CLI aracı yaz.”
Claude’un saniyeler içinde ürettiği kod şuydu:
import json
import os
DB_FILE = "harcamalar.json"
def verileri_yukle():
if not os.path.exists(DB_FILE):
return []
with open(DB_FILE, "r", encoding="utf-8") as file:
return json.load(file)
def verileri_kaydet(veriler):
with open(DB_FILE, "w", encoding="utf-8") as file:
json.dump(veriler, file, indent=4, ensure_ascii=False)
def harcama_ekle(isim, miktar):
veriler = verileri_yukle()
veriler.append({"isim": isim, "miktar": float(miktar)})
verileri_kaydet(veriler)
print(f"✓ {isim} ({miktar} TL) başarıyla eklendi!")
def rapor_goster():
veriler = verileri_yukle()
toplam = sum(item["miktar"] for item in veriler)
print("\n--- HARCAMA RAPORU ---")
for item in veriler:
print(f"- {item['isim']}: {item['miktar']} TL")
print(f"----------------------\nToplam: {toplam} TL\n")
# Basit bir döngü ile CLI yönetimi
if __name__ == "__main__":
while True:
islem = input("1. Harcama Ekle\n2. Rapor Göster\n3. Çıkış\nSeçiminiz: ")
if islem == "1":
isim = input("Harcama kalemi: ")
miktar = input("Tutar: ")
try:
harcama_ekle(isim, miktar)
except ValueError:
print("Lütfen geçerli bir sayı girin!")
elif islem == "2":
rapor_goster()
elif islem == "3":
break
else:
print("Geçersiz seçim!")
Kodu kopyalayıp terminalimizde çalıştırdık. Kod ilk seferde, hiçbir kütüphane çakışması ya da yazım hatası olmadan çalıştı.
Ancak bu çok temel bir uygulamaydı. “Acaba veri doğrulama (validation) kısmında patlar mı?” diye düşünüp sayı yerine harf girmeyi denedik. Claude yazdığı try-except bloğu sayesinde bu hatayı da önceden öngörmüştü. Claude’u rakiplerinden ayıran “detaycılık” tam olarak bu.
Claude ile kod yazmanın artıları ve eksileri
Birkaç haftalık yoğun kullanımın ardından süreci objektif biçimde değerlendirelim.
| Artıları (+) | Eksileri (-) |
|---|---|
| Prototip süresini %80 azaltır. | Büyük projelerde bazen bağlamı kaybedip saçmalayabilir (halüsinasyon). |
| Hata kodlarını (Debugging) çok hızlı çözer. | API kullanımı yoğun projelerde pahalı olabilir. |
| Bilmediğiniz dillerde hızlıca temel atmanızı sağlar. | Yazılımcıyı tembelliğe alıştırıp öğrenme sürecini köreltebilir. |
Cüzdanı üzmeyelim: Claude fiyatlandırması
Claude’u kullanmanın birkaç yolu var. İhtiyacınıza ve bütçenize göre en uygun olanı seçebilirsiniz:
- Claude.ai web arayüzü: Ücretsiz seçeneği var ama günlük limitleri oldukça katı. Claude Pro ise aylık 20$.
- Anthropic API: Kullandıkça öde (pay-as-you-go) modeli. Küçük projeler için oldukça ucuzdur, girdiğiniz ve aldığınız token miktarına göre ücretlendirilirsiniz.
Ücretsiz alternatifler
Cebinizden para çıksın istemiyorsanız şu yolları izleyebilirsiniz:
- Cursor: Yapay zeka destekli bu kod editörü, Claude 3.5 Sonnet’i belirli bir kota dahilinde ücretsiz denemenize izin verir.
- Hugging Face / OpenRouter: Benzer yeteneklere sahip açık kaynaklı alternatif modelleri (örneğin Llama 3) buralarda tamamen ücretsiz deneyebilirsiniz.
- Ollama (yerel kullanım): Bilgisayarınızın donanımı güçlüyse yerelde çalışan modellerle internet bağlantısı olmadan, ücretsiz ve sınırsız kodlama yapabilirsiniz.
Son söz: Geliştirici koltuğu hâlâ sizin
Yapay zeka araçları ne kadar gelişirse gelişsin, ortaya çıkan kodun kalitesini, güvenliğini ve mimarisini denetlemek hâlâ insanın sorumluluğunda. Claude çok iyi bir yardımcı pilot (co-pilot), ama uçağı uçuran kaptan pilot hâlâ sizsiniz. Prompt yazma yeteneğinizi geliştirirseniz sıkıcı işleri ona devredip yalnızca uygulamanızın mantığına odaklanabilirsiniz.