8 dk

Prompt Açıklığının Mimari, Veri Modelleri ve Bakım Üzerindeki Etkisi

Net promptlar daha iyi mimari, temiz veri modelleri ve daha kolay bakım sağlar—pratik teknikler, örnekler ve kontrol listeleriyle.

Prompt Açıklığının Mimari, Veri Modelleri ve Bakım Üzerindeki Etkisi
  1. Goal
  • What are we building, and why now?
  • Success looks like: <measurable outcome>
  1. Users & roles
  • Primary users:
  • Admin/support roles:
  • Permissions/entitlements assumptions:
  1. Key flows (happy path + edge cases)
  • Flow A:
  • Flow B:
  • What can go wrong (timeouts, missing data, retries, cancellations)?
  1. Data (source of truth)
  • Core entities (with examples):
  • Relationships (1:N, N:N):
  • Data lifecycle (create/update/delete/audit):
  • Integrations/data imports (if any):
  1. Constraints & preferences
  • Must use / cannot use:
  • Budget/time constraints:
  • Deployment environment:
  1. Non-functional requirements (NFRs)
  • Performance: target latency/throughput, peak load assumptions
  • Uptime: SLA/SLO, maintenance windows
  • Privacy/security: PII fields, retention, encryption, access logs
  • Compliance: (if relevant)
  1. Risks & open questions
  • Known unknowns:
  • Decisions needed from stakeholders:
  1. Acceptance criteria + Definition of Done
  • AC: Given/When/Then statements
  • DoD: tests, monitoring, docs, migrations, rollout plan
  1. References
  • Link existing internal pages: /docs/<...>, /pricing, /blog/<...>
\n### Etkin kullanımı\n\n1–4 bölümlerini önce doldurun. Temel varlıkları ve kaynak-of-gerçek tanımlayamıyorsanız, tasarım genellikle “API'nin döndürdüğü şey”e kayar ve ileride karmaşık migrasyonlara ve belirsiz sahipliğe neden olur.\n\nNFR'ler için “hızlı” veya “güvenli” gibi belirsiz kelimeler kullanmayın; bunları sayılar, eşikler ve açık veri işleme kurallarıyla değiştirin. Kabaca bir tahmin bile (örn. “p95 \u003c 300ms okuma için 200 RPS”) sessizlikten daha yol göstericidir.\n\nKabul kriterleri için en az bir negatif vaka (örn. geçersiz girdi, izin reddi) ve bir operasyonel vaka (örn. hatalar nasıl görünür) ekleyin. Bu, tasarımı gerçek davranışla ilgili tutar, sadece diyagramlarla değil.\n\n## Koder.ai ile Net Promptları Tutarlı Yapılara Dönüştürme\n\nPrompt açıklığı, sadece kod parçaları üretirken değil, AI ile uçtan uca inşa ederken daha da önem kazanır. Vibe-coding iş akışında (promptlar gereksinimleri, tasarımı ve uygulamayı yönlendirirken) küçük belirsizlikler şema seçimlerine, API sözleşmelerine ve UI davranışına yayılabilir.\n\nKoder.ai bu geliştirme tarzı için tasarlandı: yapılandırılmış promptu sohbette yineleyebilir, **Planning Mode** ile varsayımları ve açık soruları netleştirebilir ve ardından çalışan bir web/backend/mobile uygulama yığını (web için React, backend için Go + PostgreSQL, mobil için Flutter) gönderebilirsiniz. **Snapshot ve rollback** gibi özellikler gereksinimler değiştiğinde güvenle deneme yapmanızı sağlar; **kaynak kodu dışa aktarma** takımların sahipliğini korumasına yardımcı olur.\n\nPromptları ekip arkadaşlarınızla paylaşıyorsanız, yukarıdaki şablonu yaşayan bir spesifikasyon olarak tutup uygulama ile birlikte versiyonlamak sınırları temiz tutar ve kazara kırıcı değişiklikleri azaltır.\n\n## İnceleme İş Akışı: İnşa Etmeden Önce Boşlukları Yakala\n\nBir prompt okunaklı olduğu için “tamam” sayılmaz. İki farklı kişi aynı prompttan yaklaşık aynı sistemi tasarlayacaksa o zaman tamamdır. Hafif bir inceleme iş akışı belirsizliği erken bulup mimari sallantıları, şema yeniden yazımlarını ve kırıcı API değişikliklerini engeller.\n\n### Adım 1: Okuma geri bildirimi (2 dakika)\n\nBir kişi (PM, mühendis veya AI) promptu şu şekilde yeniden ifade etsin: hedefler, non-goallar, girdiler/çıktılar ve kısıtlar. Bu read-back ile niyetinizi karşılaştırın. Her uyumsuzluk, açık olmayan bir gereksinimdir.\n\n### Adım 2: Eksik soruları ortaya çıkarın\n\nİnşa etmeden önce “tasarımı değiştirecek bilinmeyenleri” listeleyin. Örnekler:\n\n- Bir alanın doğruluk kaynağı kim (kullanıcı vs sistem vs harici API)?\n- Veri eksik/geç/çakıştığında ne olur?\n- Performans veya ölçek beklentileri nelerdir (kabaca sayılar)?\n\nSoruları doğrudan prompta kısa bir “Açık sorular” bölümü olarak yazın.\n\n### Adım 3: Varsayımlar listesini saklayın—ve dönüştürün\n\nVarsayımlar sorun değil, ama görünür olmaları gerekir. Her varsayım için birini seçin:\n\n- **Karar:** bunu açıkça belirtin (örn. “Email kullanıcı başına benzersizdir; değişiklik doğrulama gerektirir”).\n- **TODO:** bunu takip edilecek bir iş olarak işaretleyin (örn. “TODO: Saklama politikası için Hukuk ile onay alınacak”).\n\n### Adım 4: Küçük döngüler halinde yineleyin\n\nTek büyük bir prompt yerine 2–3 kısa yineleme yapın: önce sınırları netleştirin, sonra veri modelini, sonra API sözleşmesini. Her geçiş belirsizliği azaltmalı, kapsam eklememeli.\n\n### Kısa onay kontrol listesi (PM + mühendis)\n\n- Başarı metrikleri ve kabul kriterleri yazıldı mı\n- Non-goallar açıkça belirtildi mi\n- Sistem sınırları ve sorumluluklar adlandırıldı mı\n- Ana varlıklar/alanlar ve sahiplik tanımlandı mı\n- Hata vakaları ve kenar durumları tanımlandı mı\n- Varsayımlar karara veya TODO'ya dönüştürüldü mü\n\n## Yaygın Hatalar ve Nasıl Düzeltileceği\n\nGüçlü ekipler bile küçük, tekrar eden nedenlerle açıklık kaybeder. İyi haber: çoğu sorun herhangi bir kod yazılmadan önce kolayca tespit edilip düzeltilebilir.\n\n### Açıklık öldürücülere dikkat\n\n**Belirsiz fiiller** tasarım kararlarını saklar. “Destekle”, “işle”, “optimize et”, “kolaylaştır” gibi kelimeler başarının ne olduğunu söylemez.\n\n**Tanımlanmamış aktörler** sahiplik boşlukları yaratır. “Sistem kullanıcıyı bilgilendirir” hangi bileşen, hangi kullanıcı tipi ve hangi kanal sorusunu doğurur.\n\n**Eksik kısıtlar** kazara mimariye yol açar. Ölçeği, gecikmeyi, gizlilik kurallarını, denetim ihtiyaçlarını veya dağıtım sınırlarını belirtmezseniz uygulama tahmin yürütecek—ve sonradan maliyet ödersiniz.\n\n### Uygulamayı fazla belirtmeyin\n\nSık görülen tuzak, sonuç yerine araç ve iç yapıyı dikte etmektir (“Mikroservis kullanın”, “MongoDB'ye kaydedin”, “event sourcing kullan”). Gerçek istediğiniz çıktıysa önce *neden* istediğinizi yazın, sonra ölçülebilir gereksinimler ekleyin.\n\nÖrnek: “Kafka kullan” yerine “Event'ler 7 gün boyunca dayanıklı olmalı ve projeksiyonları yeniden oluşturmak için replay edilebilir olmalı” yazın.\n\n### Erken çelişkilerden kaçının\n\nÇelişkiler genellikle “gerçek zamanlı olmalı” ile “batch yeterli” ya da “PII saklanamaz” ile “kullanıcıya email gönder ve profilleri göster” gibi ifadelerde görünür. Öncelikleri sırala (must/should/could) ve birbirine aykırı kabul kriterleri ekleyerek çözün.\n\n### Anti-patternler ve düzeltmeleri\n\n- **Anti-pattern:** “Onboarding’i kolay yap.”\n  **Düzeltme:** “Yeni kullanıcı onboarding'i \u003c3 dakikada tamamlamalı; en fazla 6 alan; kaydet-devam-et desteklenmeli.”\n\n- **Anti-pattern:** “Yöneticiler hesapları yönetir.”\n  **Düzeltme:** İşlemleri tanımlayın (askıya alma, MFA sıfırlama, plan değiştirme), izinleri ve denetim loglarını belirtin.\n\n- **Anti-pattern:** “Yüksek performans sağla.”\n  **Düzeltme:** “P95 API gecikmesi 200 RPS'te \u003c300ms; rate-limited durumlarda kademeli düşüş”\n\n- **Anti-pattern:** Karışık terimler (“customer”, “user”, “account”).\n  **Düzeltme:** Küçük bir sözlük ekleyin ve tüm döküman boyunca buna sadık kalın.\n\n## Kontrol Listesi ve Sonraki Adımlar\n\nNet promptlar sadece bir asistanın “sizi anlaması”na yardımcı olmaz. Tahminleri azaltır; bu, temiz sistem sınırları, daha az veri-model sürprizi ve evrilmesi daha kolay API'ler olarak hemen ortaya çıkar. Belirsizlik ise yeniden çalışma olur: planlamadığınız migrasyonlar, gerçek iş akışlarına uymayan endpointler ve tekrar ortaya çıkan bakım işleri.\n\n### Tek sayfalık tekrar kullanılabilir kontrol listesi\n\nBunun yerine bir mimari, şema veya API tasarımı isteyin:\n\n- **Hedef:** Hangi kullanıcı çıktısı gerçekleşmeli? “Bitti” ne demek?\n- **Kapsam:** Neler dahil, neler hariç, neler sonra yapılabilir?\n- **Aktörler & giriş noktaları:** Akışı kim tetikler (kullanıcı, yönetici, sistem işi)?\n- **Ana iş akışları:** 2–5 yol, artı en önemli hata vakaları.\n- **Veri tanımları:** Önemli varlıklar, zorunlu alanlar, ID'ler ve ilişkiler.\n- **Kısıtlar:** Performans hedefleri, gizlilik kuralları, saklama, denetim ihtiyaçları.\n- **Entegrasyonlar:** Harici sistemler, eventler, kuyruklar ve sahiplik sınırları.\n- **API beklentileri:** Girdi/çıktı, hata davranışı, idempotentlik, sayfalama.\n- **Kabul kriterleri:** Test edilebilir ifadeler (kenar durumlar dahil).\n- **Non-goallar:** Sistemin yapmaması gerekenleri açıkça yazın.\n- **Varsayımlar:** Doğrulanmamış ama doğru olduğunu düşündükleriniz.\n- **Açık sorular:** İnşa etmeden önce yanıtlanması gerekenler.\n\n### Sonraki adımlar\n\n1. Bu hafta planladığınız gerçek bir özelliği seçin.\n2. Yukarıdaki kontrol listesiyle bir prompt yazın.\n3. İki tasarım üretin: eski promptunuzdan ve netleştirilmiş prompttan.\n4. Sonuçları üç mercekle karşılaştırın: **sistem sınırları**, **veri modeli**, **API sözleşmesi**.\n5. Netleştirilmiş promptu spec'inizin bir parçası olarak saklayın (yaşayan doküman hâline gelir).\n\nDaha pratik desenler isterseniz, /blog veya destekleyici rehberler için /docs'a göz atın.

SSS

Prompt açıklığı pratikte ne anlama gelir?

Prompt açıklığı, istediğinizi rekabet eden yorumlara az yer bırakacak şekilde ifade etmektir. Pratikte bu şunları yazmak demektir:

  • istediğiniz çıktı
  • kullanıcılar/aktörler
  • kısıtlar (veri, güvenlik, performans)
  • başarıyı nasıl ölçeceğiniz (kabul kriterleri)

Bu, “niyet”i tasarlanabilir, uygulanabilir ve test edilebilir gereksinimlere dönüştürür.

Geliştirme sırasında bir prompttaki belirsizlik neden bu kadar maliyetlidir?

Belirsizlik, inşa edenlerin (insanlar ya da AI) boşlukları varsayımlarla doldurmasına zorlar ve bu varsayımlar roller arasında nadiren örtüşür. Maliyet şu şekillerde ortaya çıkar:

  • yeniden çalışma (yeniden tasarım, migrasyonlar, kırıcı API değişiklikleri)
  • servisler arasında tutarsız davranış
  • gözden kaçan kenar durumlar ve kırılgan mantık

Açıklık, anlaşmazlıkları daha erken ve daha ucuz düzeltilebilecek biçimde görünür kılar.

Belirsiz bir prompt nasıl kötü sistem sınırlarına yol açar?

Mimari kararlar yol bağımlıdır: erken yorumlar servis sınırlarına, veri akışlarına ve “kuralların nerede yaşadığına” dönüşür. Prompt sorumlulukları (ör. faturalama vs yetkilendirme vs müşteri durumu) belirtmezse ekipler sıklıkla her şeyi kapsayan modüller kurar ve bunlar değiştirilmeleri zor hâle gelir.

Açık bir prompt, sahipliği açıkça atamanıza ve kazara oluşan sınırları önlemenize yardımcı olur.

Bir belirsiz promptu iyi mimariyi tetikleyecek hâle getirmenin en hızlı yolu nedir?

Tasarım alanını daraltmak için açık hedefler, non-goallar ve kısıtlar ekleyin. Örneğin:

  • “Faturaları PDF olarak 30 saniye içinde dışa aktar” asenkron işler, durum takibi ve depolama gerektirir.
  • “v1'de gerçek zamanlı işbirliği yok” websockets/çatış çözümü gibi gereksiz karmaşıklıkları engeller.

Her somut ifade birden çok “belki” mimarisini ortadan kaldırır ve kararları kasıtlı hale getirir.

Hangi “çapraz-kesin endişeleri” prompta her zaman eklemeliyim?

Mimariyi neredeyse tüm bileşenleri etkilediği için çapraz kesen gereksinimleri açıkça adlandırın:

  • kimlik doğrulama/authorization kuralları
  • denetim gereksinimleri (ne, kim, saklama)
  • hız sınırları ve suiistimal kontrolleri
  • idempotentlik ve yeniden deneme/zaman aşımı davranışları
  • PII işleme (şifreleme, erişim kayıtları, saklama)
  • gözlemlenebilirlik (loglar/metrikler/izler)

Belirtmezseniz, bunlar tutarsız uygulanır veya hiç uygulanmaz.

Prompt açıklığı karmaşık veri modellerini nasıl önler?

Terimleri (ör. customer, account, user) kesin anlamlarıyla tanımlayın. Tanımlamazsanız, şema nullable sütunlar ve aşırı yüklenmiş alanlar (status, type, metadata) şeklinde sapar.

İyi bir prompt şunları belirtir:

  • varlık tanımları ve kimliklendirme
  • ilişkiler (1:N, N:N)
  • kısıtlar (benzersizlik, gerekli alanlar)
  • yaşam döngüsü (silme vs devre dışı bırakma vs saklama)
Güçlü bir veri modeli için hangi ayrıntıları önceden belirtmeliyim?

Gerçek dünya sorunlarına en sık yol açan parçaları önceden belirtin:

  • kimlikler: birincil anahtarlar ve harici ID'ler (sync/import)
  • durumlar ve geçişler (örn. Taslak → Gönderildi → Ödendi → İade)
  • doğrulama kuralları ve hangi durumda uygulanacağı (oluşturma vs güncelleme)
  • zaman/para/locale kuralları (UTC, ISO 4217, yuvarlama)
  • kenar durumlar: kopyalar, birleştirmeler, eksik veri importları

Bu ayrıntılar anahtarlar, kısıtlar ve denetlenebilirlik için yol gösterir.

Prompt açıklığı API tasarımında kırıcı değişiklikleri nasıl azaltır?

Sözleşme davranışları hakkında açık olun ki istemciler tanımsız varsayımlara dayanamasın:

  • güncelleme semantiği (PUTPATCH mı; hangi alanlar yazılabilir/immutable)
  • hata işleme (durum kodları + tutarlı hata gövdesi)
  • sayfalama/filtreleme/sıralama kuralları
  • yazılar için idempotentlik (anahtarlar, dedupe penceresi)
  • geriye dönük uyumluluk beklentisi (yeni alanlar opsiyonel olsun)

Küçük örnek istek/yanıtlar eklemek belirsizliği hızla azaltır.

Prompt açıklığı işletilebilirliği (loglar/metrikler) geliştirir mi?

Eğer Definition of Done buna dahilse, evet. Aşağıdakileri açıkça ekleyin:

  • neyin loglanması gerektiği (ve neyin loglanmaması gerektiği)
  • önemli metrikler (gecikme, hata oranları, yeniden denemeler)
  • izleme için korelasyon/istek ID'leri
  • hataların nasıl görünür hâle getirileceği (uyarılar, dashboardlar)

Bunlar belirtilmezse, gözlemlenebilirlik düzensiz olur ve üretim sorunları müşteriler keşfetmeden önce zor teşhis edilir.

İnşa etmeden önce prompttaki boşlukları yakalamak için basit bir iş akışı nedir?

Kısa bir inceleme döngüsü belirsizliği yüzeye çıkarır:

  • Okuma geri bildirimi: biri hedefleri, non-goalları, girdileri/çıktıları ve kısıtları yeniden ifade etsin.
  • Açık sorular: tasarımı değiştirecek bilinmeyenleri listeleyin (alanın doğruluk kaynağı, hata davranışı, ölçek).
  • Varsayımlar listesi: her varsayımı bir karara veya takip edilecek TODO'ya çevirin.

Yapılandırılmış bir süreç isterseniz, bkz. /blog/review-workflow-catch-gaps-before-building.

Related posts