Kod Yayınlamak İçin Yapay Zekayı Nasıl Kullanıyorum

Zekice istemler (prompt) yazmaya çalışmayı bırakın. Bağlam (context) mühendisliğine başlayın.

Çoğu insan yapay zekayı yanlış kullanıyor. Tek bir cümleyle bir özellik istiyorlar. Yapay zeka; yanlış kütüphaneleri kullanan, isimlendirme standartlarınızı bozan ve eski hataları yeniden getiren kodlar döndürüyor. Öğleden sonranızı bu karmaşayı düzeltmekle geçiriyorsunuz.

Bağlamı olmayan bir yapay zeka, kod tabanınızı hiç okumamış bir junior geliştirici gibidir. Dünden kalan her şeyi unutur. Yeni işe alınan birine tek satırlık bir görev verip mükemmel kod beklemek yapmazdınız. Ona bir oryantasyon belgesi verirdiniz.

Depomda (repo) bir proje hafıza dosyası kullanıyorum. Bu dosya, yapay zekanın her seferinde okuduğu bir oryantasyon belgesi görevi görüyor. Dışarıdan birinin bilemeyeceği projeye özel kurallar içeriyor:

• Tartışmaya kapalı kurallar: URL'lerin nasıl görünmesi gerektiği ve slug'ların prodüksiyon ortamıyla nasıl eşleşmesi gerektiği. • Mantık kuralları: Sayıları doğrudan yazmak (hardcoding) yerine değerleri konfigürasyonlardan türetmek. • Uç durumlar (edge cases): Sessiz hataları önleyen belirli CDN ayarları veya dosya yolları.

Yaptığım her hata bu dosyada bir satıra dönüşüyor. Bu da dosyayı katlanarak büyüyen bir varlığa dönüştürüyor. Kendimi tekrarlamayı bıraktığım için yapay zeka çıktılarının kalitesi zamanla artıyor.

İş akışım şu adımları izliyor:

  • Bağlamı başlatın (bootstrap): Yapay zekadan kodunuzdan bir hafıza dosyası taslağı oluşturmasını isteyin, ardından siz düzenleyin.
  • Görevi yeniden ifade edin: Kod yazmadan önce yapay zekadan hedefi özetlemesini isteyin. Bu, hataları erkenden yakalar.
  • İstemi iyileştirin: Yapay zekaya talebinizdeki belirsiz kısımların neler olduğunu sorun.

Yapay zekayı şu görevler için kullanın:

  • Boilerplate ve iskelet (scaffolding) kod yazımı.
  • Desen takibi yapan refaktörler.
  • Tanıdık olmayan kodları açıklama.
  • Bir repo genelinde mekanik taramalar yapma.
  • Test ve fixture yazımı.

Yapay zekayı şu görevler için kullanmaktan kaçının:

  • Yeni mimari kararlar alma.
  • Estetik veya ürün kararları verme.
  • Hata yapmanın maliyetli olduğu her şey.
  • Güvenlik açısından kritik tasarımlar.
  • Yayınlamadan önceki son inceleme.

Disiplin basittir:

  • Görevleri küçük kapsamlı tutun. "Bu özelliği inşa et" demeyin. "Şu spesifik değişikliği yap" deyin.
  • Bağlamı en başta verin.
  • Her çıktıyı doğrulayın. Build işlemini çalıştırın ve farkları (diff) okuyun.
  • Bir junior geliştiricinin PR'ını inceler gibi inceleyin. Bir insan okumadan asla kod commit etmeyin.
  • Öğrendiğiniz dersleri bağlam dosyanıza geri besleyin.

Kaldıraç gücü istemde (prompt) değil, koruduğunuz bağlamdadır (context).

Kaynak: https://dev.to/faizahmedfarooqui/how-i-actually-use-ai-to-ship-code-context-engineering-over-clever-prompts-il8

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi