- Geliştiricilerin yapay zekayı kullanırken izlediği iki ana kalıp var
- Bootstraper:
- Bolt, v0, screenshot-to-code AI gibi araçları kullanarak hızlıca ilk prototipi oluşturur.
- Bir tasarımı veya fikri başlangıç noktası olarak alıp yapay zekayla ilk kod tabanını üretir ve birkaç saat ya da birkaç gün içinde çalışan bir prototip geliştirir
- İteratör:
- Cursor, Cline, Copilot, WindSurf gibi araçları günlük geliştirme sürecinde kullanarak kod tamamlama, karmaşık refaktörler, test ve dokümantasyon üretimi yapar
Usta geliştiricilerle yeni başlayan geliştiriciler arasında yapay zeka kullanımı farkı
- Usta geliştiriciler: Yapay zekanın önerdiği kodu sürekli refaktör eder, edge case'leri ele alır, tip tanımlarını güçlendirir ve mimari kararları gözden geçirir
- Yeni başlayan geliştiriciler: Yapay zeka çıktısını olduğu gibi kabul etme eğilimindedir; bu da gerçek ortamda sorun çıkarabilecek, "iskambil kağıdından yapılmış ev" benzeri kod üretme riskini doğurur
Yapay zeka araçlarının paradoksu: bilgi paradoksu
- Usta geliştiriciler: Zaten bildikleri işleri yapay zeka ile hızlandırır
- Yeni başlayan geliştiriciler: Ne yapmaları gerektiğini öğrenmek için yapay zekayı kullanmaya çalışır
- Sonuç: Yapay zekadan alınan verim, yetkinlik seviyesine göre büyük ölçüde değişir
Uzman olmayanların yapay zeka kodlama araçlarını kullanırken yaşadığı %70 sorunu
- İlk ilerleme: Yapay zeka araçlarıyla istenen özelliğin %70'i hızlıca hayata geçirilebilir
- Kalan %30: Küçük bir hatayı düzeltmeye çalışırken yeni sorunlar çıkar ve bunları çözmeye çalışırken daha da fazla problem doğuran bir kısır döngüye girilebilir
Yapay zeka araçlarını etkili kullanmak için stratejiler
- Yapay zeka taslağı kalıbı: Yapay zekayla temel implementasyonu üretip ardından manuel olarak inceleyip refaktör etmek
- Yapay zekayı öğrenme aracı olarak kullanmak: Sürekli diyalog yoluyla yapay zekanın ürettiği kodu anlamak, temel programlama kavramlarını birlikte öğrenmek ve bilgiyi aşamalı olarak biriktirmek
- Yapay zekanın sınırlarını kabul etmek: Yapay zeka araçları prototip geliştirme, öğrenmeye destek ve fikir doğrulama için faydalıdır; ancak üretime hazır ve bakımı yapılabilir yazılım geliştirmek için hâlâ gerçek mühendislik bilgisi gerekir
Ajanik yazılım mühendisliğinin yükselişi
- Ajanik sistemler: Yalnızca komutlara yanıt vermenin ötesine geçip planlayabilen, uygulayabilen ve yineleme yapabilen sistemlere dönüşüyor
- Gelecek görünümü: Yapay zeka, geliştiricilerin yerini almak yerine giderek daha proaktif bir işbirlikçi olarak, insan yönlendirmesine ve uzmanlığına saygı duyarak sorunları inisiyatif alıp çözen bir yöne ilerliyor
- Yapay zeka, zaten bilinen kalıpları uygulamada, fikirleri hızla prototiplemede ve farklı yaklaşımları keşfetmede şimdiden yararlı
- Tekrarlayan ve rutin kodlama işlerini otomatikleştirerek daha ilginç problemlere odaklanmayı mümkün kılıyor
Yapay zeka araçlarını kullanırken dikkat edilmesi gerekenler
- Kullanıcı deneyiminin önemi: Yapay zekayla hızlıca demo hazırlanabilir; ancak gerçek kullanıcıların karşılaşabileceği hata mesajları, edge case'ler ve UI durumları özenle ele alınmazsa bu kullanıcıya rahatsızlık verebilir
- Zanaatkârlığın geri dönüşü:
- Yapay zeka yazılım geliştirmeyi hızlandırdı, ancak gerçek tüketici kalitesinde deneyim üretme sanatını kaybetme riski de var.
- Yapay zeka araçları rutin kodlama işlerini üstlenerek geliştiricilerin önemli ayrıntılara odaklanmasına yardımcı olabilir.
Sonuç
- Yapay zekanın rolü:
- Yapay zeka daha fazla kodu daha hızlı yazmak için değil, daha iyi yazılım inşa etmeye yardımcı olmak içindir
- Yapay zeka yazılım kalitesini dramatik biçimde artırmaz.
- Yazılım geliştirmenin zor kısımları hâlâ insan yargısı gerektirir.
- Yapay zeka, daha iyi çözümler bulmak için hızlı keşif yapılmasını mümkün kılar; ancak iyi yazılım pratiklerinin yerini alamaz.
- İnsanın sorumluluğu: Yapay zekayı akıllıca kullanıp mühendislik ilkelerini korumak ve yazılım kalitesini artırmak hâlâ insanların görevidir
12 yorum
Teknolojiden yararlanmak iyi ama düşünmeyi bile ona devreden çok fazla insan var; özellikle eğitim gibi ortamlara çıktığımda bunu daha da çok görüyorum, bu yüzden endişeleniyorum. Açıkçası ben böyle insanlarla çalışmak istemem.
IDE'lerin geliştiricileri bozduğu tartışmasına benziyor olabilir..
Müşterinin ürettiği AI kodunu düzeltmekten yoruldum
Karar vermeye AI başladığında, ortada bir çözüm kalmamış gibi görünüyor
AI’ye geri bildirim verince iyileşiyor gibi görünür ama… bir noktada aniden bozulur. O anı fark etmenin bir yöntemi gerekir. Ve o an geldiğinde AI’yi bırakıp bırakmamaya ya da baştan başlayıp başlamamaya karar vermek gerekir.
production-ready(metinde üretime hazır) ifadesini nasıl çevirirsek daha akıcı olur?gerçek hizmette kullanıma hazır seviye ürün düzeyi
Yayın için hazır!
Ben genelde bunu
release edilebilirveyarelease’e hazırolarak çevirmeyi tercih ediyorum."Yayımlanabilir" kulağa hoş geliyor!
"(gerçek kullanım veya müşteri kullanımı için) dağıtıma hazır" ifadesi nasıl olur?
Peki ya sahada doğrulanmış olanlar?
Gerçek dünya doğrulaması için genelde
battle testedifadesi kullanılıyor gibi görünüyor.Hacker News görüşü
AI, geçmişteki birçok araç gibi programlamanın bir kısmının yerini almaya çalıştı. Ancak özdeki iş hâlâ insan zihni gerektiriyor
AI, ekibin hevesli junior geliştiricisi gibi
AI araçları kullanılarak yeni araçlar hızlıca geliştirilebildi
Junior geliştiriciler için AI iki ucu keskin bir kılıç
"Güven ama doğrula" kalıbı önemli
AI kodu hızlı yazabiliyor ama öğrenme sürecini hızlandırmıyor
Copilot karmaşık işlerde başarısız oluyor
GenAI, gereksinimleri iyi bilinen çözümlerde derinlikli sonuçlar üretebilir
AI'nin yaptığı işi doğrulamak önemli
AI ile üretkenliğin büyük ölçüde arttığını söyleyen insanlarla gerçekte karşılaşmak zor