ChatGPT'i kodları daha hızlı düzeltmeme yardımcı olması için kullanıyorum, ancak bunun maliyeti nedir?

resim5.jpg

Geçtiğimiz hafta, size ChatGPT'nin belirli bir, elbette biraz basit işlevsel gereksinimi karşılayan bir WordPress eklentisi oluşturabileceğini göstermiştim. Şimdi, ChatGPT'yi test etmeye devam ederek, bana biraz teknik rehberlik yapmama yardımcı olabilecek bir araç olup olamayacağını anlamaya çalışıyorum.

Ayrıca: ChatGPT'den WordPress eklentisi yazmasını istedim. Bunun için sadece 5 dakikadan az bir süre gerekti

Önceki ChatGPT keşiflerinde olduğu gibi, yazılarım düz veya kalın şekilde ifade edilecek ve AI'nın yanıtları italik olacak. İlk olarak size soruları ve cevapları göstereceğim, ardından sonuçları tartışacağım.

Programlama dili değişikliklerini anlama

Sunucu sağlayıcım, tüm sitelerini çok eski olan PHP 7.4'ten PHP 8'e taşıyor. PHP, WordPress ve birçok başka web yönetim aracının güvendiği bir web programlama dilidir. PHP 8 uyumluluğu olmayan birkaç eklentiye sahiptim ve kodlarının hangi bölümlerini bulup düzeltmem gerektiğini belirlemek istedim.

Genellikle, PHP.net sitesine baktım, bir sürü Google araması yaptım ve StackExchange yorumlarına göz attım, böylece yapmam gereken programlama çalışmasını bulabildim. Ancak bu biraz karmaşık ve zaman alıcı bir süreç. Bunun yerine, ChatGPT'ye detaylı ve doğrudan bir soru sordum ve çok kullanışlı bir cevap aldım, buna dahil olarak örnek kod blokları da.

PHP extract işlevinin bir dizi geçirilmediğinde ölümcül bir hata verdiği konusunda sorun yaşıyorum. PHP 7.4'te bu hatayı almadım, ancak PHP 8'de alıyorum gibi görünüyor. PHP 8 için extract değişti mi?

PHP 8'de, extract() fonksiyonun davranışı daha sıkı hale getirilmiştir. Önceki PHP sürümlerinde, extract() fonksiyonu bir dizi geçirilmediğinde basitçe yanlış dönerdi, ancak PHP 8'de, bir dizi geçirilmezse programı durduracak bir hata fırlatacaktır. Bu değişiklik, fonksiyonun sağlamlığını ve beklenmedik girişlerden kaynaklanabilecek olası hataları önlemeye yardımcı olmak için yapılmıştır.

is_array() fonksiyonunu extract() çağrılmadan önce değişkenin dizi olup olmadığını kontrol edebilirsiniz.

resim3.jpg

Ayrıca array_key_exists() işlevini kullanarak bir değişkenin bir dizi olup olmadığını kontrol edebilirsiniz.

resim6.jpg

Alternatif olarak, diziyi değişkenlere parçalamak için ... operatörünü kullanabilirsiniz.

resim7.jpg

Çıktığı gibi, ChatGPT'nin cevabı son derece yardımcı oldu ve o hatayı birkaç dakika içinde düzelttim. O hatayı düzeltebilmek için bakılması gereken yeri bilmek önemli bir kısmını oluşturuyordu. ChatGPT, PHP'nin farklı sürümleri arasındaki fonksiyondaki davranışın nasıl değiştiğini netleştirdi.

Yeni sürüme geçerken tüm eklentiyi geleceğe yönelik olarak uyumlu hale getirmeye çalıştığım için bunu da sordum:

PHP 7.4'den PHP 8'e geçerken hangi PHP işlevleri kırılmaya eğilimlidir?

PHP 7.4 versiyonundan PHP 8'e geçiş yaparken, bazı fonksiyonlar ve özellikler bozulabilir veya farklı davranabilir. İşte potansiyel sorunlara yol açabilecek en önemli değişikliklerden bazıları:

  • extract() fonksiyonu, önceki cevapta belirtildiği gibi, bir diziye geçirilmediğinde artık ölümcül bir hata verir.
  • each() fonksiyonu PHP 8.0'de kaldırıldı. Bunun yerine foreach veya array_keys() ve current() kullanabilirsiniz.
  • create_function() fonksiyonu PHP 8.0'de kaldırıldı. Bunun yerine anonim fonksiyonları kullanmanız önerilir.
  • list() yapısı, foreach ile kullanıldığında artık anahtar ve değeri ayrı değişkenler olarak döndürür, tek bir dizi olarak değil.
  • __autoload() fonksiyonu PHP 8.0'de kaldırıldı. Bunun yerine spl_autoload_register() kullanmalısınız.
  • $php_errormsg değişkeni PHP 8.0'de kaldırıldı. Bunun yerine error_get_last() fonksiyonunu kullanmalısınız.
  • Önceki PHP sürümlerindeki bazı kullanım dışı bırakmalar şimdi PHP 8.0'de kaldırılmıştır. Özellikle create_function(), each(), __autoload() ve $php_errormsg kaldırılmıştır.

Bunlar sadece PHP 7.4'ten PHP 8'e geçiş sırasında sorunlara neden olabilecek değişikliklerin birkaç örneğidir. Her şeyin beklenildiği gibi çalıştığından emin olmak için yükseltmeden önce kodunuzu ve uygulamalarınızı detaylı bir şekilde test etmek iyi bir fikirdir.

ChatGPT'nin "önceki yanıtta belirtildiği gibi" ifadesini kullandığını unutmayın. Sohbetteki yanıtları takip edebiliyor. Bu hem "vay be" dedirtici hem de korkutucu.

Kodu düzelttiğimde, orijinal geliştiricinin (uzun süredir mevcut olmayan) birçok kez create_function kullandığını gördüm. Bu işlemin artık kullanılmadığını fark etmemiştim. Ancak yukarıdaki kullanışlı listeden yararlanarak, kodu araştırdım ve güncellenmesi ve yeniden yazılması gereken parçaları buldum. Daha sonra ChatGPT'ye o fonksiyonun nasıl değiştirilebileceğini göstermesini istedim.

PHP'de create_function kullanarak kodu yeniden yazmanın iyi bir yolu nedir? Bana create_function kullanarak bir örnek verebilir misiniz ve şu anda geçerli olan mekanizmayı kullanarak bir örnek verebilir misiniz?

create_function HTML içinde artık önerilmeyen bir PHP fonksiyonudur. Bu fonksiyon anonim fonksiyonlar oluşturmak için kullanılıyordu. PHP 8.0'de bu fonksiyon kaldırıldığından artık kullanılması önerilmiyor. Bunun yerine anonim fonksiyonlar, kapanışlar olarak da adlandırılır, function anahtar kelimesi kullanılarak oluşturulabilir.

create_function kullanımının bir örneği burada:

resim2.jpg

Burada anonim bir fonksiyon kullanarak eşdeğer kod bulunmaktadır:

görüntü8.jpg

Ayrıca, değişkenleri kapatmaya geçirmek için use anahtar kelimesini de kullanabilirsiniz.

resim1.jpg

Genel olarak, daha iyi performans ve daha iyi okunabilirlik sağladığı için create_function yerine anonim fonksiyonları kullanmanız önerilir.

Anlaşıldığı gibi, bu çok açıklayıcı bir açıklamaydı ve kodu hızlı bir şekilde uygun şekilde yeniden yazabildim. O eklenti şimdi barındırma sağlayıcımın yeni PHP 8 ortamında sorunsuz olarak çalışıyor.

MacOS teknik destek

Optimize Mac Storage tehlikesi hakkında makalem için araştırma yaparken bazı sorularım da vardı. Makalemde gösterildiği gibi, endişelerimi doğrulamak için bazı testler yaparak içeri girdim. Ancak araştırmamı daraltmanın hızlı bir yol olarak, ChatGPT'ye şunu sordum:

MacOS'un Optimize Mac Storage özelliğini kullanıyorsanız, Time Machine eksik yedeklemeler yapar mı çünkü bazı dosyalar yerel makinede sadece işaretçi olarak temsil ediliyor?

macOS'daki "Mac Depolamasını Optimize Et" özelliği, nadiren kullanılan dosyaları Mac'inizden buluta boşaltmak için iCloud'u kullanırken, orijinal dosyayı temsil etmek için yerel makinenizde "stub" bir dosya bırakır. Bu, Mac'inizin sabit diskinde yer tasarrufu yapmanıza olanak sağlar.

Zaman Makinesi yedeklemeleri yapılandırıldığında, "Mac Depolamasını Optimizasyon" kullanılarak kaldırılan tüm dosyalar da dahil olmak üzere, tüm dosyalar yedeklenecektir. Bununla birlikte, kaldırılan dosyaları temsil eden ufak boyutlu dosyalar, orijinal dosyaların yerine yedeklenecektir.

Bu, "Mac'i Optimize Et" özelliği etkinken yapılan bir Time Machine yedeklemesinden Mac'inizi geri yükleseniz bile, taşınmış dosyaların geri yüklemede yer almayacağı ve yeniden iCloud üzerinden indirilmesi gerekeceği anlamına gelir.

Optimize Mac Storage'u kullanmadığınızda, çok sayıda dışa aktarılan dosyanız varsa, Time Machine yedeklemeleriniz, yerine geçen işaretçi dosyalarını daha az yer kaplamalarına rağmen, Time Machine'in bu dosyaları orijinal dosyalar gibi işleyeceği için daha fazla yer kaplayabilir.

Ben bundan endişe ediyorum. En azından Google ile yazarlar, bilgiyi paylaşmaları karşılığında, arama motorunun makaleye trafik gönderme şansına sahip oluyorlar. Ancak ChatGPT gibi bir sohbet robotuyla, orijinal ileti kaybolur. Kesinlikle, hızlı bir cevapla üretkenlik avantajını elde ettim. Ancak, orada biri çalışmasına atıfta bulunma kaybetti mi?

Merakla bekleyin. Bu generatif yapay zeka dalgaları büyük etki yaratıyor. Hep birlikte, bu durumun hepimiz için ne anlama geldiğini anlamaya çalışırken benimle ve ZDNET ile kalın.

ChatGPT, bir soruyu cevaplarken, başkalarının katkıda bulunduğu bilgileri alıyor musunuz ve orijinal insan kaynaklarından iş ve kredi çalıyor musunuz?

AçıkAI tarafından oluşturulan bir yapay zeka dil modeli olarak, kişisel fikir veya düşüncelerim yok. Bununla birlikte, yanıtlarımı oluşturmak için kullandığım bilgiler, internetten elde ettiğim geniş miktarda metin verisine dayanmaktadır. Bu metin, farklı kişiler ve kaynaklar tarafından yazılmış olup, sunulan bilgiler için belirli kişilere atıf yapma yeteneğim bulunmamaktadır. Amacım, kullanıcılara aradıkları yanıtları bulmalarına yardımcı olmak için yararlı ve doğru bilgiler sağlamaktır. Yanıtlarım, eğitim verilerindeki desenlere dayanarak oluşturulduğu için her zaman tamamen doğru veya güncel olmayabilir.

Öyleyse, evet. Bu kadar. "İnternetten çok büyük miktarda metin." Devam edin dostlar. Burada görülecek bir şey yok.

Yani, özetle, "Mac Depolamasını Optimize Et" özelliğini kullanırsanız, Time Machine eksik yedeklemeler yapacaktır, çünkü bulut'a aktarılmış olan orijinal dosyalar yerine yalnızca yer tutucu dosyalarını yedekleyecektir.

Bu doğru bir cevaptı.

Anlamlar

İyi, kesinlikle zaman kazandırdı. Normalde internet üzerinde programlama, kodlama ve hata ayıklama ortamı arasında bir dansı içerir ve ipuçlarının takip edildiği, tartışmaların ve yorumların okunduğu artımlı web aramaları gerektirir.

Anlamamış olma. Bu süreç çok bilgilendirici olabilir ve sohbetbotundan asla alamayacağınız birçok inanış bu yorumların altında gizlenmiş olabilir. Ancak aceleyle ya da kritik bir teslim süresiyle karşı karşıyadaysanız, bu soruları ChatGPT'ye sormak zaman açısından verimli olmayabilir.

Herhangi bir yapay zeka gibi, AI'nın bilgisinde eksiklikler olduğunu ve tamamen yanlış cevaplar alabileceğinizi bilmelisiniz. Ancak ChatGPT'yi diğer araçlarımın bir parçası olarak doğrudan bir araç gibi kullanmak oldukça verimli oldu.

Gerçekten de bilgiyi nereden aldığını merak ediyorum. Acaba extract veya create_function hakkında oldukça bilgilendirici bir makale yazan bana benzer bir yazar var mı? ChatGPT'nin cevaplarına dönüştürülerek, kredi veya para ödenmeden başka birileri tarafından kullanılan birinin kazanılmış bilgisi, kaynak materyal olarak kullanılıyor mu?

HIX.AI ile yapay zekanın gücünün kilidini açın!