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 (ai) kahve eşliğinde sohbet ederek kod yazıyoruz. Peki, Anthropic firmasının göz bebeği olan claude gibi modern bir llm (büyük dil modeli), gerçekten bizim yerimize hatasız kodlama yapabilir mi? Yoksa her şey sadece 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 ve sıfırdan çalışan bir uygulamayı nasıl ayağa kaldıracağımızı adım adım deniyoruz.
Neden Claude? (Ve Neden Şimdi?)
Piyasada GPT-4o, Gemini ve Llama gibi devasa rakipler varken neden Claude? Özellikle yazılımcılar arasında Claude 3.5 Sonnet modelinin bu kadar popüler olmasının arkasında iki temel neden 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 sadece “tamamlamıyor”, projenin mimarisini anlayarak mantıklı öneriler 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 bir çıktı almanın sırrı, ona doğru bir rol (System Prompt) vermektir.
Claude API kullanırken ya da arayüz üzerinden ç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
Sözü daha fazla uzatmayalım ve Claude’un yeteneklerini test edelim. Amacımız, harcamalarımızı terminal üzerinden 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 bize saniyeler içinde ürettiği kod tam olarak ş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. Ve bilin bakalım ne oldu? Kod ilk seferde, hiçbir kütüphane çakışması veya yazım hatası olmadan çalıştı.
[Görsel: Python CLI uygulamasının terminalde sorunsuz çalışarak harcama verilerini JSON formatında kaydettiği anın ekran görüntüsü]
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ü. İşte 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 testlerimizin ardından, bu süreci objektif bir şekilde değerlendirmek gerekiyor.
| 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ı ve Ücretsiz Alternatifler
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 ancak 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.
Peki ya Ücretsiz Alternatifler?
Eğer 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) tamamen ücretsiz olarak buralarda deneyebilirsiniz.
- Ollama (Yerel Kullanım): Bilgisayarınızın donanımı güçlüyse, yerel olarak çalışan modellerle internet bağlantısı olmadan, tamamen ü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 harika bir yardımcı pilot (co-pilot) ancak uçağı uçuran kaptan pilot hâlâ sizsiniz. Prompt yazma yeteneğinizi geliştirerek, sıkıcı işleri ona devredebilir ve siz sadece uygulamanızın mantığına odaklanabilirsiniz.