Augmented Coding: Vibe’ın Ötesinde
(stdy.blog)- Kent Beck kısa süre önce Augmented Coding: Beyond the Vibes başlıklı bir yazı yayımladı
- Bu, Kent Beck’in AI yardımıyla yüksek performanslı ve prodüksiyon seviyesine yakın bir B+ Tree kütüphanesini (BPlusTree3) Rust ve Python ile yazma hikayesi
- Özellikle faydalı ve içgörü verici bulduğu 3 noktayı özetleyip çevirerek tanıtıyor
Augmented coding, vibe coding’den nasıl farklı?
- Vibe coding’de koda odaklanılmaz, yalnızca sistemin davranışına odaklanılır. Hata varsa “böyle bir hata var” denir ve düzeltilmesi beklenir
- Augmented coding’de koda dikkat edilir. Kodun karmaşıklığı, testler ve test kapsamı önemlidir.
- Augmented coding, geleneksel kodlamada olduğu gibi "Tidy Code That Works", yani “çalışan, düzenli kod”u önemser. Sadece eskisi kadar fazla yazı yazmak gerekmez
AI’nin yanlış yolda olduğunu gösteren 3 işaret
Augmented coding’de AI’nin ara çıktıları gözlemlenmeli ve aşağıdaki 3 işaret ortaya çıkarsa müdahale edilmesi önemlidir
- Benzer davranışları tekrar eder (sonsuz döngü vb.)
- Benden istenmeyen bir özelliği uygular. Mantıklı bir sonraki adım olsa bile.
- Testleri silmek veya devre dışı bırakmak gibi, AI’nin hile yaptığını düşündüren diğer tüm işaretler.
TDD’ye yardımcı olan sistem prompt’u
- Orijinal yazının gövdesini kopyalamak biraz zahmetli olduğu için gist içine koymuş
- Sondaki Rust sözdizimini kendi programlama dilinize/çerçevenize göre değiştirirseniz, her yerde gayet iyi yeniden kullanılabilecek bir prompt gibi görünüyor.
Son olarak
Sevdiğimiz bu mesleğin ortadan kalkacağı ve kodla uğraşmanın keyfinin yok olacağı yönünde çok fazla korku olduğunu biliyorum. Endişelenmek de doğal. Evet, “cin” ile birlikte programlamak kesinlikle bir değişim getiriyor, ama bu hâlâ programlama. Hatta bazı açılardan çok daha iyi bir programlama deneyimi. Saat başına verdiğim kararların sayısına ve kalitesine baktığımda, sıkıcı ve kalıplaşmış kararlar azalırken daha önemli programlama kararları arttı.
“Yak shaving” denen, özle doğrudan ilgisi olmayan türlü ufak tefek işlerin çoğu ortadan kalkıyor. Ben “cin”e coverage tester’ı çalıştırmasını ve kodun güvenilirliğini artıracak testler önermesini söyledim. “Cin” olmasaydı bu oldukça göz korkutucu bir iş olurdu. Önce testeri çalıştırmak için hangi kütüphanenin hangi sürümünün gerektiğini bile araştırmam gerekirdi. Muhtemelen iki saat kadar uğraşıp sonra vazgeçerdim. Bunun yerine sadece “cin”e söylemem yeterli oluyor ve “cin” ayrıntıları benim yerime hallediyor.
5 yorum
Her zaman
plan.mdiçindeki talimatları izleyin. Bengodediğimde,plan.mdiçinde bir sonraki işaretlenmemiş testi bulun, ardından o testi uygulayın ve bu testin geçmesi için gereken en az kodu yazın.Rol ve uzmanlık
Siz, Kent Beck’in test güdümlü geliştirme (TDD) ve Tidy First ilkelerini izleyen kıdemli bir yazılım mühendisiniz. Amacınız, geliştirmeyi bu metodolojileri eksiksiz biçimde izleyerek yönlendirmektir.
Temel geliştirme ilkeleri
TDD metodolojisi rehberi
shouldSumTwoPositiveNumbers)TIDY FIRST yaklaşımı
Commit disiplini
Kod kalitesi standartları
Refactor yönergeleri
Örnek iş akışı
Yeni bir özelliğe yaklaşırken:
Bu süreci tam olarak izleyin ve hızlı uygulama yerine her zaman temiz, iyi test edilmiş kodu önceliklendirin.
Her zaman aynı anda yalnızca tek bir test yazın, onu çalıştırın ve ardından yapıyı iyileştirin. Her seferinde tüm testleri çalıştırın (uzun süren testler hariç).
Rust ile ilgili
Rust’ta komut tarzı yerine fonksiyonel programlama tarzını tercih edin. Mümkün olduğunda
if letveyamatchile desen eşleme yerineOptionveResultbirleştiricilerini (map,and_then,unwrap_orvb.) kullanın.Ağızla kodlamadan sonra umarım beyin dalgasıyla kodlama da çıkar.
vibe coding ❌️
virtual coding ⭕️
Metaverse'ten sonrası hmm... ağızdan kodlama mı?
Sırada artık metaverse kodlama var gibi görünüyor.