# Cursor Agent ile Go Projelerinde Verimli Çalışma

Adres: https://agentvera.dev/blog/cursor-agent-ile-go/ · Yayın: 2026-11-01

Go projelerinde Cursor Agent’ı terminalde cursor-agent komutuyla kullanmak için kurulum, test, doğrulama ve çoklu ajan iş akışı rehberi.

**Kısaca:**

- Cursor Agent, Go projelerinde gofmt, go vet ve tablo tabanlı testleri kullanarak küçük, doğrulanabilir adımlarla çalışır.
- AGENTS.md dosyasına build, test, lint komutları ile Go’ya özgü kuralları yazmak ajanın tutarlı kalmasını sağlar.
- Çoklu ajan kullanımında git worktree ve otomatik kod incelemesi paralel Go görevlerini güvenli hale getirir.

Go projesinde terminalde `cursor-agent` komutuyla başlayan Cursor Agent, kaynak kodu okur, testleri çalıştırır ve değişiklikleri diff olarak sunar. Bu rehber, Go bilen bir geliştiricinin ajanı gofmt, go vet, tablo tabanlı testler ve context yönetimiyle birlikte nasıl verimli kullanacağını anlatır. Başlangıç detayları için [Cursor Agent](/ajanlar/cursor-agent/) sayfasına bakılabilir.

## Cursor Agent neden Go işlerine uygun
Go ekosistemi `gofmt`, `go vet`, `go test` gibi standart araçlara dayanır; Cursor Agent bu komutları kendi terminalinde çalıştırıp çıktıyı yorumlayabilir. Paket sınırları ve arabirimler görece belirgin olduğundan, ajan küçük görevleri güvenle üstlenir. Statik tipler ve derleyici hataları, ajanın yaptığı değişiklikleri hızlıca doğrulamanıza olanak tanır. Go’nun `gofmt` sayesinde tek biçimli kodu, ajanın ürettiği diff’lerin okunmasını kolaylaştırır. Derleyici hataları da geri bildirimi hızlandırır; ajan `go build` komutunu çalıştırıp tip hatalarını kendi kendine düzeltebilir. Yine de ajan yalnızca iyi talimatlarla tutarlı çalışır; Go’ya özgü kuralları açıkça yazmazsanız gereksiz soyutlama veya yanlış hata yönetimi üretebilir.

## Proje ayarları: AGENTS.md ve .cursor/rules
Cursor Agent proje talimatlarını önce AGENTS.md, yoksa `.cursor/rules` altındaki dosyalardan okur. Go projesinde bu dosyaya build, test, lint komutlarıyla birlikte dizin düzeni ve Go’ya özgü kurallar koymak, ajanın her görevde aynı varsayımlarla çalışmasını sağlar. Aşağıdaki örnek, küçük bir API servisi için işe yarayan kısa bir AGENTS.md içeriğidir:

```
# AGENTS.md
# Build/test komutları
make build
make test
make lint

# Dizin düzeni
/cmd   -> main paketleri
/internal -> uygulama kodu
/pkg   -> dışa açık kütüphaneler
/api   -> protobuf/OpenAPI şemaları

# Go kuralları
- Her değişiklikten sonra `gofmt -w` ve `go vet ./...` çalıştır.
- Testleri tablo tabanlı (table-driven) yaz.
- Hataları `%w` ile sarmala, asla string karşılaştırma ile eşleştirme.
- Goroutine başlatırken mutlaka context.Context geç; iptal ve timeout yönet.
- Arabirimleri kullanan tarafta tanımla; somut tip döndür.
- Yeni bağımlılık eklemeden önce standart kütüphanede çözüm ara.
```

Bu dosyayı değiştirdiğinizde ajana yeniden başlatmasını söylemek gerekmez; yeni görevlerde güncel talimatları kullanır. Ajan bu kurallara uymadığında talebinizi reddetmek yerine genellikle hatasını düzeltmeye çalışır; yine de siz diff’i inceleyip `gofmt -w` ve `go vet ./...` çıktısını kendiniz görmelisiniz. `.cursor/rules` tercih ediyorsanız aynı içeriği tek bir Markdown dosyasına koyabilirsiniz. CLI kullanımıyla ilgili detaylar için [Cursor CLI nasıl kullanılır? Adım adım rehber](/blog/cursor-cli-nasil-kullanilir/) yazısına göz atabilirsiniz.

## Çalışma döngüsü: planla, küçük adım at, testleri çalıştır, diff’i incele
Go’da Cursor Agent ile çalışırken şu döngüyü uygulayın: önce görevi tek bir paket veya fonksiyonla sınırlayın, ajanın önerdiği adımları planlatın, küçük diff üretmesini isteyin, sonra `go test ./...` ile doğrulayıp diff’i satır satır inceleyin. Ajan tek seferde büyük refactor yaparsa geri almak zorlaşır; bu yüzden her adımı ayrı oturum veya ayrı commit olarak isteyin.

Örnek promptlar:
- `internal/order` paketindeki `Process` fonksiyonunu context cancellation’a uygun hale getir; ilgili tablo testlerini güncelle, sonra `go test ./internal/order -run TestProcess` çalıştır.
- `go vet ./...` çıktısındaki `copylocks` ve `shadow` uyarılarını düzelt; değişiklik sonrası `gofmt -w` uygula.
- `/cmd/api` altındaki HTTP handler’larında somut `sql.DB` bağımlılığını interface arkasına al; sahte store ile test yaz ve `go test ./cmd/api/...` çalıştır.
- Tüm kod tabanında `errors.New` kullanımlarını sentinel hata tanımlarına çevir, sarmalama için `%w` kullan, mevcut testlerin geçtiğini doğrula.
- `worker` paketindeki uzun süren işleri `context.Context` ile iptal edilebilir yap; her goroutine’in context aldığından emin ol ve `go test -race ./...` çalıştır.

## Go için güçlü yönler ve dikkat edilecek tuzaklar
Cursor Agent özellikle tablo tabanlı testleri üretme, interface soyutlama, hata sarmalama ve context yayılımı gibi mekanik Go işlerinde başarılıdır. Buna karşın dikkat etmeniz gereken tuzaklar vardır:

| Görev | İyi prompt | Tuzak |
|---|---|---|
| Tablo tabanlı test ekleme | `internal/user` paketindeki `Validate` için geçerli ve hatalı girdileri içeren table-driven test yaz. | Ajan `t.Run` adlarını kopyalayıp değiştirmeyebilir; alt test adları benzersiz olmalı. |
| Context ve goroutine yönetimi | `worker` paketindeki goroutine’leri context alacak şekilde düzenle, iptal sinyallerini ilet. | Ajan `context.Background()` bırakabilir; timeout, cancel ve parent context zincirini inceleyin. |
| Interface soyutlaması | `repository` somut tipini kullanan tarafta tanımlı interface’e çevir, mock ile test yaz. | Interface yanlış pakette tanımlanabilir veya gereksiz yere büyütülebilir; kuralı hatırlatın. |
| Hata sarmalama | `fmt.Errorf` çağrılarını `%w` ile güncelle, `errors.Is` ile test ekle. | Ajan string karşılaştırmayı bırakabilir; hata zincirini test eden bir test yazmasını isteyin. |

Ayrıca ajan bazen kullanılmayan import bırakır, `gofmt` çalıştırmayı unutur veya standart kütüphanede çözüm varken üçüncü taraf bağımlılık ekler. Diff’i kabul etmeden önce `gofmt -w` ve `go vet ./...` çıktısını kendiniz de görün.

## Test ve doğrulama: Go’da ajanla güvenli çalışma
Her ajan çıktısını kabul etmeden önce `gofmt -w .`, `go vet ./...`, `go test ./...` ve mümkünse `go test -race ./...` komutlarını kendiniz çalıştırın. Ajan testleri çalıştırsa bile, diff’i okumadan uygulamayın. Tablo tabanlı testlerde ajanın yalnızca mutlu yolu kapsadığını görürseniz, hata senaryolarını ve sınır değerlerini eklemesini isteyin. Mock veya fake kullanılan testlerde `t.Cleanup` ile kaynakların kapatıldığından emin olun. Testleri daraltmak için `go test ./path/to/package -run '^TestName$'` kullanın; ajan bazen tüm paketleri çalıştırıp yavaşlatabilir. Ajanın yazdığı testlerde `reflect.DeepEqual` yerine `errors.Is` ve `errors.As` kullanmasını isteyin. Sahte nesneleri `gomock` veya elle yazılan stub’larla oluştururken, arayüzün kullanıldığı pakette tanımlandığından emin olun. Özellikle goroutine içeren kodlarda `go test -race` şarttır; ajan yarış durumunu yakalayamayabilir. Değişikliklerin amacını anlamadıysanız ajana "bu diff’te hangi Go davranışını değiştiriyorsun ve hangi test neden etkileniyor?" diye sorun.

## Birden fazla ajanı tek Go projesinde çalıştırmak: AgentVera
AgentVera, Cursor Agent dahil birden fazla CLI ajanını aynı pencerede gerçek terminal panelleriyle yan yana çalıştıran bir masaüstü uygulamasıdır. Go projesinde paralel ajan kullanırken en kritik nokta dosya çakışmalarıdır; her ajanın kendi git worktree’sinde çalışması bunu çözer. Otomatik kod incelemesi, ikinci bir modelin ajanın diff’ini gofmt, context sızıntıları ve yarış desenleri açısından taramasını sağlar. Checkpoint’ler başarısız bir refactor’ü tek tıkla geri almayı, token bütçeleri ise uzun Go oturumlarında maliyeti sınırlamayı mümkün kılar. Paralel ajan araçlarıyla ilgili geniş karşılaştırma için [Paralel kodlama ajanları için en iyi araçlar (2026)](/blog/paralel-yapay-zeka-kodlama-ajani-araclari/) sayfasına bakılabilir.

## Sonuç
Cursor Agent, Go projelerinde terminalde `cursor-agent` komutuyla başladığında güçlü bir yardımcıdır; verim ise sizin koyduğunuz kurallara ve doğrulama disiplinine bağlıdır. AGENTS.md dosyanızı net tutun, görevleri küçük parçalara bölün ve her diff’i gofmt, go vet ve testlerle kapıdan geçirin. Birden fazla ajanı denemek istediğinizde git worktree ve otomatik inceleme sunan bir düzen, Go kod tabanınızı temiz tutar.

## Sık sorulanlar

**Cursor Agent Go projesinde nasıl başlatılır?** Proje klasöründe terminalden cursor-agent komutunu çalıştırın. Ajan, AGENTS.md veya .cursor/rules dosyasındaki talimatları okuyarak Go kodunuz üzerinde çalışmaya başlar.

**Cursor Agent Go testlerini kendi başına çalıştırabilir mi?** Evet, terminal ajanı olarak go test ./..., go test -race ve go vet ./... komutlarını çalıştırabilir. Yine de her değişiklikten sonra siz de testleri çalıştırıp diff’i incelemelisiniz.

**AGENTS.md dosyasına Go için ne yazmalıyım?** Build, test ve lint komutlarını, dizin kurallarını, tablo tabanlı test zorunluluğunu, context.Context kullanımını ve hata sarmalama tercihlerini yazmalısınız.

**Cursor Agent birden fazla Go görevini paralel yürütebilir mi?** Cursor Agent tek başına bir oturumda çalışır; ancak AgentVera gibi araçlarla birden fazla ajanı ayrı git worktree’lerinde paralel çalıştırarak Go projelerinde çakışmaları önleyebilirsiniz.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
