Uygulama geliştirme

Yapay zekâ ile uygulama yapmak

Yapay zekâ bugün bir uygulamanın ekranlarını gerçekten hızlı kuruyor ve o ekranlar projenin en küçük parçası; gerisi, yani izinler, para, hata durumları ve bakım, model çıktısının insan geçişi olmadan başını derde soktuğu yerin ta kendisi. Doğru yol işin sırasını değiştirmek: önce sade dille şartname, sonra kod üretimi ve en sonda kendinizin okuduğu bir güvenlik geçişi.

  • Ders 8 / 8
  • Orta
  • Ücretsiz, kayıt yok

Ekranlar gerçek bir ürünün ne kadarı?

rgb-freelance içindeki kod satırları, 8 Eylül 2026 da sayıldı17.963 satır
  1. 3.231
  2. 11.597
  3. 3.135
  • Ekranlar 3.231
  • Ekranların arkası 11.597
  • Görünüm 3.135

Bu bir mobil uygulama değil bizim bir web ürünümüz; sayıyı bir yasa olarak değil bir oran olarak okuyun.

Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.

Yapay zekâ uygulamanın hangi kısmını gerçekten kuruyor?

Modelleri adil yargılayan bir yanıt bir sayı ister ve biz sayımızı kendi ürünlerimizden birinden aldık; çünkü son satırına kadar sayabildiğimiz tek proje o.

Serbest çalışma pazaryeri eklentimiz rgb-freelance ın üç klasörü var. Ekranlar klasörü 3.231 satır, ekranların arkasındaki mantık 11.597 satır ve görünüm, yani CSS ile JavaScript, 3.135 satır. Toplamda 17.963 satır ve bunun içinde ekranların payı beşte birin biraz altında. Bu bir mobil uygulama değil ve öyle olduğunu iddia etmiyoruz; kullanıcıları, projeleri, mesajları ve dosyaları olan bir web ürünü ve bölünme biçimi mobil uygulamada da gördüğünüz biçim.

Şimdi haritayı modellerin üzerine koyun. O beşte bir, yani ekranlar, modellerin bugün gerçekten iyi kurduğu şeyin ta kendisi: formlar, listeler, boş durumlar, duyarlı yerleşim. Ortadaki o üçte iki, yani kimin neyi gördüğü, paranın nerede hesaplandığı ve sunucu yanıt vermediğinde ne olduğu ise üretilmiş kodun genelde eksiksiz göründüğü ama olmadığı yer.

Yani "uygulamayı yapay zekâ ile yap" iddiası ne yalan ne de hikâyenin tamamı. Daha kesini: en hızlı kısmı daha hızlı yapıyor. Beklentiniz buysa gerçek bir kazanç elde edersiniz; beklentiniz bitmiş bir ürünse aradaki farkı gerçek kullanıcınız olduğunda keşfedersiniz.

Yapay zekâ ile uygulama yapmak: nerede işe yarar, nerede yaramaz

Prototipleme hızı: gerçekten değişen şey

Riskler listesinden önce, çok az yapılan bir itiraf: burada gerçekten bir şey değişti ve onu küçümsemek, şişirmek kadar özensiz.

Bir ürüne başlamanın en zor kısmı olan şey, yani bir fikri elle tutulup birine gösterilebilecek bir şeye çevirmek, artık aynı toplantının içinde mümkün. Sahte veriyle üç ekran, bir giriş akışı ve kayan bir liste. Bu, uygulama için web den bile önemli; çünkü insanlar bir fikri telefonda kağıttakinden başka türlü yargılar.

Bu hızın gerçek değeri en az düşünülen yerde: işi çöpe atmanın maliyetinde. İlk sürüm yarım gün sürdüğünde ondan vazgeçmek de kolaydır. İlk sürüme aylarını veren ekipler ona o oranda bağlanır ve kötü fikri daha geç bırakır. Ucuz kodun yalnızca bir tasarruf değil gerçekten stratejik bir avantaj olduğu tek yer burasıdır.

Ve sınırı açıkça söyleyelim, çünkü her yerde bulanıklaşıyor: prototip ürün değildir. Çalışan bir prototip henüz ne gerçek bir kullanıcı görmüştür, ne zayıf bir ağ, ne de bilerek yanlış girdi gönderen birini. İkisi arasındaki mesafe, önceki bölümdeki aynı üçte ikidir ve hiçbir model onu sizin için kısaltmaz. Bu tartışmayla web tarafında karşılaştıysanız, vibe coding, faydaları ve tehlikeleri aynı tavrı kod üzerinde daha ayrıntılı alıyor.

Modele ne verilir, ne elde tutulur

Kendinizde tutun

  • Kimin neyi göreceği kararı
  • Paranın ya da stokun hesaplandığı her yer
  • Anahtarlar, parolalar ve gerçek ayar dosyası
  • Projeye giren her parçanın nihai kabulü

Modele verin

  • Ekranlar, formlar, listeler ve boş durumlar
  • Duyarlı yerleşim ve sağdan sola uyarlama
  • Atılmak üzere yapılan bir ilk sürüm
  • Kendi kodunu ayrı bir oturumda yeniden okumak

Sağdaki sütun modelin yapamayacağı anlamına gelmez; ürettiğini bir insanın kabul ya da reddetmesi gerektiği anlamına gelir.

Bir modelin yazdığı uygulamada bozulan dört şey

Bu dördü tahminle yazılmadı; her birinin bir kaynağı var ve her kaynak, aracı satan şirketin kendi sözü.

Bir, uygulamanın içindeki anahtar. Önce bir yanlış anlamayı kaldırmak gerekiyor: uygulamanın içindeki her anahtar tehlike değildir. Google un Firebase anahtarları hakkındaki kendi sayfası, bunların "tasarım gereği herkese açık" olduğunu ve yalnızca projenizi ve uygulamanızı tanımladığını, kurulumunuz kılavuza uyuyorsa sır gibi davranılması gerekmediğini ve kodunuza koymanın güvenli olduğunu yazıyor. Ama aynı sayfa, üretilmiş uygulamalarda tam olarak beliren açık bir istisna taşıyor: herkese açık bir anahtarın izin listesine Gemini Developer API yi asla koymayın. Yani yapay zekâ anahtarını uygulamanın içinde Firebase anahtarının yanına bırakan bir model, görünüşte aynı şeyi yapmış ve fiilen hesabınızı açık bırakmıştır.

İki, kimsenin yazmadığı izin. Üretilmiş kod genelde iyimser yolu eksiksiz kurar, kötümser yolu hiç kurmaz. OWASP Mobile Top 10 birinci sırayı hatalı kimlik bilgisi kullanımına veriyor ve yaygınlığını yaygın, saptanabilirliğini kolay, etkisini şiddetli olarak derecelendiriyor; yani bu hata sınıfı hem sık olur hem de kolay bulunur, ki bu kötü bir birleşim. Üretilmiş koda sorulacak ilk soru şudur: bu kullanıcının buna izni olduğu nerede denetlendi?

Üç, gelecek ay bakımı yapılamayan kod. Önceki ikisinin aksine bu risk bir güvenlik riski değil ve bu yüzden daha geç yüzeye çıkıyor. Sorun kötü kod değil, sahipsiz kod: dört farklı yanıttan gelen, her biri kendi kalıbını taşıyan dört parça ve hiçbirinin neden orada olduğunu kimsenin bilmemesi. Yapay zekâyla hiç ilgisi olmayan basit bir çözümü var: herhangi bir kod parçasını kabul etmeden önce ne yaptığını tek cümleyle söyleyebilin.

Dört, lisans. Burada da gerçek, iki yaygın anlatının da ötesinde ölçülü. GitHub ın Copilot belgeleri, önerilerin herkese açık kodla karşılaştırıldığını ve bir eşleşme bulunduğunda dosyaların adreslerinin ve o koda uygulanan lisansın adının, kendiniz karar verebilesiniz diye kaydedildiğini yazıyor. Aynı sayfa bu eşleşmelerin tipik olarak önerilerin yüzde birinden azında görüldüğünü söylüyor ve daha önemli iki nokta: denetim yalnızca kabul edilmiş satır içi öneriler için çalışıyor ve kendi yazdığınız kod ya da değiştirdiğiniz bir öneri hiç denetlenmiyor. Yani bir ölçüm aracı var ama sınırlı ve açık olması evrensel bir varsayılan değil bir ayar.

Model çıktısının eksiksiz göründüğü ama olmadığı dört yer

  • Yanlış yerde bir anahtar

    Uygulamadaki bir Firebase anahtarı sorun değil; yanındaki bir yapay zekâ API anahtarı sorundur.

  • Denetlenmemiş bir izin

    İyimser yol eksiksiz ve hiçbir yerde bu kullanıcının izni var mı diye sormuyor.

  • Sahipsiz kod

    Birkaç yanıttan birkaç parça, ortak kalıp yok ve nedenini bilen kimse yok.

  • Belirsiz bir lisans

    Herkese açık kodla eşleşmeyi denetleyen bir araç var ama açık olması bir ayar.

Bu dördünün hiçbiri yapay zekâya özgü değil; elle yazılmış kod da dördünü birden taşıyabilir. Fark üretilme hızlarında.

Doğru sıra: önce şartname, sonra kod

Yukarıdaki dört maddenin ortak bir kökü var ve teknik değil: henüz kimse kararları vermemişken bir modelden kod yazması istendi. Model karar vermez, boşluğu doldurur ve boşluğu gördüğü en alışıldık şeyle doldurur.

O yüzden sırayı değiştirin. Bu sırayla üç geçiş ve hiçbirini atlamayın.

Birinci geçiş şartnamedir ve içinde hiç kod yoktur: sade dille özellik listesi, verinin şekli ve kimin neyi görüp neyi değiştirdiği. Uygulama arka ucu nedir yazısını okuduysanız, bu o erişim tablosudur ve yeri tam olarak burasıdır, üretimden önce.

İkinci geçiş üretimdir ve girdisi sizin sözlü anlatımınız değil birinci geçişin çıktısıdır. İkisi arasındaki fark büyüktür: özellik listesi ve verinin şekli modelin önündeyken tahmin edecek bir şey kalmaz ve ürettiği kod bir belgeyle karşılaştırılabilir.

Üçüncü geçiş gözden geçirmedir ve kodu üreten oturumun içinde yapılmamalıdır. Tek bir belirli soruyla ayrı bir geçiş: bu kod nerede kullanıcının doğru söylediğini varsayıyor. O geçiş, bir sonraki bölümde tarif olarak beliren şeydir.

Üçünde de geçerli olan ve en basiti olan bir kural: tek cümleyle açıklayamadığınız hiçbir üretilmiş kod projeye girmez. Mutlaka yanlış olduğu için değil, bozulduğunda kimsenin nereden başlayacağını bilmemesi yüzünden. Yapay zekâ ile kod yazmak aynı kuralı programlama dili tarafından açıyor.

Üretilmiş kod gözden geçirme sayfasıüretimden ayrı bir oturumda

Kod projeye girmeden önce

  • Bu parçanın ne yaptığını tek cümleyle söyleyebiliyorsunuz
  • Verinin değiştiği her yerde kullanıcı izni denetleniyor
  • Kodda herkese açık olanlar dışında anahtar ya da parola yok
  • Her ağ isteğinin bir hata durumu ve zaman aşımı var

Bunlar henüz kabul etmeyin demektir

  • Bir tutar, rol ya da stok istemciden geliyor
  • Kod, adını bile duymadığınız bir kütüphane kullanıyor
  • Gözden geçirmeyi aynı oturumda aynı model yaptı
  • Bu parçanın neden burada olduğunu kimse bilmiyor

Yapay zekayla hızlı yol

Gerçekten fark yaratan tarif tek bir istem değil üç tanedir ve sıraları metinlerinden önemlidir. Birincisi hiç kod üretmez, ikincisi sizin sözlerinizle değil birincinin çıktısıyla beslenir ve üçüncüsü modelin kendi koduna taze gözle bakması için ayrı bir oturumda çalışır.

  1. Birinci geçiş, şartname. Modelden özellik listesini ve verinin şeklini isteyin ve hiç kod yazmamasını açıkça söyleyin. Bu geçişin çıktısı, kendinizin okuyup düzelttiği bir belgedir.
  2. İkinci geçiş, üretim. Düzeltilmiş belgeyi modelin önüne olduğu gibi koyun ve yalnızca bundan kur deyin. Belgede olmayan bir şey için kurmak yerine sormalıdır.
  3. Üçüncü geçiş, güvenlik gözden geçirmesi, yeni bir oturumda. Kodu konuşma geçmişi olmadan verin ve yalnızca üçüncü tarifin sorularını sorun. Kodu yazan bir model, aynı oturumda onu savunur.
  4. Birinci ve üçüncü geçiş için güçlü bir model kullanın; ikinci geçiş için daha ucuzu yeter. Şu anki tercihimiz sitenin yapay zekâ bölümünde ve sürüm numarasını buraya bilerek yazmıyoruz.

Kopyalamaya hazır şablon

--- 1. geçiş: şartname, kod yok ---
Bu uygulamayı yapmak istiyorum:
{uygulamanın sıradan dille sade anlatımı}

Hiç kod yazma. Bana ver:
1) Ekranların listesi ve her ekran için onunla ne yapıldığına dair bir cümle.
2) Verinin şekli: tablolar ya da koleksiyonlar, alanlar ve her satırın hangi kullanıcıya ait olduğu.
3) Erişim tablosu: her kullanıcı rolü için neyi gördüğü ve neyi değiştirdiği, her hücre tam bir cümle olarak.
4) Her boşluk için "sormam gereken sorular" adlı bir liste. Boşlukları doldurma.

--- 2. geçiş: belgeden üretim ---
Bu şartname belgesi ve onu kendim düzelttim:
{1. geçişin düzeltilmiş çıktısı}

Uygulama kodunu yalnızca bu belgeye dayanarak yaz, şu kurallarla:
- Belgede olmayan hiçbir şeyi kurma. Bir şey gerekiyor ve eksikse, onu kurmak yerine "belgede yok, sorulmalı" yazan bir yorum bırak.
- Her anahtarı ve parolayı yapılandırmadan oku ve kodda hiçbir gerçek değer yazma, örnek olarak bile.
- Verinin değiştiği her yerde kullanıcı iznini denetle; erişim tablosunun bir şey söylemediği yerde eksik denetimi yazma, bir yorum bırak.
- Her ağ isteğinin bir zaman aşımı ve bir hata durumu olsun ve hataları durum koduna göre ayır.
- Sonunda kullandığın her harici kütüphaneyi, her biri için tek cümlelik gerekçesiyle listele.

--- 3. geçiş: yeni bir oturumda gözden geçirme ---
Bu bir uygulamanın kodu. Onu sen yazmadın ve hakkında bir geçmişin yok.
{kod}

Yalnızca şu dört soruyu yanıtla, her birini satır numaralarıyla:
1) Kullanıcı girdisinin doğru olduğu nerede varsayılmış?
2) Kullanıcı izni denetlenmeden veri nerede değişiyor?
3) Kodda olup yapılandırmada olması gereken ne var?
4) Hangi ağ isteğinin zaman aşımı ya da hata durumu yok?

Bir soru için durum bulamazsan "durum bulunamadı" yaz. Başka bir şey ekleme ve düzeltilmiş kod yazma.

Çıktıya güvenmeden önce: Üçüncü geçişin çıktısı bir olgu listesi değil bir suçlama listesidir. Döndürdüğü her maddeyi o satır numarasında kendiniz açıp bakın; modeller hem durum atlar hem de durum uydurur. Ve hiçbir geçişin yakalamadığı bir şey: model, ürününüzde hangi verinin hassas olduğunu bilmez. Hangi tablonun kişisel bilgi taşıdığı ve hangisinin taşımadığı sizin kararınızdır ve o birinci geçiş belgesinde yazılı olmalıdır; yoksa üç geçiş de nötr varsayımlarla çalışır.

Bu işte yapay zeka

Bizim tavrımız şu: uygulama için modelleri kullanın ve ilk günden itibaren her kod parçasını kabul etmekten bir kişiyi sorumlu tutun. Aşağıdaki üç araç üç farklı iş için ve en önemli nokta, gözden geçirme aracının kodu yazan oturumun aynısı olmaması gerektiği.

Gerçekten işe yarayan araçlar

  • Claude Code Projenin kendisinde ikinci ve üçüncü geçiş için işe yarar; dosyaları görür ve satır numarası verebilir. Aynı Anthropic hesabı üzerinde çalışır ve İran desteklenen ülkeler listesinde yok.
  • Claude Şartname geçişine ve yeni bir oturumda kod gözden geçirmeye uygun. İran, Anthropic in desteklenen ülkeler listelerinin hiçbirinde yok. Bunu ölçerek değil, Anthropic in kendi sayfasında okuyarak biliyoruz.
  • Gemini İkinci geçiş ve ekranlar üzerindeki tekrarlı işler için uygun maliyetli. Google ın kendi sayfası Gemini web uygulamasının 230 dan fazla ülke ve bölgede çalıştığını söylüyor ve İran o listede yok.

Nerede geri teper

Bu dersin ana riski bir hata değil, bir alışkanlık: kimsenin okumadığı kodu kabul etmek. Üçüncü bölümdeki dört maddeden üçü bir kişinin gözden geçirmesiyle bulunur, hiçbiri otomatik bir testle bulunmaz. Bu yüzden önerdiğimiz kural bir kodlama kuralı değil bir ekip kuralı: her kod parçasının onu kabul etmiş ve yazmamış olsa bile açıklayabilen bir kişisi vardır.
Daha somut risk anahtar ve kaynağı Google ın kendi sayfası: bir Firebase anahtarı herkese açıktır ve kodda bulunması güvenlidir, ama aynı sayfa Gemini Developer API nin herkese açık bir anahtarın izin listesinde asla bulunmaması gerektiğini açıkça söylüyor. "Anahtarları uygulama ayar dosyasına koy" komutunu körü körüne uygulayan bir model bu ikisini aynı şey görür. Model çıktısı bir yere anahtar koyduğu her seferde kendinize sorun: bu anahtar neye erişim veriyor ve onu elinde tutan bir yabancı ne yapabilir.

Kaynaklar: Firebase: learn about using and managing API keys GitHub Docs: Copilot code referencing OWASP Mobile Top 10: M1 improper credential usage Anthropic: supported countries Google: where Gemini Apps are available

Bu tavsiyenin sınırı

Bir modelin baştan sona yazdığı bir mobil uygulama yayımlamadık ve birinci bölümdeki sayı bir mobil uygulamadan değil bizim bir web ürünümüzden geliyor. O oranı her projede geçerli bir yasa olarak değil bir orantı olarak okuyun. Üç şey daha bilerek yok: modelin yazdığı kodun ayırt edilebilir olduğuna dair herhangi bir iddia, bugünkü kodun ne kadarını modellerin yazdığına dair herhangi bir yüzde ve araçların çıktı kalitesine göre herhangi bir karşılaştırması. Üçü de ölçmeden söylenemez ve biz ölçmedik.

Kendi işimizden

Birinci bölümdeki sayıları bugün kendi eklentimiz üzerinde saydık ve üç komutla tekrarlanıyor. rgb-freelance klasörünün içinde: templates klasörünün PHP dosyaları birlikte 3.231 satır, includes klasörünün PHP dosyaları 11.597 satır ve CSS dosyası ile altı JavaScript dosyası 3.135 satır. Bu sayımın bize gösterdiği şu: bir ürün demosunda herkesin konuştuğu kısım, yazılmış kodun beşte birinden az. Ve aynı sonuca varmış, bu Öğrenme bölümünden bir koşut: tam da bu derslerin doğrulayıcısı olan rgbl_validate_lesson fonksiyonunun yirmi üç kuralı var ve biri, sınır bloğu ya da birinci elden kanıt bloğu olmayan her dersi reddediyor. O iki bloğu baştan tam bu yüzden zorunlu kıldık: bir üretilmiş metnin varsayılan olarak taşımadığı iki şey tam olarak onlar.

Gerçek devam soruları

Programlama bilmeden yapay zekâ ile uygulama yapılabilir mi?

Çalışan bir prototip, evet, ve bu defalarca yapıldı. Gerçek parayı ve gerçek insanların verisini tutan bir ürün, hayır; çünkü bu dersteki dört riskten üçü yalnızca kodu okuyarak bulunur. Orta yol, prototipi kendiniz kurmak ve gözden geçirme geçişi için kod okuyan birinden yardım almaktır.

Yapay zekâ ile üretilmiş kodun bir sahiplik sorunu var mı?

Durum iki yaygın anlatıdan da ölçülü ve araca ve ayarlarına bağlı. GitHub belgeleri, önerilerin herkese açık kodla karşılaştırıldığını ve bir eşleşmede kendiniz karar verebilesiniz diye lisansın adının kaydedildiğini, bu tür eşleşmelerin de tipik olarak önerilerin yüzde birinden azında görüldüğünü söylüyor. Başka her araç için kendi koşullarını okumanız gerekir ve biz burada hiçbirinin adına konuşmuyoruz.

Modellerin uygulamanın tamamını mı yoksa yalnızca parçalarını mı yazması iyi?

Sonrasında ne olacağına bağlı. Atılmak üzere olan bir şey için uygulamanın tamamını verin ve hiç okumayın; amaç hız. Kalıcı olması gereken bir şey için parça parça verin ve her parçayı bir sonrakinden önce kabul edin; çünkü sahipsiz kod tam da beş parça birlikte geldiğinde oluşur.