1. İhtiyaç Analizi ve Problemin Tanımı
Başarılı bir script, net bir ihtiyaç tanımıyla başlar. Öncelikle sorunu, hedef kullanıcıyı ve beklenen çıktıyı belirleyin. Örneğin: "Bir klasördeki tüm .txt dosyalarını okuyup içlerindeki e-posta adreslerini toplayan bir Python scripti." İhtiyacı yazılı hale getirin ve kapsamı netleştirin. Gereksiz özellikler eklemekten kaçının.
2. Doğru Prompt Hazırlama
Yapay zekâya vereceğiniz prompt, script'in kalitesini doğrudan etkiler. Etkili bir prompt şunları içermelidir:
- Rol tanımı: "Sen deneyimli bir Python geliştiricisisin."
- Görev: "Kullanıcının belirttiği klasördeki tüm .txt dosyalarını tara."
- Kısıtlar: "Yalnızca standart kütüphaneleri kullan, hata yönetimi ekle."
- Çıktı formatı: "Kodu açıklamalı olarak yaz ve her adımı yorumla."
Örnek prompt: "Sen bir Python uzmanısın. Belirtilen dizindeki tüm .txt dosyalarını okuyup, regex ile e-posta adreslerini bulan bir script yaz. Hataları logla ve sonuçları bir CSV dosyasına kaydet. Kodun tamamını ve açıklamalarını ver."
3. Ajan Rolleri ve İş Birliği
Karmaşık projelerde farklı yapay zekâ ajanlarına farklı roller atayabilirsiniz:
- Analist ajan: İhtiyaç analizi yapar, teknik gereksinimleri çıkarır.
- Geliştirici ajan: Kodu yazar, test eder.
- Test ajanı: Kodun hatalarını bulur, güvenlik açıklarını raporlar.
- Dokümantasyon ajanı: Kullanım kılavuzu ve teknik doküman hazırlar.
Her ajanın çıktısı diğerine girdi olur. Örneğin, analist ajanın çıktısını geliştirici ajana prompt olarak verin.
4. Güvenlik Sınırları ve Önlemler
Yapay zekâ tarafından üretilen kodda güvenlik açıkları olabilir. Şu önlemleri alın:
- Girdi doğrulama: Kullanıcıdan alınan tüm girdileri temizleyin.
- Yetkilendirme: Script yalnızca gerekli dosyalara erişsin.
- Kod inceleme: Üretilen kodu otomatik araçlarla (ör. Bandit, ESLint) tarayın.
- Çalıştırma ortamı: Scripti, sınırlı yetkilere sahip bir kullanıcı veya container içinde çalıştırın.
Örnek: Script, kullanıcıdan bir dosya yolu alıyorsa, path traversal saldırılarına karşı kontrol edin.
5. Kod Üretimi ve İlk Versiyon
Prompt'u gönderdikten sonra gelen kodu dikkatlice inceleyin. Şu noktalara odaklanın:
- Kod çalışıyor mu?
- Gereksinimleri karşılıyor mu?
- Okunabilir ve bakımı kolay mı?
Gerekirse ek prompt'larla düzeltme isteyin. Örneğin: "Kodu daha modüler hale getir, her işlevi ayrı bir fonksiyona ayır."
6. Test ve Hata Ayıklama
Script'i test etmek için:
- Birim testleri: Her fonksiyon için test yazın (ör. pytest).
- Entegrasyon testleri: Script'in tüm akışını test edin.
- Sınır durumlar: Boş dosya, geçersiz girdi, büyük veri gibi durumları test edin.
Hata ayıklama için yapay zekâya hatayı ve kodu verip çözüm isteyin. Örneğin: "AttributeError: 'NoneType' object has no attribute 'group' hatası alıyorum. Kod: ... Nasıl düzeltebilirim?"
7. Sürümleme ve Dokümantasyon
Script'in sürümlerini yönetmek için Git kullanın. Her değişiklik için anlamlı commit mesajları yazın. Ayrıca:
- README: Kurulum, kullanım, bağımlılıklar ve örnekler.
- CHANGELOG: Her sürümde ne değişti.
- Yorum satırları: Karmaşık kod bloklarını açıklayın.
Kontrol Listesi
Başarılı bir script, net bir ihtiyaç tanımıyla başlar. Öncelikle sorunu, hedef kullanıcıyı ve beklenen çıktıyı belirleyin. Örneğin: "Bir klasördeki tüm .txt dosyalarını okuyup içlerindeki e-posta adreslerini toplayan bir Python scripti." İhtiyacı yazılı hale getirin ve kapsamı netleştirin. Gereksiz özellikler eklemekten kaçının.
2. Doğru Prompt Hazırlama
Yapay zekâya vereceğiniz prompt, script'in kalitesini doğrudan etkiler. Etkili bir prompt şunları içermelidir:
- Rol tanımı: "Sen deneyimli bir Python geliştiricisisin."
- Görev: "Kullanıcının belirttiği klasördeki tüm .txt dosyalarını tara."
- Kısıtlar: "Yalnızca standart kütüphaneleri kullan, hata yönetimi ekle."
- Çıktı formatı: "Kodu açıklamalı olarak yaz ve her adımı yorumla."
Örnek prompt: "Sen bir Python uzmanısın. Belirtilen dizindeki tüm .txt dosyalarını okuyup, regex ile e-posta adreslerini bulan bir script yaz. Hataları logla ve sonuçları bir CSV dosyasına kaydet. Kodun tamamını ve açıklamalarını ver."
3. Ajan Rolleri ve İş Birliği
Karmaşık projelerde farklı yapay zekâ ajanlarına farklı roller atayabilirsiniz:
- Analist ajan: İhtiyaç analizi yapar, teknik gereksinimleri çıkarır.
- Geliştirici ajan: Kodu yazar, test eder.
- Test ajanı: Kodun hatalarını bulur, güvenlik açıklarını raporlar.
- Dokümantasyon ajanı: Kullanım kılavuzu ve teknik doküman hazırlar.
Her ajanın çıktısı diğerine girdi olur. Örneğin, analist ajanın çıktısını geliştirici ajana prompt olarak verin.
4. Güvenlik Sınırları ve Önlemler
Yapay zekâ tarafından üretilen kodda güvenlik açıkları olabilir. Şu önlemleri alın:
- Girdi doğrulama: Kullanıcıdan alınan tüm girdileri temizleyin.
- Yetkilendirme: Script yalnızca gerekli dosyalara erişsin.
- Kod inceleme: Üretilen kodu otomatik araçlarla (ör. Bandit, ESLint) tarayın.
- Çalıştırma ortamı: Scripti, sınırlı yetkilere sahip bir kullanıcı veya container içinde çalıştırın.
Örnek: Script, kullanıcıdan bir dosya yolu alıyorsa, path traversal saldırılarına karşı kontrol edin.
5. Kod Üretimi ve İlk Versiyon
Prompt'u gönderdikten sonra gelen kodu dikkatlice inceleyin. Şu noktalara odaklanın:
- Kod çalışıyor mu?
- Gereksinimleri karşılıyor mu?
- Okunabilir ve bakımı kolay mı?
Gerekirse ek prompt'larla düzeltme isteyin. Örneğin: "Kodu daha modüler hale getir, her işlevi ayrı bir fonksiyona ayır."
6. Test ve Hata Ayıklama
Script'i test etmek için:
- Birim testleri: Her fonksiyon için test yazın (ör. pytest).
- Entegrasyon testleri: Script'in tüm akışını test edin.
- Sınır durumlar: Boş dosya, geçersiz girdi, büyük veri gibi durumları test edin.
Hata ayıklama için yapay zekâya hatayı ve kodu verip çözüm isteyin. Örneğin: "AttributeError: 'NoneType' object has no attribute 'group' hatası alıyorum. Kod: ... Nasıl düzeltebilirim?"
7. Sürümleme ve Dokümantasyon
Script'in sürümlerini yönetmek için Git kullanın. Her değişiklik için anlamlı commit mesajları yazın. Ayrıca:
- README: Kurulum, kullanım, bağımlılıklar ve örnekler.
- CHANGELOG: Her sürümde ne değişti.
- Yorum satırları: Karmaşık kod bloklarını açıklayın.
Kontrol Listesi
- İhtiyaç net bir şekilde tanımlandı.
- Prompt rol, görev, kısıt ve format içeriyor.
- Ajan rollerine ayrıldı (gerekirse).
- Güvenlik önlemleri alındı.
- Kod üretildi ve incelendi.
- Testler yazıldı ve geçti.
- Hatalar ayıklandı.
- Sürüm kontrolü başlatıldı.
- Dokümantasyon hazır.