Teknik rehberYapay Zekâ

GitHub Copilot Agent Mode ile Değişiklikleri Küçük ve Gözden Geçirilebilir Tutma

GitHub Copilot Agent Mode, otonom kod düzenlemeleri yaparken değişikliklerin kontrolsüz büyümesine yol açabilir. Bu yazıda, agent'ı yönlendirerek küçük, anlaşılır ve gözden geçirilebilir commit'ler üretmenin pratik yollarını ele alıyoruz.

Teknoloji ve yazılım ekibi görseli
Görsel: Unsplash · Görsel kaynağı

Agent Mode'un Getirdiği Kontrol Zorluğu

GitHub Copilot Agent Mode, yalnızca satır içi öneriler sunmakla kalmaz; belirli bir görevi tamamlamak için dosyaları okur, düzenler, terminal komutları çalıştırır ve testleri koşturur. Bu otonomi, geliştirici verimliliğini artırsa da beraberinde ciddi bir risk getirir: agent, tek seferde onlarca dosyada değişiklik yapabilir. Sonuçta ortaya çıkan devasa diff, gözden geçirilmesi zor, hata ayıklaması karmaşık bir yamaya dönüşür.

Bu yazıda, Agent Mode'un gücünden ödün vermeden değişiklikleri küçük parçalara bölmenin ve her bir parçayı anlamlı bir inceleme birimi hâline getirmenin yollarını göstereceğiz.

Agent Mode'un Çalışma Biçimini Anlamak

Agent Mode, verdiğiniz görevi yerine getirirken genellikle şu adımları izler:

  • Görevi analiz eder ve ilgili dosyaları belirler.
  • Gerekli değişiklikleri planlar.
  • Dosyaları düzenler, yeni dosyalar oluşturur veya siler.
  • Testleri çalıştırır ve hataları düzeltmeye çalışır.
  • Değişiklikleri özetler.

Bu döngüde agent, tek bir oturumda birden fazla dosyaya dokunabilir. Eğer görev tanımınız genişse, ortaya çıkan değişiklik seti de o kadar büyük olur. Bu nedenle, agent'ı yönlendirmek için görev kapsamını daraltmak kritik önem taşır.

Küçük ve Gözden Geçirilebilir Değişiklikler İçin Stratejiler

1. Görevleri Atomik Parçalara Bölün

Agent'a "kullanıcı kimlik doğrulamasını yeniden düzenle" gibi geniş bir görev vermek yerine, bunu ardışık küçük görevlere ayırın:

  • Önce mevcut kimlik doğrulama akışını analiz et ve bir rapor sun.
  • Ardından yalnızca login fonksiyonunu yeni bir yardımcı fonksiyona taşı.
  • Sonraki adımda logout fonksiyonunu güncelle.

Her adımda agent'tan yalnızca o adıma odaklanmasını isteyin. Böylece her oturum sonunda tek bir mantıksal değişiklik elde edersiniz.

2. Dosya Sınırlarını Açıkça Belirtin

Agent'a hangi dosyalar üzerinde çalışabileceğini söylemek, gereksiz dokunuşları engeller. Örneğin:

Sadece src/auth/login.js ve src/auth/login.test.js dosyalarında değişiklik yap. Başka hiçbir dosyayı düzenleme.

Bu tür bir kısıtlama, agent'ın ilgisiz dosyalara sızmasını önler ve diff'i daraltır.

3. Değişiklikleri Commit'lere Bölmesini İsteyin

Agent Mode, terminal üzerinden git komutları çalıştırabilir. Görev tamamlandığında, tüm değişiklikleri tek bir commit'te toplamak yerine, mantıksal gruplara ayırmasını isteyebilirsiniz:

Yaptığın değişiklikleri iki ayrı commit halinde kaydet: ilki login fonksiyonunun taşınması, ikincisi test güncellemeleri. Her commit için açıklayıcı bir mesaj yaz.

Bu yaklaşım, kod inceleme sürecini hızlandırır ve geri alma işlemlerini kolaylaştırır.

4. Testleri ve Doğrulamayı Aşamalandırın

Agent'tan her küçük değişiklikten sonra ilgili testleri çalıştırmasını isteyin. Örneğin:

Login fonksiyonunu taşıdıktan sonra sadece login.test.js dosyasındaki testleri çalıştır. Başarılı olursa bir sonraki adıma geç.

Böylece hatalar erken yakalanır ve büyük bir değişiklik seti içinde kaybolmaz.

5. Oturumları Kısa Tutun

Agent Mode oturumları uzadıkça, agent'ın bağlamı genişler ve daha fazla dosyaya müdahale etme eğilimi artar. Her oturumu tek bir hedefle sınırlayın ve oturum sonunda değişiklikleri gözden geçirip commit'leyin. Yeni bir göreve başlarken temiz bir oturum açın.

Uygulamalı Örnek: Bir Hata Düzeltmesini Bölmek

Diyelim ki bir API uç noktasında null değer döndüğünde hata oluşuyor. Agent'a şu görevi verelim:

src/api/user.js dosyasındaki getUser fonksiyonunda, kullanıcı bulunamadığında null döndürmek yerine 404 hatası fırlat. Sadece bu dosyayı değiştir ve ilgili testi güncelle.

Agent, bu dar kapsamlı görevi yerine getirirken büyük olasılıkla yalnızca iki dosyada değişiklik yapar. Ardından testleri çalıştırıp sonucu raporlar. Siz de diff'i inceleyip onayladıktan sonra commit'lersiniz.

Eğer aynı görevi "tüm API hatalarını düzelt" şeklinde verseydik, agent onlarca dosyaya dokunabilir ve inceleme süreci içinden çıkılmaz hâle gelebilirdi.

Sonuç

GitHub Copilot Agent Mode, doğru yönlendirildiğinde son derece güçlü bir yardımcıdır. Ancak kontrolsüz bırakıldığında, gözden geçirilmesi zor devasa değişiklikler üretebilir. Görevleri atomik parçalara bölmek, dosya sınırlarını netleştirmek, commit'leri mantıksal gruplara ayırmak ve oturumları kısa tutmak, hem kod kalitesini hem de ekip verimliliğini artırır. Unutmayın: agent'ın hızı, sizin gözden geçirme hızınızla dengelenmelidir.

🍪
Çerez Kullanımı

Kodumun Hatası, web sitesinin çalışmasını sağlamak ve kullanıcı deneyimini geliştirmek için çerezler kullanabilir. Zorunlu olmayan çerezler için tercihlerinizi belirleyebilir, ayrıntılı bilgiye Çerez Politikamızdan ulaşabilirsiniz.