Yeni·E-Ticaret Pro Paketi Yayında — Entegre Ödeme, Stok ve Sipariş YönetimiBlog·2025'te Küçük İşletmeler İçin Web Tasarım TrendleriKampanya·Mayıs Ayına Özel %20 İndirim — Kartvizit & Başlangıç Paketleriİçgörü·Müşteri Projelerinde Dönüşüm Oranı Ortalama %40 Artış SağlandıBlog·SEO'ya Yeni Başlayanlar İçin Temel Rehber — Ücretsiz İndirHaber·Ankara'da Yeni Çözüm Ortaklıkları ile Hizmet Ağı GenişliyorGüncelleme·Tüm Projeler İçin Ücretsiz SSL, CDN ve Hız Optimizasyonu DahilYeni·Çözümler Sayfası Açıldı — Sektöre Özel Web ÇözümleriKampanya·Ücretsiz Web Sitesi Değerlendirmesi — Bugün Başvurİçgörü·Ortalama Proje Teslim Süresi: 14 Gün — GarantiliYeni·E-Ticaret Pro Paketi Yayında — Entegre Ödeme, Stok ve Sipariş YönetimiBlog·2025'te Küçük İşletmeler İçin Web Tasarım TrendleriKampanya·Mayıs Ayına Özel %20 İndirim — Kartvizit & Başlangıç Paketleriİçgörü·Müşteri Projelerinde Dönüşüm Oranı Ortalama %40 Artış SağlandıBlog·SEO'ya Yeni Başlayanlar İçin Temel Rehber — Ücretsiz İndirHaber·Ankara'da Yeni Çözüm Ortaklıkları ile Hizmet Ağı GenişliyorGüncelleme·Tüm Projeler İçin Ücretsiz SSL, CDN ve Hız Optimizasyonu DahilYeni·Çözümler Sayfası Açıldı — Sektöre Özel Web ÇözümleriKampanya·Ücretsiz Web Sitesi Değerlendirmesi — Bugün Başvurİçgörü·Ortalama Proje Teslim Süresi: 14 Gün — Garantili
ilkkod
Yapay Zeka Geliştirme

Vibe Coding ile Gerçek Proje Geliştirme: Türk Geliştirici İçin Pratik Rehber

Generic 'vibe coding nedir' değil; Cursor, Claude Code ve Windsurf ile gerçek bir KOBİ paneli nasıl inşa edilir? Türkçe prompt stratejisi, .cursorrules hazırlama ve güvenlik tuzakları.

İlker
22 Mart 2026
18 dk
Vibe Coding ile Gerçek Proje Geliştirme: Türk Geliştirici İçin Pratik Rehber

Önemli Not: Bu yazıdaki teknik bilgiler yazım tarihi itibarıyla geçerlidir. Kullanılan kütüphaneler, API'ler ve servisler zaman içinde değişebilir. Ücretlendirme, yasal düzenleme ve vergi konularında ilgili resmi kaynakları ve uzmanları referans alınız. Bu içerik bilgilendirme amaçlı olup herhangi bir finansal veya hukuki tavsiye niteliği taşımamaktadır.

"Vibe coding nedir?" sorusunun yanıtını anlatan sekiz-on Türkçe makale var — evet, saydım. Bunların tamamı aynı şeyi söylüyor: yapay zeka ile konuşarak kod yazıyorsun, süper kolay, herkes developer olabilir, vb. Bunların hiçbiri şunu anlatmıyor: Türkçe arayüzlü, gerçek bir müşteri için çalışan bir uygulama nasıl yapılır?

Bu yazıda farklı bir yol izleyeceğim. Soyut kavramlar değil, somut bir senaryo: küçük bir KOBİ için sipariş yönetim paneli. Baştan sona araç seçimi, kural dosyaları, prompt stratejisi ve güvenlik tuzakları — hepsi burada.

Bu projede de Next.js 16, Drizzle ORM ve Better Auth kullandığımız için anlattıklarım teorik değil, gerçek production deneyimine dayalı.


Neden Generic Vibe Coding Anlatımları Yetmez?

Türkiye'deki bir KOBİ için web uygulaması geliştirmek, Batı pazarına yönelik bir SaaS'tan farklı kısıtlar içeriyor:

  • Türkçe karakter sorunları: ı, ş, ç, ğ, ö, ü — AI bazen bunları bozuyor
  • Yerel ödeme entegrasyonu: PayTR, iyzico, Craftgate — İngilizce eğitim verisi bu sistemleri az biliyor
  • KVKK uyumu: GDPR'ın Türk muadili, AI'ın çoğunlukla görmezden geldiği bir konu
  • Türkiye timezone ve tarih formatı: Varsayılan UTC konfigürasyonları yanlış çalışıyor
  • Fatura ve e-SMM gereksinimleri: Türkiye'ye özgü yasal zorunluluklar

Bu faktörleri görmezden gelen bir vibe coding yaklaşımı, production'da başınıza dert açar.


Araç Seçimi: Cursor, Claude Code ve Windsurf

Türkiye'den kullanılan üç ana AI coding aracı var. Güncel fiyatlar için her aracın kendi web sitesini incelemenizi öneririm — bu yazıyı okurken tarifeler değişmiş olabilir.

Cursor

Cursor 2.6 (Mart 2026 itibarıyla) en olgun AI IDE deneyimini sunuyor. Mevcut editörünüzü değiştiriyor; VSCode fork'u olduğu için extension ekosistemi tam uyumlu.

Türkiye'den erişim: Kısıtlama yok. Türk Visa/Mastercard genellikle sorunsuz çalışıyor; sorun yaşanırsa Wise kartı önerilebilir.

Ne zaman seçin: GUI-ağırlıklı çalışıyorsanız, büyük codebase'lerde çoklu dosya düzenleme yapıyorsanız, ekip halinde çalışıyorsanız.

Claude Code

Claude Code Anthropic'in terminal tabanlı coding aracı. VS Code ve JetBrains eklentisi olarak da çalışıyor; IDE fork'u değil.

Kurulum tek satır:

curl -fsSL https://claude.ai/install.sh | bash

Türkiye'den erişim: Anthropic API Türkiye'yi resmi olarak destekliyor. ✅

Ne zaman seçin: Terminal-ağırlıklı çalışıyorsanız, agentic iş akışları istiyorsanız, Claude'un uzun bağlam penceresinden yararlanmak istiyorsanız. Bu yazıyı Claude Code kullanarak yazıyorum — ciddi anlamda.

Windsurf

Codeium'un geliştirdiği Windsurf, "Flows" paradigmasıyla copilot + agent arasında hibrit bir yaklaşım sunuyor. Kendi geliştirdikleri SWE-1.5 modeli hızlı agentic görevlerde öne çıkıyor. Cursor'a göre daha ucuz — detaylar için windsurf.com'u inceleyin.

Ne zaman seçin: Bütçe kısıtınız varsa ve hafif agentic görevler yeterliyse.

Hangi Araçla Başlamalı?

Türk geliştirici profili için önerim:

ProfilÖneri
Bireysel freelancer, Next.js ağırlıklıClaude Code veya Cursor Pro
Ekip çalışması, paylaşılan kurallarCursor Teams
Bütçe öncelikli, başlangıç düzeyiWindsurf veya GitHub Copilot
Terminal seven, agentic workflowClaude Code

Araçlar arasında geçiş yapmak mümkün — birini öğrenmek diğerine geçişi kolaylaştırıyor.


Proje Senaryosu: KOBİ Sipariş Yönetim Paneli

Teorik konuşmak yerine somut bir senaryo üzerinden ilerleyelim.

Müşteri: Ankara'da faaliyet gösteren küçük bir su arıtma cihazı satıcısı. 15-20 müşterisi için sipariş, servis talebi ve fatura takibi yapacak dahili bir panel istiyor.

Stack: Next.js 16 (App Router) + Drizzle ORM + Better Auth + PostgreSQL (Neon)

Özellikler:

  • Müşteri listesi ve CRUD işlemleri
  • Sipariş takibi (bekliyor / teslim edildi / iptal)
  • Servis randevuları
  • Basit dashboard (aylık sipariş, bekleyen servis sayısı)
  • Türkçe arayüz

Bu proje, vibe coding ile makul sürede yapılabilecek — ama bazı kısımları manuel kod gerektiriyor. Bunu da anlatacağım.


Adım 1: Spec Yazımı — Önce Belgele, Sonra Kodla

Vibe coding ile yapılan en büyük hata: doğrudan "şunu yaz" diye başlamak.

Spec-driven development şu soruları önceden yanıtlar:

  1. Kullanıcı hikayeleri: "Admin olarak müşteri ekleyebilmeli, ad-soyad, telefon ve adres bilgileriyle."
  2. Teknik gereksinimler: Hangi tablolar? Hangi ilişkiler? Hangi API endpoint'leri?
  3. Kabul kriterleri: "Müşteri kaydedilince toast bildirimi çıkmalı, liste otomatik yenilenmeli."
  4. Kapsam dışı: "Ödeme entegrasyonu bu aşamada yok. Mobil uygulama yok."

Kapsam dışını yazmak kritik — AI bazen "yardımcı olmak" için istemediğiniz özellikler ekliyor.

Örnek spec dosyası (projenin kökünde SPEC.md olarak tutun):

# KOBİ Sipariş Paneli — Teknik Spec ## Kullanıcı Hikayeleri - Admin (tek kullanıcı, email+şifre) sisteme giriş yapar - Müşteri ekler/düzenler/siler (ad, soyad, telefon, adres) - Sipariş oluşturur (müşteri seçimi, ürün, tutar, durum) - Sipariş durumunu günceller (bekliyor → teslim edildi) - Dashboard'da bugünün siparişlerini ve bekleyen servisleri görür ## Veritabanı Şeması - customers: id, name, surname, phone, address, createdAt - orders: id, customerId, productName, amount, status, notes, createdAt - service_requests: id, customerId, description, scheduledAt, status ## Kapsam Dışı - Ödeme entegrasyonu (sonraki aşama) - Müşteri portalı (müşteriler sisteme girmeyecek) - Mobil uygulama - E-posta bildirimleri

Bu spec dosyasını AI'a verdiğinizde çok daha tutarlı sonuçlar alırsınız.


Adım 2: Kural Dosyası Hazırlama

AI coding aracı için yazdığınız kurallar, projenin DNA'sıdır. Bunlar olmadan her yeni sohbette aynı tercihleri tekrar açıklamak zorunda kalırsınız.

Cursor Kural Dosyaları

Eski yol (hâlâ çalışır): Proje kökünde .cursorrules dosyası.

Yeni yol (önerilen): .cursor/rules/ dizininde .mdc uzantılı dosyalar.

.mdc dosyaları frontmatter destekliyor:

---
description: Genel proje kuralları
alwaysApply: true
---
---
description: API route'lar için kurallar
globs: app/api/**/*.ts
---

Örnek: .cursor/rules/genel.mdc

--- description: Genel proje kuralları — her zaman uygula alwaysApply: true --- # Proje: KOBİ Sipariş Paneli ## Stack - Next.js 16 App Router (proxy.ts, params await zorunlu) - TypeScript — strict mode, JavaScript YAZMA - Tailwind CSS v4 (@import "tailwindcss", tailwind.config.js yok) - Drizzle ORM + Neon PostgreSQL - Better Auth (admin: email+şifre, magic link yok) - Bun runtime ## Kod Stili - Tab indentation (spaces değil) - Biome formatter (ESLint/Prettier değil) - Türkçe UI metinleri: ı, ş, ç, ğ, ö, ü karakterlerini DOĞRU kullan - Türkiye timezone: 'Europe/Istanbul' kullan, UTC varsayımlı kod yazma ## Güvenlik Kuralları - Drizzle ORM kullan, raw SQL yazma - Parameterized query kullan, string interpolation YAPMA - dangerouslySetInnerHTML KULLANMA - API key ve secret'ları .env'de tut, client component'a aktarma - Her API route'unda session kontrolü yap ## Bileşen Kuralları - shadcn/ui bileşenlerini kullan (Button, Input, Table, Card) - Client component olması gerekmiyorsa "use client" EKLEME - Server Component'da async/await ile veri çek, useEffect kullanma ## KVKK Notu - Müşteri verisini log'lama - Console.log'a kişisel veri basma (isim, telefon, adres) - Gereksiz veri toplama

Örnek: .cursor/rules/api-routes.mdc

--- description: API route'ları için kurallar globs: app/api/**/*.ts --- # API Route Kuralları - Her route'da önce Better Auth session kontrolü yap - Session yoksa 401 döndür - Zod ile input validasyonu yap, ham istek verisini kullanma - Hata mesajlarında iç detay yayma (production'da) - Rate limiting ekle (şimdilik değil, not bırak: TODO: rate-limit)

Claude Code Kural Dosyaları

Claude Code için CLAUDE.md dosyası kullanılıyor. Konum hiyerarşisi:

KapsamKonumPaylaşım
Organizasyon/Library/Application Support/ClaudeCode/CLAUDE.mdEkip
Proje./CLAUDE.md veya ./.claude/CLAUDE.mdGit (tüm ekip)
Kişisel~/.claude/CLAUDE.mdSadece siz

Önemli: 200 satırın altında tutun — fazlası uyum kalitesini düşürüyor. @path/to/file syntax ile başka dosyaları import edebilirsiniz.


Adım 3: Türkçe mi, İngilizce mi Prompt Yazmalı?

Bu soruyu gerçekten test ettim. Sonuç şaşırtıcı değil ama somut:

Öneri: System prompt İngilizce, kullanıcı Türkçe konuşabilir.

Neden?

  1. Eğitim verisi: Tüm büyük LLM'ler İngilizce ağırlıklı eğitildi. Teknik bilgi İngilizce'de çok daha zengin.
  2. Token verimliliği: Türkçe çoğu zaman daha fazla token harcıyor.
  3. Tutarsızlık riski: Türkçe sistem promptlarında teknik terimler bazen Türkçeye çevriliyor, bazen çevrilmiyor — tutarsız sonuç.

Pratikte nasıl çalışıyor?

Kural dosyanızı (.cursorrules veya CLAUDE.md) İngilizce yazın. Günlük promptlarınızı Türkçe yazabilirsiniz:

"Müşteri listesi sayfasına arama filtresini ekle.
Ad veya telefon numarasına göre filtrelenebilsin."

Bu çalışıyor. Model, İngilizce kuralları anlıyor ve Türkçe talimatı yerine getiriyor.

İstisna: UI metinleri için Türkçe örnekler verin:

"Hata mesajları şu formatı kullansın:
- Başarı: 'Müşteri başarıyla kaydedildi.'
- Hata: 'Kayıt sırasında bir hata oluştu, lütfen tekrar deneyin.'
- Onay: 'Bu müşteriyi silmek istediğinizden emin misiniz?'"

Adım 4: Gerçek Proje Akışı

Spec hazır, kurallar yazılı — şimdi gerçek geliştirme sürecine bakılım.

Veritabanı Şeması (Manuel Gözden Geçir)

Bu kısımda AI'ın önerisini kabul etmeden önce şemayı inceleyin:

// lib/db/schema/customers.ts import { pgTable, text, timestamp, uuid } from "drizzle-orm/pg-core" export const customers = pgTable("customers", { id: uuid("id").defaultRandom().primaryKey(), name: text("name").notNull(), surname: text("surname").notNull(), phone: text("phone").notNull(), address: text("address"), createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(), updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(), }) export const orders = pgTable("orders", { id: uuid("id").defaultRandom().primaryKey(), customerId: uuid("customer_id") .references(() => customers.id, { onDelete: "cascade" }) .notNull(), productName: text("product_name").notNull(), amount: text("amount").notNull(), // TL, string olarak sakla (ondalık hassasiyet) status: text("status", { enum: ["bekliyor", "teslim-edildi", "iptal"], }) .default("bekliyor") .notNull(), notes: text("notes"), createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(), })

Şemayı AI yazdıktan sonra şu soruları sorun:

  • "amount" için hangi tip doğru? (Para birimleri için numeric/decimal veya string)
  • Timezone: withTimezone: true yazdı mı?
  • Soft delete gerekiyor mu?

Prompt Stratejisi: Küçük Adımlar

Büyük özelliği tek seferde isteyin değil, parçalara bölün:

Yanlış: "Müşteri yönetimi modülünü yaz, CRUD, arama, sayfalama, form validasyonu, toast bildirimleri hepsi olsun."

Doğru sıra:

  1. "Önce müşteri listesi sayfasını yaz. Veritabanından çeksin, tablo halinde göstersin."
  2. "Tabloya sayfalama ekle. Sayfa başına 20 kayıt."
  3. "Yeni müşteri eklemek için drawer veya modal ekle, form validasyonuyla."
  4. "Arama filtresini ekle."

Her adımı test edin, sonrakine geçin.

Code Review Süreci

AI'ın yazdığı kodu çalıştırmadan önce gözden geçirin. Odaklanacağınız noktalar:

1. Session kontrolü var mı?

// app/api/customers/route.ts export async function GET(request: Request) { // BU KONTROLÜ AI EKLEDI Mİ? const session = await auth.api.getSession({ headers: await headers(), }) if (!session) { return Response.json({ error: "Yetkisiz" }, { status: 401 }) } // devam... }

2. Input validasyonu var mı?

// Zod şeması olmalı const createCustomerSchema = z.object({ name: z.string().min(2, "Ad en az 2 karakter olmalı"), surname: z.string().min(2, "Soyad en az 2 karakter olmalı"), phone: z.string().regex(/^[0-9]{10,11}$/, "Geçerli telefon numarası girin"), address: z.string().optional(), })

3. Raw SQL var mı? (Tehlikeli — Drizzle kullanılıyorsa olmamалı)


Adım 5: Yaygın Güvenlik Tuzakları

Vibe coding ile yazılan kodlarda en sık karşılaşılan güvenlik sorunları:

1. SQL Injection

ORM kullanmadan string birleştirme yapılıyorsa risk var:

// YANLIŞ — SQL Injection açığı const customers = await db.execute( `SELECT * FROM customers WHERE name = '${searchTerm}'` ) // DOĞRU — Drizzle ORM ile parameterized const customers = await db .select() .from(customersTable) .where(like(customersTable.name, `%${searchTerm}%`))

Kontrol: AI'ın yazdığı kodda template literal içinde SQL varsa alarm zili.

2. XSS (Cross-Site Scripting)

React normalde bunu önlüyor, ama şu kullanım tehlikeli:

// YANLIŞ — Kullanıcı verisi doğrudan HTML olarak render ediliyor <div dangerouslySetInnerHTML={{ __html: customer.notes }} /> // DOĞRU — Metin olarak render et <p>{customer.notes}</p>

Kural dosyanıza "dangerouslySetInnerHTML KULLANMA" yazın — AI genellikle uyuyor.

3. Hardcoded Secrets

// YANLIŞ — Kaynak kodda API key const resend = new Resend("re_123abc456def") // DOĞRU — Ortam değişkeni const resend = new Resend(process.env.RESEND_API_KEY)

AI bazen test kodu yazarken placeholder yerine gerçekmiş gibi görünen string'ler kullanıyor. Her API key satırını kontrol edin.

4. CORS Açığı

// YANLIŞ — Tüm originlere açık headers.set("Access-Control-Allow-Origin", "*") // DOĞRU — Sadece kendi domain'iniz headers.set("Access-Control-Allow-Origin", process.env.NEXT_PUBLIC_APP_URL!)

Next.js App Router'da bu genellikle sorun değil, ama özel API endpoint'leri yazarken dikkat.

5. Rate Limiting Unutuluyor

AI çoğunlukla rate limiting eklemez. Login endpoint'leri ve form submit'ler için mutlaka ekleyin:

// Basit in-memory rate limit (production'da Redis tabanlı kullanın) // TODO: @upstash/ratelimit ile rate limiting ekle

Kural dosyanıza şunu ekleyin: "Her API route için TODO: rate-limit yorumu bırak."

6. Türkçe Karakter Sorunları

AI bazen Türkçe string'lerde karakter hatası yapıyor:

// YANLIŞ — "i" yerine "ı" ve "I" yerine "İ" const statuses = ["Bekliyor", "Teslim Edildi", "Iptal"] // "Iptal" yanlış! // DOĞRU const statuses = ["Bekliyor", "Teslim Edildi", "İptal"] // "İptal" doğru

Kural dosyanızda Türkçe karakterlerin listesini verin ve birkaç örnek yazın.


Vibe Coding Hangi Durumlarda Uygun Değil?

Bu bölümü atlayan rehberlerin büyük bir eksiği var. Vibe coding her şey için uygun değil.

Uygun Olmadığı Durumlar

1. Kriptografi ve güvenlik primitifler

// AI'a bunu yazdırmayın function hashPassword(password: string) { ... } // Bunun yerine battle-tested kütüphane kullanın // Better Auth, bcrypt, argon2 — AI bu kütüphanelerin kullanımını yazabilir

2. Ödeme işlem mantığı

PayTR veya iyzico entegrasyonunda HMAC token hesaplama, postback doğrulama gibi güvenlik-kritik kısımları AI yazdırıp doğrulamadan kullanmayın. Mutlaka resmi dokümantasyonla karşılaştırın.

3. KVKK/GDPR uyumu kararları

"KVKK'ya uygun veri silme mekanizması yaz" — bu isteği AI'a yapamazsınız. Hukuki gereksinimler değişkendir ve yanlış implementasyon ciddi sorun yaratır.

4. Yüksek frekanslı veri işleme ve optimizasyon

Binlerce satır veriyi işleyen, yüksek performans gerektiren algoritmalar — burada profiling ve bilinçli optimizasyon gerekiyor.

5. Auth kritik akışları

Oturum yönetimi, token doğrulama, rol tabanlı erişim kontrolü — bunları anlamadan kullanmak güvenlik açığı yaratır. Better Auth'u kurar, konfigüre edersiniz; iç mekanizmayı yeniden yazmayı AI'a bırakmazsınız.

Uygun Olduğu Durumlar (Türk Projesi İçin)

  • Tablo ve liste bileşenleri
  • Form ve validasyon
  • Dashboard widgetları
  • Statik sayfalar ve landing page'ler
  • Rutin CRUD işlemleri
  • Email template'leri
  • Tip tanımları ve şemalar
  • Test yazımı

Gerçek Bir Sorunum: Tarih ve Timezone

Türkiye projelerinde en sık karşılaştığım sorunlardan biri: AI varsayılan olarak UTC kullanıyor, ama kullanıcılar Türkiye saatini bekliyor.

// AI yazdı — YANLIŞ const order = await db.insert(orders).values({ // ... createdAt: new Date(), // UTC }) // Görüntüleme — AI yazdı ama Türkiye saatini göstermiyor <td>{order.createdAt.toLocaleDateString()}</td>

Doğru yaklaşım: Kural dosyanıza ekleyin:

Tarih/saat gösterimi:
- Veritabanında UTC sakla (withTimezone: true)
- Gösterimde 'Europe/Istanbul' timezone kullan
- Format: new Intl.DateTimeFormat('tr-TR', { timeZone: 'Europe/Istanbul' })
- "13 Mart 2026, 15:30" formatı kullan

Bu kural prompt'ta varsa AI otomatik doğru kodu yazıyor.


Vercel Deploy: Production'a Çıkma

Projeyi tamamladıktan sonra Vercel deploy:

# Önce local build test edin bun run build # Vercel CLI ile deploy vercel --prod

Deploy öncesi kontrol listesi:

  • Tüm environment variable'lar Vercel dashboard'a eklendi mi?
  • DATABASE_URL production Neon URL'si mi?
  • BETTER_AUTH_SECRET güçlü random string mi? (min 32 karakter)
  • NEXT_PUBLIC_APP_URL production domain mi?
  • Console.log'larda kişisel veri var mı? (Müşteri adı, telefon)
  • API route'ları session kontrolü yapıyor mu?

Freelancer İçin Vibe Coding Stratejisi

Eğer freelancer olarak çalışıyorsanız, vibe coding ciddi bir rekabet avantajı sağlıyor — ama dikkatli kullanılmalı.

Ne kadar zaman kazandırıyor?

Kendi deneyimlerimden: rutin bir CRUD paneli için geliştirme süresi %40-60 azalıyor. Ama code review ve test süresi aynı kalıyor — orada kısayol yok.

Müşteriye nasıl anlatmalı?

Anlatmak zorunda değilsiniz. Hangi araçla kod yazdığınız değil, teslim ettiğiniz ürünün kalitesi önemli. Bir marangoz hangi testere kullandığını açıklamak zorunda değil.

Ne zaman anlatmalı?

Müşteri AI güvenliği konusunda endişeliyse (veri gizliliği vb.), açık olun. Özellikle sağlık veya finans sektöründeki müşteriler bu konuda soru sorabilir.


Sıkça Sorulan Sorular

Türkçe prompt ile İngilizce prompt arasında gerçekten fark var mı?

Evet, teknik konu başında fark belirgin. Türkçe promptlarla yazdırılan kodda teknik terimler (Route Handler, middleware, hook) bazen Türkçeye çevriliyor ve tutarsızlık oluşuyor. Sistem kurallarını İngilizce yazıp günlük konuşmayı Türkçe yürütmek en iyi dengeyi sağlıyor.

.cursorrules mı yoksa .cursor/rules/ mi kullanmalıyım?

Yeni projeler için .cursor/rules/ klasörünü tercih edin. Birden fazla .mdc dosyasıyla kuralları konuya göre ayırabilirsiniz (genel, API kuralları, bileşen kuralları vb.). Eski projeler için .cursorrules hâlâ çalışıyor.

AI yazdığı kodu her zaman test etmeli miyim?

Evet, istisnasız. Özellikle güvenlik-kritik kısımlar (auth, ödeme, veri silme) için elle test edin. UI kodu için snapshot testler veya basit render testleri yeterli olabilir.

Vibe coding öğrenmeyi engelliyor mu?

Bu tartışmalı bir konu. Benim görüşüm: mevcut geliştiriciler için üretkenlik artırıcı. Yeni başlayanlar için risk var — "nasıl çalıştığını anlamadan çalıştırıyorum" tuzağına düşmek kolay. Başlangıç seviyesindeyseniz önce temel kavramları öğrenin, sonra AI'ı hızlandırıcı olarak kullanın.

KVKK açısından AI coding araçları güvenli mi?

Araçların gizlilik politikalarını okuyun. Cursor ve Claude Code, hassas projelerde kod içeriğinin eğitime kullanılmaması için ayarlar sunuyor. Müşteri datasını (gerçek isimler, telefon numaraları) prompt'a yazmayın — sahte verilerle test edin.

Cursor ve Claude Code'u birlikte kullanabilir miyim?

Evet. Birçok geliştirici Cursor'u IDE olarak kullanırken Claude Code'u terminal'de agentic görevler için kullanıyor. İkisi çakışmaz; farklı güçlü yönleri var.


Sonuç

Vibe coding, doğru kullanıldığında Türk geliştiricilere gerçek bir üretkenlik artışı sağlıyor. Ama "herkes developer olabilir" vaadi abartılı — kaliteli sonuç için hâlâ teknik yargı gerekiyor.

Özetlemek gerekirse:

  1. Spec yazın: Ne yapacağınızı netleştirmeden kodlamaya başlamayın
  2. Kural dosyası hazırlayın: Türkçe karakter, timezone, güvenlik kurallarını tanımlayın
  3. İngilizce sistem prompt, Türkçe günlük konuşma: En iyi teknik sonucu bu denge sağlıyor
  4. Her güvenlik-kritik kısmı kendiniz gözden geçirin: Session kontrolü, input validasyonu, SQL injection
  5. Uygun olmayan durumları bilin: Kriptografi, ödeme mantığı, KVKK kararları

Modern Next.js stack ve AI coding araçlarıyla KOBİ projesi geliştirme konusunda yardıma ihtiyaç duyarsanız iletişime geçin. Bu tür projeleri üretimde çalıştırıyoruz — teorik değil, pratik deneyim.

Paylaş: