İki popüler AI coding agent'a aynı görevi verdim. İkisi de çalışan kod üretti. Ama biri "Bu yapıyı nerede kullanabilirim?" diye sorarken, diğeri "Bunu nasıl güvenle test ederim?" diye sordu. Ortaya çıkan fark sadece kod kalitesiyle değil — zihinsel modelle ilgiliydi.
Görev: SOAP Entegrasyonunda Yeni Sınıfı Test Et
Projemizde daha önce hiç kullanılmamış bir String, String parametreli sınıf
vardı. Bu sınıfı SOAP web servisi çağrısında kullanmadan önce, bağımsız bir test ortamında
denememiz gerekiyordu. Yeterince özgün bir görev değil gibi görünebilir — ama iki agent'ın
bu göreve yaklaşımı, onların nasıl "düşündüğünü" net biçimde ortaya koydu.
Ürettikleri Zihinsel Modeller
α — Haritacı: Tüm Senaryoları Kapsıyor
Claude Code önce keşfe çıktı. Sınıfın projedeki tüm potansiyel kullanım senaryolarını haritaladı: kayıt, güncelleme, sorgulama. Her birini bağımsız bir metod olarak yazdı.
Ortaya 3 bağımsız metod çıktı. Her metod kendi bağlantısını açıp kapatıyor, kendi hata yönetimini yapıyor. Nesne oluşturma inline, kurulum kodu metodun içinde. Sonuç: olası tüm kullanım biçimlerini belgeleyen bir referans döküman.
// α yaklaşımı: Her senaryo bağımsız, her metod self-contained
public void testCreateDocument() throws Exception {
// bağlantı kur, nesne oluştur, çağır, kapat
}
public void testInsertRow() throws Exception {
// bağlantı kur, nesne oluştur, çağır, kapat
}
public void testQueryDocument() throws Exception {
// bağlantı kur, nesne oluştur, çağır, kapat
}
β — Risk Yöneticisi: Güvenli Tek Akış
ChatGPT Codex ise tek bir senaryoya odaklandı — ama önce simüle et, sonra
gerçek çağrı yap mantığıyla. Canlı servise dokunmadan doğrulama imkânı sundu.
Sorumluluklar iki ayrı private metoda bölünmüş.
// β yaklaşımı: Sorumluluklar ayrı, akış kontrollü
private void simulateCall(String param1, String param2) {
// önce yerel simülasyon
}
private void executeRealCall(String param1, String param2) {
// doğrulandıktan sonra gerçek çağrı
}
Döküman Yapıları: Ne Yazdıklarını Nasıl Belgelediler?
Her iki agent'tan da yaptıklarını açıklayan bir .md dosyası
oluşturmasını istedim. Bu noktada düşünce yapılarındaki fark en net biçimde
ortaya çıktı.
- Çalışma Amacı
- İncelenen Proje Konumu
- Test Edilecek Sınıf
- Web Servisinde Kullanım Akışı
- Oluşturulan Test Sınıfı
- Çalıştırma Mantığı
- Git Durumu & Ek Not
- Genel Bakış
- Kaynak Sınıflar
- Hangi Sınıflarda Kullanılabilir
- Web Servis Bağlantısı
- Test & Üretim Paketleri
- Metodların İncelenmesi
- Build & Deploy & Test Ortamı
α'nın dökümanı ne yaptığını anlatıyor — bir uygulama günlüğü gibi. β'nın dökümanı ise sistemi anlatıyor — bir mimari doküman gibi. İkisi de değerli, ama farklı sorulara cevap veriyor.
Asıl Test: Yazdıkları Kodu Çalıştırabildiler mi?
Kodu üretmek bir şey, çalıştırmak başka. Her iki agent'tan da yazdıkları test sınıfını derleme + çalıştırma aşamasına kadar götürmesini istedim.
Karşılaştırma Özeti
| Kriter | α · Claude Code | β · ChatGPT Codex |
|---|---|---|
| Zihinsel Model | Haritacı | Risk Yöneticisi |
| Temel Soru | "Nerede kullanabilirim?" | "Nasıl güvenle test ederim?" |
| Kod Yapısı | 3 bağımsız metod | 1 akış, 2 private metod |
| Kapsam | Kayıt + güncelleme + sorgu | Tek senaryo (simüle + gerçek) |
| Döküman Tonu | Uygulama günlüğü | Mimari döküman |
| Test Çalıştı mı? | ✅ Evet | ❌ Hayır |
Ne Öğrendik?
Bu deneyin asıl çıktısı ne α'nın "kazandığı" ne de β'nın "kaybettiği" sonucu. Asıl çıktı şu:
- Agent'lar soru sormadan önce bir model kuruyor. Hangi soruyu sorduğu, ürettiği çözümün şeklini belirliyor.
- Kapsam ≠ Derinlik. α daha geniş haritaladı. β daha derinden indedi. Hangisi doğru? İkisi de — farklı senaryolarda.
- Döküman kalitesi, kod kalitesinden bağımsız. β daha iyi bir mimari döküman yazdı; ama kodu çalıştıramadı.
- Hata giderme, üretim yetenekten farklı bir beceri. Aynı kodu üretmek yeterli değil — hatayı tespit edip düzeltebilmek gerekiyor.
Agent'lar artık sadece kod üretmiyor.
Zihinsel model üretiyor.
Doğru soru sormak, doğru kod yazmak kadar önemli.
Bir problemi çözmek için kaç farklı zihinsel modelle yaklaşılabilir? Bu deneyin en değerli tarafı cevap değil, sorunun kendisi oldu.
Bir sonraki adımda bu iki yaklaşımı daha karmaşık entegrasyon senaryolarında tekrar test etmeyi planlıyorum. Agent'ların zihinsel modellerinin nasıl evrildiğini takip etmek, bir yazılım mühendisi olarak toolset'imi nasıl kullandığımı şekillendiriyor.