- Yapay zekanın kod yazma ve düzenleme konusunda yardımcı olduğu için teknik borcun (tech debt) daha az önemli hale geleceğine dair bir inanç var
- Ancak gerçekte yapay zeka, teknik borcun maliyetini daha da artırıyor
- Düşük borçlu kod tabanlarında yapay zeka araçlarının hız kazanımı en üst düzeye çıkarken, yüksek borçlu eski kod tabanlarında bu araçların verimliliği keskin biçimde düşüyor
- Sonuç olarak, teknik borcu fazla olan kod tabanları yapay zeka araçlarından yararlanmakta daha büyük zorluk yaşıyor
Karmaşık koda karşı kırılgan üretken yapay zeka
- Cursor veya Aider gibi yapay zeka kodlama araçları, kodun karmaşıklığına son derece duyarlı tepki veriyor
- Mevcut kalıpların veya arayüzlerin iyi tanımlandığı kodlarda hız artışı büyük olurken, karmaşık kontrol akışı ve çok sayıda bağımlılık içeren kodda geçerli yanıt üretmekte zorlanıyorlar
- Karmaşık kod tabanları yalnızca yapay zeka modelleri için değil, geliştiricilerin isteklerini net biçimde kurgulaması açısından da zorluk yaratıyor
- Bu yüzden birçok geliştirici, yapay zeka araçları ‘üretim düzeyi’ karmaşıklığı işleyebilecek hale gelene kadar bekleme eğiliminde oluyor
Yapay zeka araçlarını doğru şekilde kullanmak
- Eski kod tabanlarında yapay zeka araçlarını zorla kullanmaya çalışmak yerine, insan uzmanların refactoring yaparak yapay zekanın sorunsuz çalışabileceği bir ortam hazırlaması önem taşıyor
- Doğrudan refactoring riskliyse, Strangler Fig deseni gibi yöntemlerle yeni modüller geliştirip bunun üzerinden yapay zeka araçlarının avantajlarından hemen yararlanmak mümkün
- Böylece geliştirme ekipleri daha yüksek düzeyli soyutlamalara odaklanabilir ve kodun ayrıntılı uygulamasından çok mimari tasarıma ağırlık verebilir
Yapay zeka dostu yaklaşım
- Yapay zeka araçlarının düzgün çalışabilmesi için sistemi modüler hale getirmek ve modüller arası etkileşimi açık arayüzlerle tanımlamak önemli
- Temel işlevleri ve veri akışını doğal dille açıklayabilecek bir modül yapısını korumak yararlı bir ölçüt
- Gauge Tach gibi araçlarla görünürlük ve mimari kuralları tanımlarsanız, daha modüler bir sisteme evrilebilirsiniz
Kalite hızı belirler
- Yüksek kaliteli bir kod tabanını korumak artık her zamankinden daha önemli
- Modüler bir mimariye yatırım yapan ekipler, yapay zeka araçlarından en yüksek verimi alabilir; hızlı özellik geliştirme ile yüksek kaliteli yazılımı aynı anda inşa edebilir
4 yorum
Yazılım şişkinliği kaçınılmaz bir kader gibi görünüyor
Sanki bir yerlerde görüp etkilenmiş gibi, yöneticiler ya da bu tür insanlar AI her şeyi çözecek diye düşünüyor. ChatGPT fazla hayal ürünü beklenti yarattı. Hâlâ ilkokul öğrencisi seviyesinde olduğunu vurgulamak gerekiyor gibi geliyor bana. En fazla yardımcı bir araç olarak çok az destek verdiğini anlatmak gerek gibi.. Ayrıca yukarıdaki duruma katılıyorum; iş karmaşıklaşınca yanlış anlıyor. Projenin genel akışını kavrayamıyor gibi görünüyor.
garbage in, garbage outkaçınılmaz görünüyor.Hacker News görüşü
Genç ve yüksek kaliteli kod tabanına sahip şirketler, üretken yapay zeka araçlarından en büyük faydayı görüyor. Buna karşılık, karmaşık legacy kod tabanına sahip şirketler bunları benimsemekte zorlanıyor. Kişisel projelerde LLM kullanırken de benzer bir deneyim yaşadım. Kod tabanı biraz bile kendine özgü hale geldiğinde model hata yapıyor ve işler daha da zorlaşıyor
LLM'ler kolay işleri daha da kolaylaştırıyor, ancak zor işlerde hata yapıyor. Bu fark kapanmıyor, aksine büyüyor
'Yüksek borçlu' ortamlarda, ince kontrol akışı, uzun vadeli bağımlılıklar ve beklenmedik kalıplar nedeniyle faydalı yanıtlar üretmekte zorlanıyor. Çoğu durumda bu bir 'teknik borç' değil, kod tabanının olgunluğunu gösteriyor
Üretken yapay zeka araçlarını legacy kod tabanlarındaki karmaşık sorunları çözmeye zorlamak yerine, insan uzmanlar legacy kodu refactor ederek üretken yapay zekanın sorunsuz çalışabilmesini sağlamalı
Yapay zekanın teknik borcu daha az önemli hale getireceğine dair bir inanç oluşuyor. Ancak yapay zeka tarafından üretilen kod düzensiz, tutarsız ve belirli prompt'lara ve bağlam girdilerine son derece duyarlı
Yapay zeka tarafından üretilen kod gerçekten değerli olabilir, ancak bu makaledeki çerçeve gerçekçi değil
Makine öğrenmesi, teknik borcun yüksek faizli kredi kartı gibi. Kod üretimi kolaylaştıkça daha fazla kod üretiliyor ve bakım maliyeti artıyor
LLM'lerin kod üretme yeteneği etkileyici, ancak amaç kod miktarını azaltmak olmalı
Yapay zeka basit işleri üstlenip daha fazla kod üretiyor, ancak tespit edilmesi zor hatalar da üretiyor. Bu araçlarla daha hızlı ilerlemek mümkün, ama işi başka bir şekilde yürütmek gerekiyor
Yapay zeka kodu anlama ve değiştirmede yardımcı olabilir, ancak körü körüne kopyala-yapıştır iyi değil. Kod incelemesi, açıklama isteme ve yinelemeli çalışma hâlâ gerekli