Kod Yazmayı Bıraktım. Uygulamam 3 Günde Yayına Çıktı.
Üç ay önce, full-stack bir SaaS paneli inşa ettim. Kimlik doğrulama (auth), bir veritabanı, bir REST API ve bir kullanıcı arayüzü (UI) vardı.
Yaklaşık 200 satır kod yazdım. Gerisini yapay zeka yaptı. Kodu yapay zeka yazdı, inceledi ve düzeltti.
Uygulama yayında. Kullanıcılar bunun için ödeme yapıyor. Anlamadığım hataları düzeltmek için gece saat 2'de uykusuz kalmıyorum.
Bu bir övünme değil. Bir uyarıdır.
Geliştiricinin rolü hızla değişiyor. Kazanan geliştiriciler bu değişime karşı savaşmayacak; ona liderlik edecekler.
Yapay zekayı bir otomatik tamamlama aracı olarak görmeyi bırakın. Bu eski yöntem.
AI-native geliştirme yeni bir zihinsel modeldir. Yapay zekayı daha hızlı yazmak için kullanmazsınız. Siz mimari ve karar verme süreçlerini yönetirken, yapay zekayı implementasyonu halletmek için kullanırsınız.
Değişim şu şekilde görünüyor:
- Eski model: Siz kod yazarsınız. Yapay zeka daha hızlı yazmanıza yardımcı olur.
- Yeni model: Siz "ne" ve "neden" sorularını tanımlarsınız. Yapay zeka "nasıl" kısmını halleder. Siz ise doğrular ve yönlendirirsiniz.
Uygulamamı oluşturmak için tam olarak bu iş akışını kullandım:
- Next.js ve Prisma gibi standart araçları kullanarak projenin iskeletini oluşturun (scaffold).
- Veri modelini sade bir dille tanımlayın.
- Şemayı oluşturması için yapay zekaya bırakın.
- Server action'ları ve mantığı (logic) oluşturmak için detaylı istemler (prompts) kullanın.
Fonksiyonları ben yazmadım. Onları inceledim. Test ettim. Hata mesajlarını düzenledim.
Yeni iş tam olarak budur.
Eğer kodu yapay zeka yazıyorsa, değeriniz meta-becerilerinizden gelir. Yapay zeka kalıplar konusunda iyidir; karar verme konusunda ise kötüdür.
Yapay zeka şunlara karar veremez:
- Bir server action'a mı yoksa bir API route'una mı ihtiyacınız olduğuna.
- State'inizin nerede durması gerektiğine.
- Bir monorepo kullanıp kullanmamanız gerektiğine.
Bu kararlar bağlam (context) gerektirir. Yapay zekanın bağlamı yoktur; sizde ise vardır.
Şu an bir junior ile senior geliştirici arasındaki fark, istem (prompt) hassasiyetidir.
- Zayıf istem: "Bir rate limiter yaz."
- Güçlü istem: "Next.js API route'u için Redis tabanlı bir rate limiter yaz. IP başına dakikada 10 istek ile sınırla. Sınır aşıldığında 429 hatası döndür. Adminleri atla. Olayları Prisma'ya kaydet."
İkinci istem, anında üretime hazır (production-ready) kod sağlar.
Ayrıca sessiz hatalara (silent failures) karşı da dikkatli olmalısınız. Yapay zeka kodu genellikle doğru görünür ancak içinde ince hatalar barındırabilir. Yapay zeka çıktısına, bir junior geliştiriciden gelen pull request gibi davranın. Şüpheyle inceleyin.
Daha az kod yazmak için optimize olmayın. Kodun etrafındaki beceriler için optimize olun.
Geliştirici A her şeyi elle yazar ve yavaş kalır. Geliştirici B detaylar için yapay zekayı kullanır ve vaktini sistem tasarımına ayırır.
Developer B yeni standart.
Bu hafta şunu deneyin:
- Herhangi bir koda dokunmadan önce bir özellik için tam bir şartname yazın.
- Bu şartnameyi prompt olarak kullanın.
- Çıktıyı, kıdemli bir mühendisin bir junior'ı incelemesi gibi gözden geçirin.
Amaç geliştirici olmayı bırakmak değil, daha iyi bir geliştirici olmaktır.
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi