AI üretimi kod review pattern'i
AI-generated code review pattern
Bu derste neler öğreneceksin
- AI üretimi kodu gözden geçirirken özel dikkat edilmesi gereken alanları tanımlamak
- Copilot PR review özelliğini kullanmayı öğrenmek
- Güvenlik açığı içeren AI önerilerini tespit etme stratejisi geliştirmek
- Kod review kültürü ve AI sorumluluğu arasındaki dengeyi kavramak
AI üretimi kodu inceleme — neden farklı?
Normal kod review aynı zamanda “yazar ne düşünüyordu” sorusunu yanıtlar. AI üretimi kodda bu bağlam yoktur — sadece çıktı vardır.
Bu nedenle AI üretimi kodu incelerken ek dikkat gerekir:
1. Mantık doğruluğu
Copilot syntax’ı doğru üretir ama business logic açısından yanlış olabilir.
# Copilot'un ürettiği (syntax doğru, mantık yanlış):
def calculate_discount(price: float, user_tier: str) -> float:
if user_tier == "premium":
return price * 0.85 # %15 indirim
return price * 0.90 # %10 indirim
# Gerçek kural (varsayılan): premium = %20 indirim, standard = %5
# Copilot tipik değerleri tahmin etti — yanlış
2. Güvenlik açıkları
AI’ın sık ürettiği güvenlik sorunları:
| Sorun | Örnek |
|---|---|
| SQL injection | f-string ile sorgu birleştirme |
| Hardcoded credential | Test kodu olarak yazılmış gerçek secret |
| Insecure deserialization | pickle.loads(user_input) |
| Missing input validation | Doğrulama olmadan DB kaydı |
| Race condition | Thread-safe olmayan counter |
3. Gereksiz kompleksite
Copilot bazen işe yarayan ama gereksiz karmaşık kod üretir. Basit çözüm varken over-engineered yaklaşım tercih edebilir.
Copilot’un kendi kendine PR review yapması
GitHub Copilot, PR açıldığında değişiklikleri otomatik inceleyebilir:
- PR’da “Request Copilot review” seçeneği (Business/Enterprise)
- Copilot potansiyel sorunları, geliştirme önerilerini ve açıklamaları yorum olarak ekler
- Bu otomatik review insan review’ının yerini almaz — tamamlayıcıdır
Review kontrol listesi — AI kod için
Bir PR’da AI üretimi kod varsa şunları kontrol et:
- Business logic önceki spec veya issue’ya uyuyor mu?
- Input validation eksiksiz mi?
- Error handling tüm senaryoları kapsıyor mu?
- Güvenlik açığı vektörleri (injection, auth bypass) kontrol edildi mi?
- Test coverage yeterli mi ve testler anlamlı mı?
- Dependency eklendiyse güvenli ve güncel mi?
Sırada ne var?
Modül 7 — Privacy & Context Exclusions — gizlilik temelleri ve content exclusion’ın compliance bağlamındaki önemi.