paint-brush
Yeni Yardımcı Geliştiricim Biraz Berbatile@michaelsalim
1,193 okumalar
1,193 okumalar

Yeni Yardımcı Geliştiricim Biraz Berbat

ile Michael Salim6m2023/05/12
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

ChatGPT'yi kodlamak için kullanmak, altınızda bir Kıdemsiz geliştiriciye sahip olmak gibidir. Orada kodun %80'ini alabilir, ancak hemen hemen her satırı incelemeniz gerekir. Kullanıcı arayüzü ve etkileşim arasında kullanımı oldukça zahmetli bir iş. En çok tekrarladığım başarı 3 kez oldu.
featured image - Yeni Yardımcı Geliştiricim Biraz Berbat
Michael Salim HackerNoon profile picture
0-item

Bu geliştirici ChatGPT ve onunla bir aşk-nefret ilişkim var.


Günümüzde yapay zeka hakkında çok fazla makale var, bu yüzden bunu kısa tutmaya çalışacağım.

TL;DR:

ChatGPT'yi kodlamak için kullanmak, altınızda bir Kıdemsiz geliştiriciye sahip olmak gibidir. Kodun %80'ini oradan alabilirler, ancak hemen hemen her satırı incelemeniz gerekir.

Senaryo

Kod yazmaya yardımcı olması için ChatGPT'yi kullanmanın birçok yolu olduğunu itiraf etmeliyim. Muhtemelen bazılarında daha iyi, bazılarında ise daha kötü.


Örneğin, birçok insanın bunu arama motoru olarak kullandığını duydum. Ben kişisel olarak bunu biraz tartışmalı buluyorum. Arama yoluyla belgeleri ve hatta yanıtları bulmak o kadar da zor değil. Tüyleri azaltmaya yardımcı olan Kagi kullanıyorum.


Aksine, ChatGPT'yi kullanarak cevabın doğru olup olmadığını nasıl bileceksiniz?


Yelpazenin diğer tarafında, bunu yüceltilmiş bir otomatik tamamlama olarak kullanan pek çok insan var. Github Copilot'a benzer bir şey. Bunun faydalı olduğunu görebiliyorum.


Seçtiğim senaryo şu:

Kodumu chakra-ui'den tailwindcss'e dönüştürüyorum.


Neden?


  • Her iki teknoloji için de çok sayıda kaynak var, özellikle Tailwind (ve tabii ki HTML). Çalışmak için bol miktarda veriye sahip olmalıdır.


  • Bunu yapmak için bir program oluşturmak oldukça mümkündür. Çok sayıda uç durum olsa da, işlevselliğin kendisi basittir. Chakra-ui arka rüzgardan ilham almıştır, dolayısıyla kolayca aktarılabilecek birçok şeyi miras alır.


  • Bu yapmam gereken bir şey. Yani bu, başka birisinin karşılaşabileceği gerçek bir kullanım durumudur.

Hızlı Mühendislik Bir Zahmettir

Sahaya baktığımızda, iyi veya vasat sonuçlar almak arasındaki farkın iyi yönlendirmek olduğu görülüyordu. Bu konuda en iyisi değilim ama biraz araştırma yaptım ve elimden gelenin en iyisini yapmaya çalıştım.


İyi bir duruma getirmek için birden fazla bilgi istemi kullandığımdan emin oldum. Yalnızca kodumu dönüştürmesi gerektiğini biliyormuş gibi göründüğünde kodumu yapıştırmak.


Açıkçası bu kısım geliştirilebilir. Kullanıcı arayüzü ve etkileşim arasında kullanımı oldukça zahmetli:


  • İstenilen duruma ulaşması biraz zaman alabilir

    Ne yazacağımı düşünmek, sonra onun cevap vermesini ve yazmayı bitirmesini beklemek arasında bu işi yapmak oldukça sinir bozucu oluyor.


  • Bu tutarsız

    Her zaman aynı istemleri yeniden kullanamamanızın bir faydası olmaz. ChatGPT'nin bazı rastgelelikleri var, bu yüzden her seferinde komut isteminde ince ayar yapmak zorunda kaldım. Daha önce işe yarayan bir istemi kopyalayıp yapıştırmak işe yaramadı.


  • İstenilen durumdan çıkmak çok kolaydır

    Tek seferlik bir şeyse yukarıdakiler iyidir. Ancak yapay zekanın ilk kod dönüşümünden sonra her şeyi unutmasının çok kolay olduğunu gördüm. En çok tekrarladığım başarı sanırım 3 kez oldu. Bunun ötesinde, kodumun ne yaptığını açıklamak gibi tamamen ilgisiz şeyler döndürdü.


  • Jeton oldukça sınırlayıcı bir faktördür

    Token limiti nedeniyle üretebileceği kod miktarı sınırlıdır. Tokenleri nasıl hesapladığını görmek için tokenizer'ı buradan kontrol edebilirsiniz. Kod açısından pek uygun değil. Aşağıda çıktılarından birinin bir örneği verilmiştir. Her farklı renk bir jetonu temsil eder.


    Tokenleştirilmiş kod

    Bu nedenle dönüşümü birden fazla adıma bölmem gerekiyor. Aksi takdirde nesil ortada duracaktır. Devam etmesini söylemek çoğu zaman işe yaramaz. Yukarıdaki noktalarla birleştiğinde, bu hızla yapılması gereken bir angarya haline gelir.


    ChatGPT, kod oluşturma işlemini tamamlaması istendiğinde hata veriyor


Sonuç olarak, İngilizce yazmak istemediğim hissine kapılıyorum. Zaten bir şey yazmam gerekiyorsa, doğrudan çalışan kodu yazmayı tercih ederim.


Hızlı mühendisliğin gelecekte sahip olunması gereken önemli bir beceri olduğunu görebiliyorum. Nasıl arama yapılacağını bilmenin günümüz dünyasında önemli bir beceri olduğu gibi.

Çıktı Çok Kötü Değil

Yaptığı tüm çalışmalara rağmen ChatGPT oldukça etkileyici kodlar üretti. İşte orijinal ile sonuç arasında bazı karşılaştırmalar:


Gördüğünüz gibi işini oldukça iyi yaptı.


İyi

  • Yapı oldukça iyi bir şekilde aktarıldı

    Detaylar dışında HTML yapısı orijinaline oldukça benzer. Aralıklar kapalı ancak genel düzen aynı kalıyor.


  • Metin içeriği değişmiyor

    İçeriğin kendisi iyi işlendi. Hepsini tekrar kontrol etmem gerekse de hiçbiri değişmedi. Tek istisna JS'den türetilenlerdir.


Kötü

  • Rastgele sınıfları vardı

    Hiçbir şey yapmayan birçok sınıf var. Bazıları değiştirildi, bazıları ise geçersiz arka rüzgar sınıflarıydı.


  • Çok sayıda küçük fark var

    Kullanıcı arayüzü sanki bir kitaplık yeni sürüme geçirilmiş gibi görünüyordu ve birisi kodu taşımayı unutmuştu. Bu durumda bunun nedeni ChatGPT'nin sınıfların değerlerini rastgele değiştirmesidir. Örneğin, 3'ten 4'e kadar bir padding veya font-weight kalından normale değiştirilmesi. Detayların hepsi yanlıştı.


  • Yarısında çalışmıyor

    Yukarıdaki ekran görüntüleri doğrudan karşılaştırabileceğim görüntülerdi. Gerçekte, sonuçlar ya eksikti ya da o kadar yanlıştı ki, işe yaraması için birçok değişiklik yapmak zorunda kaldım. Ve bu yüzden yan yana kıyaslayamam. Kod çalışmadığından karşılaştırabileceğim hiçbir şey yok.

Kod Yazmak Yerine Halkla İlişkileri İncelemek Gibi Bir Şey

Bu konuda harika olan şey, üzerinde çalışabileceğim bir şeyin olması. Neyse ki, işin kendisi çok basit. Hataları tespit etmek kolaydır. Chakra-ui ve arka rüzgardan gelen sınıflar arasındaki eşleme neredeyse bire birdir. Bu sadece sıkıcı çünkü sözdizimi farklı.


Ancak bu yaklaşım daha çok PR'leri incelemeye benzer. Her şeyin doğru yapıldığından emin olmak için kodun tamamını taramam gerekiyordu.


İlk bakışta tamam görünüyor. Ancak onunla çalışıp yakından dikkat ettiğinizde birçok sorunla karşılaşırsınız. Tüm kusurları keşfettiğimde beni biraz hayal kırıklığına uğratan bu sahte güvenlik duygusunu getiriyor.


Bunun büyük bir kısmı diğer kod tabanlarından enterpolasyonlu koddur. Korkunç görünmüyor ama istediğim bu değil.


Hatta istikameti h2'den h1'e değiştirmek gibi bazı endişe verici değişiklikler bile var. Bunu yalnızca içerik nedeniyle yaptığını varsayabilirim.


Sanki kıdemsiz bir geliştirici bir şeyi tokatlamış ve kodunu test etmemiş gibi hissettim . Ve şimdi onlara sorunu kendilerinin düzeltmelerini söyleyemeden gözden geçirip düzeltmem gerekiyor.


Ve bu çok kötü. Zaten iş yerinde PR'leri gözden geçirme fikrim var. Şimdi bunu kendi projelerim için de mi yapmam gerekiyor? Hayır, teşekkürler!

Umutlu Gelecek

Henüz bu noktaya yakın bir yerde olduğunu düşünmesem de yapay zekanın gelecekte gelişim için bir noktada faydalı olacağını düşünüyorum. Cevabın Yüksek Lisans olup olmadığını kim bilebilir?


Token limitleri sürekli artıyor

Bu makaleyi bitirmeyi yeterince erteledim. Bu süre zarfında token limitinin artırılacağına dair birçok duyuru yapıldı. Halka açık mı, ücretli mi yoksa başka bir şey mi olduğundan emin olmasam da, bunu görmek harika.


UX'i yönlendirmek zamanla kolaylaşacaktır

ChatGPT eklentileri ve daha iyi entegrasyon sayesinde durum ve tutarlılığın hatırlanması gibi konular iyileştirilmelidir. Umuyoruz ki bu, ChatGPT'den faydalı çıktılar almak için gereken çabayı azaltacaktır.


Bu arada taşıma işleminin diğer yarısını manuel olarak tamamladım. Daha mı hızlıydı? Kim bilir? Aynı şeyi hissettim. Ancak manuel olarak yazmak çok daha iyi hissettirdi.