# Maguyva'da Go Desteği: Arka Uç Servisleri için Kod Zekası

Canonical source: https://maguyva.ai/tr/languages/go

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, AST ayrıştırma ve sembol çıkarımıyla Go'yu destekler; yapay zeka ajanlarının arka uç kodundaki paket sınırları, servis katmanları, bileşik değişmezler (composite literals) ve bağımlılık yolları hakkında akıl yürütmesine yardımcı olur.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .go
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Tek bir repoda Go servisleri, CLI'lar, worker'lar ve operasyonel araçlar çalıştıran arka uç ve platform ekipleri.
- Paket sınırlarının temiz olduğu ama çağrı zincirinin yine de birçok küçük dosyaya yayıldığı repolar.
- Handler'lara, repository'lere veya paylaşılan istemcilere dokunmadan önce servis davranışını incelemek için yapay zeka ajanları kullanan ekipler.

## Ajan iş akışları

- Bir değişiklik yapmadan önce istek akışını handler'dan servise, oradan veri erişim katmanına kadar izleyin.
- Bir struct'ın, paketin veya istemcinin kod tabanı genelinde nerede oluşturulduğunu ve yeniden kullanıldığını bulun.
- Yerleşik servis desenlerini korumak için komşu uygulamaları karşılaştırın.

## Go repoları neden yapıya duyarlı aramadan faydalanır

Go repoları genellikle olduklarından daha kolay görünür. Sözdizimi doğrudandır ve paket modeli genellikle derli topludur, bu yüzden insanlar aramanın yeterli olacağını varsayar. Sonra kod tabanı handler'lara, servislere, repository'lere, worker'lara ve iç kütüphanelere doğru büyür ve aniden küçük bir değişiklik, herhangi bir şeye dokunmadan önce üç paketi ve bir paylaşılan türü anlamayı gerektirir.

Yararlı yapay zeka yardımı ile körlemesine düzenleme arasındaki çizgi tam da burasıdır. Go'da zor olan kısım nadiren sözdizimidir. Zor olan, paket düzeyindeki niyeti korumaktır.

## Maguyva Go'da gerçekte neyi çıkarıyor

Maguyva, Go'yu dilin kendisine yakın tutar. Yapılandırma kasıtlı olarak ekstra normalize edicilerden kaçınır; bu, Go'nun görece doğrudan sözdizimi için iyi bir uyumdur. Bileşik değişmezler, örnek oluşturma işlemleri olarak ele alınır ve büyük bir stdlib filtresi, repo kodunun görülmesini kolaylaştırmak için `fmt`, `context`, `time`, `json` ve benzeri çağrıları ilişki grafından kaldırır.

Bu, grafı gerçek Go sorularında daha yararlı hale getirir: bir struct'ın nerede oluşturulduğu, hangi paketin bir arayüz sınırına sahip olduğu ve bir isteğin handler'dan servise, oradan veri katmanına nasıl hareket ettiği.

## Go servisleri için yararlı MCP iş akışları

MCP iş akışı genellikle basittir:

- İncelemek istediğiniz handler, servis, arayüz veya istemciyi bildiğinizde `find_symbol`.
- Bir paketi veya servisi değiştirmeden önce dışa dönük bağlaşımı anlamak istediğinizde `analyze_dependencies`.
- Paylaşılan bir tür veya istemci için etki yarıçapına ihtiyacınız olduğunda gelen bağımlılıkları izleyerek `dependency_search`.

## Bu sayfa nerede en ilgili

Bu sayfa, Go'nun ana servis dili olduğu ama tüm repo olmadığı arka uç ve platform kodu için en güçlüdür. Yanında altyapı modülleri varsa [Terraform](/tr/languages/terraform)'u da okuyun. Değerlendirmeniz daha çok güvenliğin kritik olduğu sistem programlamayla ilgiliyse, [Rust](/tr/languages/rust) daha iyi bir karşılaştırmadır.

## Motor ayrıntıları

- Go, sözdizimi tree-sitter için zaten yeterince doğrudan olduğu için kasıtlı olarak ekstra normalize edicileri atlar.
- Composite literal'lar instantiation olarak sayılır, bu yüzden graf yalnızca isimlerin tanımlandığı yeri değil, somut struct'ların oluşturulduğu yeri de takip edebilir.
- Büyük bir stdlib filtresi, `fmt`, `context`, `time`, `json` ve benzeri çağrıların repoya özgü ilişkileri boğmasını önler.

## Yararlı MCP giriş noktaları

- `find_symbol`: Handler, servis ya da arayüz adını bildiğinizde ve önce çağıranları ve referansları istediğinizde kullanın.
- `analyze_dependencies`: Bir refactor'den önce dışa bağımlılığı anlamak için bir paket ya da servis sembolünde kullanın.
- `dependency_search`: Etki yarıçapını tahmin etmeniz gerektiğinde bir client ya da çekirdek tür üzerinde gelen dolaşımı kullanın.
