5 puan yazan GN⁺ 2026-01-24 | 1 yorum | WhatsApp'ta paylaş
  • AI kodlama aracı (cin) için "Kent Beck gibi kod yaz" persona istemi eklendiğinde kod kalitesinin iyileşip iyileşmediğini test eden deneyin sonucu, test stili ve değişken adlandırmasının iyileştiğini ancak mimari tasarımın değişmediğini gösteriyor
  • Rope veri yapısını uygulayan bir proje üzerinden persona istemlerinin ve tasarım kısıtlarının etkileri karşılaştırmalı olarak doğrulandı
  • Persona, mikro davranışları (test yaklaşımı, adlandırma) iyileştirirken; açık kısıtlar makro mimariyi (sınıf hiyerarşisi) belirliyor
  • 4 gruplu deney sonucunda, persona ile kısıtları birleştiren istem en iyi sonucu verdi
  • Rich Sutton’ın "The Bitter Lesson" metnine atıfla, insan uzmanlığını kodlamaktan ziyade hesaplama kaynaklarını kullanmanın daha etkili olduğunu düşündürüyor

Güncel AI kodlama araçlarının aşaması

  • Günümüzdeki AI kodlama araçları (cin), "atsız araba" aşamasında
  • Her teknolojik yenilik önce mevcut çerçevelerle anlaşılır, ardından köklü değişim fark edilir
    • atsız araba → otomobil
    • kablosuz telgraf → radyo
    • elektronik posta → mesajlaşma
  • Yeni teknolojilerin ikincil etkilerini, güçlendirici ve bastırıcı döngülerini anlamak için onları yeterince uzun süre kullanmak gerekir

Deney: Rope veri yapısı

  • Rope veri yapısı, çok uzun dizgelerde ortadaki karakterleri verimli şekilde silmek için kullanılan bir yapı
  • Basit yaklaşımda sağ taraftaki tüm karakterler kaydırılır ve bu işlem O(n) zaman alır
  • Rope yapısı, substring nesneleri ve concatenation nesneleri kullanarak silme işlemini sabit zamanda gerçekleştirir
    • Silme sırasında 3 nesne ayrılır
    • Arama O(işlem sayısı) olsa da dizge uzunluğundan küçüktür ve periyodik olarak sıkıştırılabilir

Deneyin ilerleyişi

Phase 1: Persona ("Code like Kent Beck")

  • "Code like Kent Beck" istemi eklendiğinde kod kalitesinin iyileşip iyileşmediği doğrulandı
  • Sonuç: Kod stilinde iyileşme görüldü
    • Değişken adları iyileşti
    • Test stratejisi, monolitik betikten modüler birim testlerine (TDD tarzı) dönüştü
  • Beklenmedik bulgu: Mimari değişmedi
    • Rope, standart bir ikili ağaç olarak uygulandı
    • Kent Beck’in kullandığı Composite pattern göz ardı edildi

Phase 2: Tasarım rehberi ekleme

  • Control grubu kodu fazla ayrıntılı olduğu için token sınırını aşıp sözdizimi hatası verdi
    • Token sınırını artırınca sorun çözüldü
    • "Daha fazla hesaplama" basit bir çözüm olabilir
  • İsteme açık kısıtlar eklendi
    • "Composite pattern kullan"
    • "Davranışı küçük ve uzmanlaşmış sınıflara ayır"
  • Sonuç: Beklenen tasarım uygulandı
    • Ayrı Substring ve Concatenation sınıfları
    • Tek bir sınıfa göre daha basit bir yapı
    • Hatta fiilen daha da basit bir tasarım çıktı: Null Object (EmptyString) ya da yerel dizge sarmalayıcısı olmadan, Substring 0..size ile ele alındı

Phase 3: 4 gruplu ayrık deney

  • Hangi müdahalenin etki yarattığını görmek için çapraz deney tasarlandı
    1. Control: standart asistan
    2. Kent Beck: yalnızca persona uygulandı
    3. Composite: yalnızca mimari kısıt uygulandı
    4. Combined: persona + kısıtlar

Deneyin sonucu

  • 2x2 matris etkisi doğrulandı
    1. Persona mikro davranışları belirler: "Kent Beck" istemi test stilini ve adlandırmayı tutarlı biçimde iyileştirdi, ancak yapısal kararları etkilemedi
    2. Kısıtlar makro mimariyi belirler: "Composite Pattern" istemi sınıf hiyerarşisini dayattı; persona olmadan da ayrıntılı bir tasarım üretti
    3. Birleşim en iyisi: Combined grubu hem doğru mimariyi (Composite) hem de doğru geliştirme alışkanlıklarını (TDD/Unit Tests) sağladı

The Bitter Lesson’a uygulama

  • Gizli hedef, cinin işlevsellik ile geleceği dengeleyecek şekilde daha iyi geliştirme yapmasını sağlamaktı
  • Denenen yöntemler: dikkatli istem yazımı, cinin önerdiği değişiklikleri özenle gözden geçirme, daha küçük/büyük adımlar vb.
  • Rich Sutton’ın "The Bitter Lesson" metnine atıf
    • 70 yıllık AI araştırmasının gösterdiği ders: insan uzmanlığını kodlamaktansa hesaplama kaynaklarını kullanmak daha iyi sonuç veriyor
    • Stili kodlamaya çalışmak, herkesin yaptığı aynı hataydı

Hesaplama kullanımına dayalı etkili geliştirme stili önerisi

  • Sayısız depodaki kötü kod stilini kopyalayan beceriksiz bir kodlama cini ile sınırlı kalmak gerekmiyor
  • Hesaplamayı kullanma yöntemi önerisi
    1. Büyük bir depo seç
    2. Bir milyon cin bir sonraki özelliği uygulasın; her biri düzenleme yöntemi ve miktarını farklı seçsin
    3. En düşük maliyetle (zaman, token, elektrik, para vb.) özelliği eklemeyi başaran cini seç
    4. Bunu çok sayıda cin, çok sayıda özellik ve çok sayıda depoda tekrarla
  • Bu, kodlamayı "israf" ediyor gibi görünse de aslında öyle değil
  • Jessica Kerr buna "Design Contest" adını veriyor

1 yorum

 
kallare 2026-01-25

Peki ya Jeff Dean gibi kod yazmasını söylersek...?!