Kod tamamlama ve hata ayıklama için ChatGPT prompt seti
Yazılım Geliştirme Promptları

Kod tamamlama ve hata ayıklama için ChatGPT prompt seti

Yazılım Geliştirme Promptları

5 dk okuma süresi
Bu rehber, ChatGPT'yi kod tamamlama, hata ayıklama, birim testi oluşturma, refaktörleme ve kod incelemeye verimli şekilde entegre etmek için pratik prompt şablonları, kullanım kuralları ve örnek senaryolar sunar.
Kod tamamlama ve hata ayıklama için ChatGPT prompt seti

Kod Tamamlama ve Hata Ayıklama için ChatGPT Prompt Seti

Bu rehber, ChatGPT'yi yazılım geliştirme sürecinde kod tamamlama, hata ayıklama, birim testi yazma, refaktör ve kod inceleme için nasıl daha etkili kullanacağınıza dair pratik prompt şablonları ve uygulama adımları içerir. ChatGPT gibi modeller, yazılım iş akışlarını hızlandırmaya yardımcı olabilir; bu konuda bir özet için TeknoCap rehberine bakabilirsiniz.

Nasıl okuyun? Hızlı yol haritası

  • Önce temel prompt ilkelerini okuyun (kısa).
  • Sizin için uygun olan şablonu seçin ve bağlamı doldurun.
  • Çıktıyı otomatik testlerle ve insan incelemesiyle doğrulayın.

Temel ilkeler: İyi bir geliştirme promptunun bileşenleri

  • Rol tanımı: Modelin hangi geliştirici/kodlayıcı rolünü üstlenmesini beklediğinizi belirtin (ör. "deneyimli Python geliştiricisi").
  • Bağlam: Proje dili, sürümü, ilgili dosya ve kütüphaneler gibi kısa ama yeterli bilgiler verin.
  • Girdi: İlgili kod parçası, hata mesajı veya PR diff'i ekleyin.
  • Beklenen çıktı formatı: Yalnızca kod mu, yoksa açıklama + düzeltme mi istiyorsunuz? Formatı netleştirin.
  • Kısıtlar: Performans, üçüncü taraf bağımlılığı, test kapsama alanı gibi kısıtları yazın.

Akademik çalışmalar, prompt desenlerinin kod kalitesi ve tasarım diyaloglarında etkisini inceler; bu çalışmaları örnek olarak inceleyebilirsiniz: A Prompt Pattern Catalog ve ChatGPT Prompt Patterns for Improving Code Quality.


Prompt Şablonları: Kopyala-yapıştır kullanılabilecek örnekler

Kod Tamamlama (Code Completion)

Amaç: Eksik veya yarım kalmış fonksiyonu tamamlamak; stil ve bağımlılıklar projeye uygun olsun.

Rol: Sen deneyimli bir [DİL] geliştiricisisin (ör. Python 3.10). Proje bağlamı: [KISA AÇIKLAMA]. Görev: Aşağıdaki yarım kalan fonksiyonu tamamla. Çıktı sadece tamamlanmış kod olsun; gerekliyse yalnızca gerekli import satırlarını ekle. Ek açıklama vermeyeceksin. Bağlam: [ör. kullandığımız paketler, performans beklentisi] Kod (tamamlanacak): [BURAYA KOD PARÇASI EKLE]

Açıklama: [DİL], [KISA AÇIKLAMA] ve kod parçasını doldurun. İstenirse "Çıktıyı 1 dosya halinde ver" gibi ek talimatlar ekleyin.

Hata Ayıklama (Debugging)

Amaç: Belirtilen hata mesajı veya beklenmeyen davranış için kök nedeni tespit edip kısa bir düzeltme önerisi üretmek.

Rol: Sen deneyimli bir hata ayıklama uzmanısın. İstenen: Verilen kodda bulunan hatayı analiz et, muhtemel neden(ler)i sırala ve en az değişiklikle uygulanabilir bir düzeltme öner. Ayrıca birim testi örneği (pytest/ünittest) ekle. Bağlam: [DİL ve sürüm], hata mesajı: "[HATA MESAJI]", beklenen davranış: "[BEKLENEN]". Kod: [BURAYA KOD PARÇASI] Çıktı formatı: 1) Kısa neden analizi 2) Önerilen düzeltme (kod parçası) 3) Kısa bir birim testi

İpucu: Hata mesajlarını, çağrı yığınını (stack trace) ve etkilenen satır numarasını verin. Model genelde mantıklı hipotezler üretir, fakat önerilen düzeltmeyi mutlaka test edin.

Birim Testi Oluşturma (Unit Test Generation)

Amaç: Var olan fonksiyon ya da modül için otomatik test vakaları üretmek (pytest örneği).

Rol: Sen test yazmada deneyimli bir geliştiricisin. İstenen: Aşağıdaki fonksiyon/modül için minimal ama kapsamlı pytest testleri üret. Mock gerekli ise açıkla ve örnek mock kullanımını göster. Bağlam: [Proje bağımlılıkları] Kod: [BURAYA KOD PARÇASI] Çıktı: Tam pytest dosyası (sadece test kodu). Her test fonksiyonuna kısa açıklama ekle.

Not: Testlerin çalışması için bağımlılıkları (fixture, mock) belirtin. CI entegrasyonunda testleri otomatik çalıştırın.

Refaktör (Refactor)

Amaç: Fonksiyonel davranışı koruyarak kodu daha okunaklı ve sürdürülebilir yapmak.

Rol: Sen deneyimli bir yazılım mimarısın. İstenen: Aşağıdaki kodu davranışı koruyarak daha temiz, test edilebilir ve kısa hale getir. Her değişikliğin kısa gerekçesini yaz. Çıktı sadece refaktör edilmiş kod ve kısa madde madde değişiklikler olsun. Kod: [BURAYA KOD PARÇASI]

Uyarı: Refaktör sonrası otomatik testlerinizi çalıştırın; davranış korunmalı.

Kod İnceleme (Code Review)

Amaç: PR diff veya kod parçası için performans, güvenlik, stil ve bakım riski değerlendirmesi yapmak.

Rol: Sen deneyimli bir kod inceleme uzmanısın. İstenen: Aşağıdaki diff/PR açıklamasına göre: - Bulunan sorunları öncelik ve şiddet (low/medium/high) ile sırala. - Her sorun için önerilen çözümü kısa göster. - Gerekirse ek test vakaları öner. PR/diff: [BURAYA DIFF VEYA KOD PARÇASI]

Pratik kullanım adımları (Checklist)

  1. Prompt şablonunu seçin ve rol+bağlamı doldurun.
  2. Çıktı formatını net belirtin (ör. yalnızca kod, kod + açıklama, test dosyası).
  3. Modelin ürettiği değişikliği otomatik testlerle doğrulayın.
  4. İnsan incelemesini zorunlu kılın (özellikle güvenlik ve lisans açısından).
  5. CI/CD pipeline'ına entegrasyon için küçük bir otomasyon katmanı ekleyin (ör. PR yorumlarında kullanma, merge öncesi test çalıştırma).

Uygulama örnekleri

Senaryo A — Basit hata: Fonksiyon, belirli inputlarda IndexError veriyor. Prompt olarak hata mesajı, küçük kod parçası ve beklenen çıktı verin. Model genelde hatalı indeks kullanımını veya boş liste kontrolünü işaretler ve düzeltme önerir.

Senaryo B — Yeni bir özellik: Mevcut fonksiyona yeni bir parametre eklenmesi isteniyor. Prompt'ta API uyumluluğunu ve geriye dönük uyumu belirtin; model size patch ve gerekli testleri üretebilir.

Sınırlamalar ve güvenlik uyarıları

  • Üretilen kod mutlaka test ve insan onayından geçirilmeli; model yanılgıları olabilir.
  • Kod içinde gizli anahtar, parola veya kişisel veri paylaşmayın.
  • Üçüncü taraf kütüphaneler ve lisanslar için otomatik çıktıya güvenmeyin; lisans uyumluluğunu kontrol edin.

Hızlı Referans: 8 Hazır Prompt (Kısaltılmış)

  • "Complete function: role, context, code -> return only code."
  • "Debug: role, error message, stack trace -> analysis + minimal patch + test."
  • "Generate pytest: role, code -> full pytest file."
  • "Refactor: role, constraints -> refactored code + rationale."
  • "Code review: PR diff -> list of issues + fixes."
  • "Add logging: role, file -> instrument code with structured logging."
  • "Optimize: role, performance constraint -> suggest algorithmic changes."
  • "Security scan hint: role, code -> point potential injection/validation vulnerabilities."

Kaynaklar ve ileri okumalar


Bu rehber, başlamanız için pratik bir set sunar; proje özelinde en iyi sonuçlar için promptları yineleyin ve otomatik-test + insan incelemesini süreçlerinizin merkezine koyun.

Yorumlar

Henüz yorum yapılmamış. İlk yorumu sen yaz.