LLM ile Nasıl Programlanır
(crawshaw.io)- Son 1 yılda LLM'leri (büyük dil modelleri) kullanarak programlama deneyimini özetleyen bir yazı
- LLM'ler üretkenliği artırdı; bunları kullanmadan programlamaya geri dönmek zor
- Ağırlıklı olarak Go programlama ortamına odaklanarak sketch.dev adlı bir araç geliştiriliyor
Arka plan
- Yeni teknolojilere duyulan merakla başladı.
- LLM'lerin sorulara karmaşık yanıtlar üretebilmesi veya programlama kodu yazabilmesi büyüleyici bulundu
- İnternetin ilk ortaya çıktığı zamandaki heyecan ve olasılıklara benzer bir his verdi
- Aracın “çoğunlukla doğru” kod ürettiğinde sağladığı net fayda görüldü ve bunun pratikte kullanılmasına çalışıldı
Başlıca kullanım alanları
-
Otomatik tamamlama (Autocomplete)
- Sık tekrar eden kodlama işleri otomatik tamamlama ile halledilerek üretkenlik artırılıyor
- Özellikle FIM (Fill-In-the-Middle) modelleri günlük işlerde vazgeçilmez
-
Aramanın yerine geçme (Search)
- Belirli programlama sorularına (ör. CSS'te düğme saydamlığı ayarlama) arama motorlarından daha doğru yanıt verebiliyor
- LLM yanıtları hatalı olabilir, ancak bu sınırlamalar kabul edilerek kullanılıyor
-
Sohbet odaklı programlama (Chat-driven Programming)
- En zor ama en değerli alan.
- Yeni dosya oluşturma, kütüphane arama gibi ilk işleri üstleniyor.
- Sohbet tabanlı programlamanın amacı mevcut rahatsızlıkları azaltmak ve LLM yeteneklerini daha kullanıcı dostu hale getirmek
Sohbet tabanlı programlamanın özü
-
Neden sohbet kullanılır?
- Gün ilerledikçe enerji düştüğünde ilk taslağı sunmak için yararlı
- İlk taslağı görüp düzeltmek, sıfırdan yazmaktan daha verimli
-
LLM ile çalışma biçimi
- Açık ve kısa bir görev hedefi belirleme
- Kodu okuyup doğrulama ve düzeltme
- Problemleri hızlı çözmek için derleyici hatalarını kullanma
-
Etkili test yazımı
- LLM'ler test yazma konusunda hevesli ve daha kapsamlı bir test ortamı kurabiliyor
- Örnek tabanlı testlerin yanında fuzz test'e de genişletilebiliyor
Örnek: kesir örnekleyici
- Hedef: Go dilinde bir veri akışının çeyrekliklerini örnekleyen bir algoritma yazmak
- Süreç
- LLM ile ilk taslağı yazma
- Derleme hatalarını düzelterek kodu iyileştirme
- Test kodunu yeniden yazarak daha okunabilir bir yapı oluşturma
Yeni kod yapısının olasılıkları
-
Daha küçük paketler, daha fazla test
- Küçük paketler kod bağlamını daha net sunduğu için hem LLM'ler hem insanlar için daha yararlı
- Bağımsız test ve derlenebilirlik olasılığını artırıyor
-
Örnek: API wrapper'ı
- Büyük resmi kütüphaneler yerine yalnızca gereken kısmı uygulayan ince bir wrapper kullanılması öneriliyor
- Bakım ve öğrenme maliyetini azaltıyor
Gelecek yönü: sketch.dev
- LLM'ler için Go IDE'si
- LLM merkezli bir programlama ortamı sunuyor
- Otomatik test geri bildirimi, derleyici hatası düzeltme, Go modülü entegrasyonu gibi özellikleri destekliyor
- İnsan ile LLM arasındaki iş birliğini güçlendirerek daha üretken bir ortam sunuyor
1 yorum
Hacker News görüşleri
Yazar zaten dünya çapında bir yazılım mühendisi; Google'ın eski çalışanı ve Tailscale'in kurucu ortağı/CTO'su. LLM'lerin onu daha üretken hale getirmesi etkileyici.
LLM'ler bir işe başlamak için gereken enerjiyi azaltıyor.
LLM'leri kullanırken yalnızca iyi bildiğiniz alanlarda kullanmanız gerekir.
LLM'lerin yazılım geliştirme aracı olarak potansiyeli var.
Arama motoru kullanmaya benziyor.
LLM kullanma konusunda bir istek duymadığını hissediyor.
Programcı olmayan kişiler için LLM'ler çok yardımcı.
Basit uygulamalar yazmada LLM'ler faydalı.
Hobi olarak programlama yapan kişiler için LLM'ler yardımcı oluyor.
LLM'ler çoğunlukla otomatik tamamlama ve arama için kullanılıyor.