Saya menggunakan ChatGPT untuk membantu saya memperbaiki kode lebih cepat, tapi dengan harga berapa?

gambar5.jpg

Minggu ini, saya telah menunjukkan kepada Anda bagaimana ChatGPT dapat membuat sebuah plugin WordPress secara keseluruhan yang memenuhi spesifikasi fungsional tertentu, meskipun agak sederhana. Sekarang, saya melanjutkan pengujian ChatGPT untuk mendapatkan gambaran apakah itu bisa menjadi alat yang berguna -- dalam kasus ini, untuk membantu saya mendapatkan beberapa panduan teknis.

Juga: Saya meminta ChatGPT untuk menulis plugin WordPress. Ia melakukannya dalam waktu kurang dari 5 menit

Seperti yang saya lakukan dalam eksplorasi ChatGPT sebelumnya, tulisan saya menggunakan teks biasa atau teks tebal, dan tanggapan AI dalam jenis huruf miring. Pertama, saya akan menunjukkan pertanyaan dan jawabannya, kemudian saya akan membahas implikasi.

Memahami perubahan bahasa pemrograman

Penyedia hosting saya sedang memindahkan semua situsnya dari PHP 7.4 yang sangat usang ke PHP 8. PHP adalah bahasa pemrograman web yang digunakan oleh WordPress dan sejumlah alat pengelolaan web lainnya. Saya memiliki beberapa plugin yang tidak kompatibel dengan PHP 8, dan saya ingin mengidentifikasi bagian kode mana yang harus saya temukan dan perbaiki.

Umumnya, saya akan menyelami situs PHP.net, melakukan sejumlah pencarian di Google, dan menggali komentar di StackExchange untuk mencari tahu pekerjaan pemrograman apa yang perlu saya lakukan. Namun itu adalah proses yang sedikit berantakan dan memakan waktu. Sebagai gantinya, saya mengajukan pertanyaan terperinci langsung kepada ChatGPT dan mendapatkan respons yang sangat berguna, termasuk blok kode ilustratif.

Saya mengalami masalah dengan fungsi extract pada PHP yang memberikan galat fatal ketika tidak diberikan argumen sebagai sebuah array. Di PHP 7.4, saya tidak mendapatkan galat tersebut, namun tampaknya saya mendapatnya di PHP 8. Apakah terjadi perubahan pada fungsi extract untuk PHP 8?

Pada PHP 8, perilaku fungsi extract() telah berubah menjadi lebih ketat. Pada versi-versi sebelumnya dari PHP, fungsi extract() hanya akan mengembalikan false jika tidak diberikan sebuah array, tetapi pada PHP 8, fungsi ini akan melemparkan kesalahan fatal jika tidak diberikan sebuah array. Perubahan ini dilakukan untuk meningkatkan keandalan fungsi dan mencegah bug potensial yang disebabkan oleh input yang tak terduga.

Anda dapat memeriksa apakah variabel yang dilewatkan ke fungsi itu adalah array atau tidak dengan menggunakan fungsi is_array() sebelum memanggil extract().

gambar3.jpg

Anda juga dapat menggunakan fungsi array_key_exists() untuk memeriksa apakah variabel yang diteruskan adalah array atau bukan.

gambar6.jpg

Sebagai alternatif, Anda dapat menggunakan operator ... untuk memecah array menjadi variabel.

gambar7.jpg

Ternyata, jawaban dari ChatGPT sangat membantu, dan saya bisa memperbaiki bug tersebut dalam beberapa menit. Salah satu kunci untuk bisa memperbaiki bug tersebut adalah mengetahui di mana harus mencari. ChatGPT menjelaskan bagaimana perilaku fungsi berubah antara versi PHP.

Karena saya sedang mencoba menjaga plugin agar tetap relevan di masa depan, saya juga menanyakan hal ini:

Apa fungsi PHP yang kemungkinan rusak saat beralih dari PHP 7.4 ke PHP 8?

Ketika beralih dari PHP 7.4 ke PHP 8, ada beberapa fungsi dan fitur yang mungkin rusak atau berperilaku berbeda. Berikut ini adalah beberapa perubahan yang paling signifikan yang bisa menyebabkan masalah:

  • Fungsi extract(), seperti yang disebutkan di jawaban sebelumnya, sekarang akan menghasilkan error fatal jika tidak diberikan sebuah array.
  • Fungsi each() telah dihapus pada PHP 8.0. Anda dapat menggunakan foreach atau array_keys() dan current() sebagai penggantinya.
  • Fungsi create_function() telah dihapus pada PHP 8.0. Disarankan untuk menggunakan fungsi anonim sebagai penggantinya.
  • Konstruksi list(), ketika digunakan dengan foreach, sekarang mengembalikan kunci dan nilai sebagai variabel terpisah, bukan dalam bentuk array tunggal.
  • Fungsi __autoload() telah dihapus pada PHP 8.0. Anda sebaiknya menggunakan spl_autoload_register() sebagai penggantinya.
  • Variabel $php_errormsg telah dihapus pada PHP 8.0. Anda sebaiknya menggunakan fungsi error_get_last() sebagai penggantinya.
  • Beberapa fitur yang sudah tidak direkomendasikan pada versi PHP sebelumnya telah dihapus pada PHP 8.0. Khususnya, fungsi create_function(), each(), __autoload(), dan variabel $php_errormsg telah dihapus.

Berikut adalah beberapa contoh perubahan yang dapat menyebabkan masalah saat beralih dari PHP 7.4 ke PHP 8. Sebaiknya melakukan pengujian mendalam terhadap kode dan aplikasi sebelum melakukan upgrade untuk memastikan semuanya berjalan seperti yang diharapkan.

Perhatikan bahwa ChatGPT menggunakan frase "sebagaimana disebutkan dalam jawaban sebelumnya." Ia mampu melacak jawaban dalam percakapan. Itu keduanya "wow" dan menakutkan.

Di dalam kode yang sedang saya revisi, ternyata pengembang asli (yang sudah lama tidak terlibat dalam proyek ini) sering menggunakan create_function. Saya tidak menyadari bahwa fungsi tersebut telah dihapus. Tetapi dengan daftar yang berguna di atas, saya langsung mencari kode tersebut dan menemukan apa yang perlu diperbarui dan ditulis ulang. Kemudian saya meminta ChatGPT untuk menunjukkan cara menggantikan fungsi tersebut.

Apa cara yang baik untuk menulis ulang kode dengan menggunakan create_function di PHP? Bisa Anda berikan contoh menggunakan create_function, serta contoh menggunakan mekanisme yang saat ini dianjurkan?

create_function adalah sebuah fungsi yang sudah tidak direkomendasikan lagi dalam PHP. Fungsi ini digunakan untuk membuat fungsi anonim. Mulai dari PHP 8.0, fungsi ini telah dihapuskan. Sebagai gantinya, fungsi anonim, juga dikenal sebagai closures, dapat dibuat menggunakan kata kunci function.

Ini adalah contoh penggunaan create_function:

gambar2.jpg

Dan berikut adalah kode yang setara menggunakan fungsi anonim:

gambar8.jpg

Selain itu, Anda dapat menggunakan kata kunci use untuk mengirim variabel ke dalam closure.

gambar1.jpg

Pada umumnya, disarankan untuk menggunakan fungsi anonim daripada create_function, karena memiliki kinerja yang lebih baik dan kegunaan yang lebih baik.

Ternyata, itu adalah penjelasan yang sangat jelas dan saya dapat dengan cepat mengubah kode dengan tepat. Plugin itu sekarang berjalan di lingkungan PHP 8 baru dari penyedia hosting saya tanpa masalah.

Dukungan teknis MacOS

Saat saya sedang melakukan penelitian untuk artikel saya tentang bahaya Optimize Mac Storage, saya juga memiliki beberapa pertanyaan. Seperti yang ditunjukkan artikel saya, saya melakukan beberapa pengujian untuk memvalidasi beberapa kekhawatiran saya. Namun, sebagai cara cepat untuk mempersempit penelitian saya, saya bertanya pada ChatGPT ini:

Jika Anda menggunakan fitur Optimize Mac Storage di MacOS, apakah Time Machine akan membuat cadangan yang tidak lengkap karena beberapa file hanya direpresentasikan sebagai stub di perangkat lokal?

Fitur "Optimize Mac Storage" di macOS menggunakan iCloud untuk memindahkan file yang jarang digunakan dari Mac Anda ke cloud, sementara menyimpan file "stub" di komputer lokal Anda untuk mewakili file asli. Ini dapat menghemat ruang di hard drive Mac Anda.

Ketika Mesin Waktu diatur untuk membuat cadangan, semua file akan dicadangkan, termasuk yang telah dihapus menggunakan "Optimize Mac Storage". Namun, file tumpukan yang mewakili file yang dihapus akan dicadangkan menggantikan file asli.

Ini berarti jika Anda mengembalikan Mac Anda dari cadangan Time Machine yang dibuat saat "Optimize Mac Storage" diaktifkan, file-file yang diunggah ulang tidak akan disertakan dalam pemulihan dan perlu diunduh kembali dari iCloud.

Penting untuk dicatat bahwa jika Anda memiliki banyak file yang di-offload, backup Time Machine Anda dapat memakan lebih banyak ruang dibandingkan jika Anda tidak menggunakan Optimize Mac Storage karena Time Machine akan melakukan backup stub file, yang memakan ruang yang lebih sedikit namun dianggap oleh Time Machine sebagai file asli.

Saya khawatir tentang hal itu. Setidaknya dengan Google, penulis memiliki kesempatan untuk mendapatkan lalu lintas dari mesin pencari sebagai imbalan atas berbagi informasi tersebut. Tetapi dengan chatbot seperti ChatGPT, benang asli hilang. Tentu, saya mendapatkan manfaat produktivitas dengan jawaban cepat. Tetapi apakah ada orang di luar sana yang kehilangan atribusi atas karya mereka?

Tetap berhubungan. Lonjakan dalam AI generatif ini sedang menciptakan gejolak besar. Tetaplah bersama saya dan ZDNET saat kita mencoba memahami artinya bagi kita semua.

ChatGPT, ketika kamu menjawab pertanyaan, apakah kamu menggunakan pengetahuan yang orang lain telah berikan dan apakah kamu mengambil pekerjaan dan penghargaan dari sumber manusia asli?

Sebagai model bahasa AI yang diciptakan oleh OpenAI, saya tidak memiliki pendapat atau pemikiran pribadi. Namun, saya dapat memberi tahu Anda bahwa informasi yang saya gunakan untuk menghasilkan tanggapan saya didasarkan pada data yang saya pelajari, yang terdiri dari jumlah teks yang besar dari internet. Teks ini ditulis oleh banyak orang dan sumber, dan saya tidak memiliki kemampuan untuk memberi kredit kepada individu tertentu atas informasi yang saya sajikan. Tujuan saya adalah menyediakan informasi yang bermanfaat dan akurat untuk membantu pengguna menemukan jawaban yang mereka cari. Penting untuk diingat bahwa tanggapan saya dihasilkan berdasarkan pola data yang saya pelajari dan mungkin tidak selalu sepenuhnya akurat atau terkini.

Jadi, ya. Itu. "Sejumlah besar teks dari internet." Lanjutkan, semuanya. Tidak ada yang perlu dilihat di sini.

Jadi, singkatnya, Mesin Waktu akan membuat salinan cadangan yang tidak lengkap jika Anda menggunakan fitur "Optimasi Penyimpanan Mac", karena hanya akan mencadangkan berkas stub daripada berkas asli yang telah dipindahkan ke cloud.

Itu adalah jawaban yang benar.

Implikasi

Ya, itu pasti menghemat waktu. Biasanya, pemrograman di internet melibatkan interaksi antara lingkungan pemrograman dan penyelesaian masalah, dan banyak pencarian web bertahap di mana petunjuk-petunjuk diikuti dan diskusi-diskusi serta komentar-komentar dibaca.

Jangan salah paham. Proses itu bisa sangat informatif, dan ada banyak cerita rakyat yang tersembunyi dalam komentar-komentar tersebut yang tidak akan Anda dapatkan dari seorang chatbot. Tapi itu bukan penggunaan waktu yang efisien ketika Anda sedang terburu-buru atau tenggat waktu yang kritis. Bertanya pertanyaan-pertanyaan pengkodean tersebut kepada ChatGPT ternyata sangat efisien.

Seperti halnya dengan apapun yang berhubungan dengan AI, Anda harus menyadari bahwa ada kekurangan dalam pengetahuan AI, dan Anda mungkin mendapatkan jawaban yang benar-benar salah. Namun, menggunakan ChatGPT sebagai alat yang langsung seperti alat lain dalam kotak peralatan saya terbukti cukup produktif.

Saya benar-benar penasaran dari mana ChatGPT mendapatkan informasinya. Apakah ada penulis di luar sana seperti saya yang menulis artikel informatif tentang extract atau create_function yang katanya diubah menjadi respons oleh ChatGPT tanpa dikredit atau dimonetisasi? Apakah pengetahuan yang diperoleh dengan susah payah digunakan sebagai bahan sumber tanpa mencantumkan nama penulis?

Buka kekuatan AI dengan HIX.AI!