Yazılım Geliştirme İçin Prompt Mühendisliği Kalıpları
Her prompt iyi kod üretmez. Bu savaşta test edilmiş kalıplar, her sohbet açtığınızda yapay zeka asistanlarından daha iyi sonuçlar almanıza yardımcı olacak.
Prompt mühendisliği, modern yazılım geliştirmenin en değerli becerilerinden biri haline geldi. Çalışan, bakımı yapılabilir kod üreten bir prompt ile kırık bir karmaşa üreten bir prompt arasındaki fark genellikle incedir — birkaç kelimelik bağlam, erken belirtilen bir kısıtlama veya sorunu doğru şekilde çerçeveleyen bir örnek. Bu makale, çözdüğünüz görev türüne göre düzenlenmiş, tutarlı bir şekilde iyi sonuçlar üreten kalıpları bir araya getiriyor.
Bu kalıplar teorik değildir. Gerçek üretim kod tabanlarında yapay zeka kodlama asistanlarıyla yapılan binlerce gerçek etkileşimden damıtılmıştır. Her kalıp, somut bir örnek ve neden işe yaradığına dair bir açıklama içerir, böylece bunu kendi araçlarınıza ve iş akışlarınıza uyarlayabilirsiniz.
Kalıp 1: Bağlam Sandviçi
Geliştiricilerin yapay zekayı prompt'larken yaptığı en yaygın hata, çok az bağlam sağlamaktır. Çevredeki sistemi, kısıtlamaları veya bekledikleri kuralları tanımlamadan bir fonksiyon isterler. Yapay zeka daha sonra kendi spesifik kod tabanları için yanlış olan makul varsayımlar yapar ve sonuç ağır düzenleme gerektirir.
Bağlam Sandviçi bunu, her prompt'u üç katmana yapılandırarak düzeltir: ne inşa ediyorsunuz, hangi kısıtlamalar geçerli ve başarı neye benziyor.
- Üst katman — Hedef: Ne istediğinizi tek bir net cümleyle tanımlayın. Çoğu geliştiricinin dahil ettiği tek kısım budur.
- Orta katman — Kısıtlamalar: Pazarlıksız olanları listeleyin. Kütüphane sürümleri, stil kuralları, performans gereksinimleri, ele alınması gereken uç durumlar.
- Alt katman — Doğrulama: Sonucun doğru olduğunu nasıl bileceğinizi tanımlayın. Bir test senaryosu, beklenen bir çıktı formatı veya onaylanacak belirli bir davranış.
// Zayıf prompt
const result = await ai.generate("Write a function that sorts an array of users by name");
// Bağlam Sandviçi prompt
const result = await ai.generate([
"Create a compare function for sorting an array of user objects by lastName, then firstName.",
"Constraints: case-insensitive, handles missing names, TypeScript, no external libraries.",
"Verify: users.sort(compare).map(u => u.lastName) should return ['Adams', 'adams', 'Brown'].",
].join("\n\n"));Bağlam Sandviçi işe yarar çünkü her seviyede belirsizliği azaltır. Yapay zeka ne istediğinizi, neyi kabul etmeyeceğinizi ve sonucu nasıl değerlendireceğinizi bilir. Bu tek kalıp, yapay zeka destekli geliştirmede zaman kaybettiren ileri geri gidişlerin çoğunu ortadan kaldırır.
Kalıp 2: Negatif Kısıtlama
Yapay zeka modelleri genellikle ne istediğinizi anlamakta iyidir. Ne istemediğinizi anlamakta daha çok zorlanırlar. 'Bir giriş formu yaz' gibi bir prompt makul bir şey üretecektir, ancak tasarımınızın kullanmadığı şifre karmaşıklık kuralları veya ürün yöneticinizin geçen sprint'te kaldırdığı bir 'beni hatırla' onay kutusu içerebilir.
Negatif Kısıtlama kalıbı, yapay zekanın nelerden kaçınması gerektiğini açıkça belirtir. Modelin dışlamalarınızı doğru tahmin edeceğini ummaktan daha etkilidir.
// Negatif kısıtlama olmadan
"Build a user settings page with tabs for profile, security, and notifications."
// Negatif kısıtlama ile
"Build a user settings page with tabs for profile, security, and notifications.
DO NOT include: email verification flows, password strength meters, or social login buttons."Negatif kısıtlamalar en iyi, prompt'un sonunda, olumlu açıklamadan sonra yerleştirildiğinde çalışır. Bu, insanların talimatları işleme biçimini yansıtır — neyin dışlandığını anlayabilmemiz için önce ne istendiğini anlamamız gerekir. Yapay zeka da aynı kalıbı izler: önce olumlu açıklamadan zihinsel modeli oluşturur, ardından dışlamaları üstüne filtre olarak uygular.
Kalıp 3: Örnek Şablonu
Birden çok yapay zeka etkileşiminde tutarlı çıktıya ihtiyacınız olduğunda — dokümantasyon oluşturma, test senaryoları yazma veya API yanıtlarını biçimlendirme — yapay zekaya ne yapması gerektiğini söylemek, göstermekten daha az etkilidir. Örnek Şablonu kalıbı, istenen çıktının bir veya iki tam örneğini sağlar ve ardından aynı formatta daha fazlasını ister.
Bu, sohbet arayüzleri aracılığıyla sunulan az-örnekli öğrenmeye en yakın şeydir. İyi seçilmiş bir örnek, açıkça tanımlanması paragraflar alacak olan formatı, tonu, detay seviyesini ve örtük kuralları iletir.
// Hata mesajları oluşturmak için Örnek Şablonu
const example = {
code: "ERR_AUTH_TOKEN_EXPIRED",
message: "Your session has expired. Please log in again.",
severity: "warning",
action: "redirect:/login",
};
const result = await ai.generate([
"Generate 5 more error objects in the same format as this example:",
JSON.stringify(example, null, 2),
"Cover: rate limiting, permission denied, not found, validation error, server error.",
].join("\n\n"));Bu kalıbın anahtarı doğru örneği seçmektir. Temsili olmalı ancak uç-durum ağırlıklı olmamalıdır — yapay zekanın sizin örneğinizden genelleme yapmasını istersiniz, tuhaflıklarını kopyalamasını değil. Çıktı formatının birden çok varyasyonu olduğunda iki örnek birden iyidir, ancak üçten fazla örnek nadiren değer katar ve bağlam pencerenizi tüketmeye başlar.
Kalıp 4: Yinelemeli İyileştirme Döngüsü
Yapay zekadan tek bir prompt'ta nihai, mükemmel bir sonuç istemek, herhangi bir yineleme olmadan üretim kodu göndermesini istemek gibidir. Bazen işe yarar, ancak genellikle önemli ölçüde yeniden çalışma gerektiren bir şey üretir. Yinelemeli İyileştirme Döngüsü, yapay zeka etkileşimini bir konuşma olarak ele alır, geniş başlayıp daraltarak ilerler.
- Tur 1 — Geniş bir çözüm veya iskelet oluşturun. Henüz detay istemeyin.
- Tur 2 — Çıktıyı inceleyin ve spesifik yönlendirme yapın. Şu kısım iyi, şu kısmı değiştir, şu durumu ekle.
- Tur 3 — Detayları cilalayın. Hata yönetimi, uç durumlar, adlandırma, dokümantasyon.
Her tur, yapay zekaya gerçekte ne istediğiniz hakkında daha fazla bağlam verir, çünkü geri bildiriminiz az önce ürettiği koda özgüdür. Bu, ilk prompt'ta her detayı tahmin etmeye çalışmaktan çok daha verimlidir. Yapay zeka da bundan faydalanır çünkü sorunun her seferinde bir seviyesine odaklanabilir — önce yapı, sonra ayrıntılar, sonra cilalama.
Kalıp 5: Rol Ön Eki
Yapay zeka modelleri birçok alandan metinlerle eğitilir ve prompt verildiğinde farklı kişilikler benimseyebilirler. Rol Ön Eki kalıbı, kod istemeden önce yapay zekaya açıkça bir rol ve bakış açısı atar, bu da onu o bağlama uygun çıktı üretmeye hazırlar.
// Genel
"Review this function for security issues."
// Rol ön ekli
"You are a security engineer reviewing a pull request. Focus on:
- Injection vulnerabilities in the SQL query construction
- Missing input validation on the user ID parameter
- Hardcoded credentials or secrets
Review this function:"Rol Ön Eki kalıbı, özellikle inceleme görevleri, yeniden düzenleme ve dokümantasyon oluşturma için güçlüdür. Erişilebilirlik standartlarını takip eden koda ihtiyacınız olduğunda, 'Sen bir erişilebilirlik uzmanısın' ile ön ekleyin. Performans için optimize ederken, 'Sen bir performans mühendisisin' ile ön ekleyin. Yapay zeka, mantığını ve çıktısını talep ettiğiniz bakış açısına uyacak şekilde ayarlar.
Kalıp 6: Çıktı Sözleşmesi
Yapay zeka kodlamasındaki en sinir bozucu deneyimlerden biri, doğru görünen ancak çıktı formatını ince bir şekilde değiştiren, istemediğiniz açıklayıcı metin ekleyen veya kritik kısımları atlayan bir yanıt almaktır. Çıktı Sözleşmesi kalıbı, yanıtın tam olarak ne içermesi gerektiğini ve aynı derecede önemlisi, ne içermemesi gerektiğini belirterek bunu önler.
"Generate a React component for a file upload button.
Output contract:
- Return ONLY the component code in a single code block
- No explanation text before or after
- Include TypeScript props interface
- Include CSS module import
- Do NOT include usage examples or test files
- File name: FileUpload.tsx"Çıktı Sözleşmesi, özellikle yapay zeka çıktısını başka bir araca veya iş akışına yönlendirirken değerlidir. Yanıt her zaman aynı yapıyı takip ediyorsa, onu güvenilir bir şekilde ayrıştırabilirsiniz. Bu kalıp, tutarlı biçimlendirme gerektiren otomatik yapay zeka destekli ardışık düzenler oluşturmanın temelidir.
Kalıp 7: Bağlam Penceresi Bütçesi
Her yapay zeka modelinin sınırlı bir bağlam penceresi vardır. Çok fazla kod, dokümantasyon veya konuşma geçmişi yapıştırdığınızda, model unutmaya veya halüsinasyon görmeye başlar. Bağlam Penceresi Bütçesi kalıbı, bağlam penceresini kıt bir kaynak olarak ele alır ve onu bilinçli bir şekilde tahsis eder.
- Bütçenizin %60'ını en alakalı kod ve görev tanımına ayırın.
- %20'sini görevi netleştiren örneklere ve kısıtlamalara ayırın.
- %20'sini yapay zekanın yanıt alanı için ayırın — pencere doluysa, çıktı kesilecektir.
Pencereye sığmayacak kadar bağlamınız olduğunda, en spesifik ve alakalı kısımlara öncelik verin. Dikkatlice seçilmiş bir dosyayla odaklanmış bir prompt, gevşek bir şekilde ilişkili beş dosyayla geniş bir prompt'tan daha etkilidir. Yapay zeka ihtiyacı olursa her zaman daha fazla bağlam isteyebilir — konuşmanın başında buna izin verin.
Dikkatlice seçilmiş bir dosyayla odaklanmış bir prompt, yapay zekanın zar zor görebildiği beş dosyayla dağınık bir prompt'tan sürekli olarak daha iyi performans gösterir.
Kalıp 8: İskelet-Sonra-Detay Sırası
Karmaşık özelliklerin birçok hareketli parçası vardır. Yapay zekadan hepsini bir kerede üretmesini istemek, durum yönetimi, API çağrıları ve UI oluşturmanın ayrılmasının zor olduğu karışık bir sonuç üretir. İskelet-Sonra-Detay sırası, sorunu iki aşamaya ayırır.
İlk olarak, yapay zekadan bir iskelet oluşturmasını isteyin: uygulama detayları olmadan tip tanımları, arayüzler ve özelliğin üst düzey yapısı. Bu iskeleti inceleyin ve zihinsel modelinizle eşleştiğini onaylayın. Ancak ondan sonra yapay zekadan detayları doldurmasını isteyin — uygulama, hata yönetimi, uç durumlar — her seferinde bir katman.
// Aşama 1 — İskelet
"Design the type structure for a multi-step checkout flow. List the interfaces, enums, and state machine transitions. Do not write implementation yet."
// Aşama 2 — Detay (iskeleti inceledikten sonra)
"Implement the checkout state machine from the types we agreed on. Include transition validation and error states."Bu kalıp, en pahalı yeniden çalışma türünü önler: uygulama tamamlandıktan sonra yapıyı değiştirmek. Önce iskelet üzerinde anlaşarak, yapay zekanın hayali bir temel yerine mimarinizle eşleşen bir temel üzerine inşa etmesini sağlarsınız.
Kalıpları bir araya getirmek
Bu sekiz kalıp en iyi birleştirildiğinde çalışır. Tipik bir oturum, talebi çerçevelemek için Bağlam Sandviçi ile başlayabilir, istenmeyen yaklaşımları hariç tutmak için Negatif Kısıtlamaları kullanabilir, doğru çözüme yakınsamak için Yinelemeli İyileştirme Döngüsü'nü takip edebilir ve temiz, ayrıştırılabilir bir sonuç almak için bir Çıktı Sözleşmesi ile kapanabilir.
Bu kalıpları ne kadar çok pratik ederseniz, o kadar doğal hale gelirler. Birkaç gün içinde, içgüdüsel olarak prompt'ları Bağlam Sandviçleri olarak yapılandırdığınızı ve düşünmeden Negatif Kısıtlamalar eklediğinizi göreceksiniz. İşte o zaman yapay zeka destekli geliştirme, bazen yardımcı olan bir araçtan iş akışınızın tutarlı ve güvenilir bir parçasına dönüşür.
Yapay zeka asistanıyla her etkileşim bir yatırımdır. İyi yapılandırılmış bir prompt yazmak otuz saniye daha fazla sürer, ancak saatlerce süren ileri geri gidişi kurtarır. Yüz etkileşimde, bu otuz saniyeler günlerce kazanılmış zamana dönüşür — ve hayal kırıklığı ile akış arasındaki farktır.
