Saya menggunakan ChatGPT untuk membantu saya memperbaiki kod dengan lebih cepat, tetapi dengan kos apa?

gambar5.jpg

Minggu ini, saya telah menunjukkan kepada anda bagaimana ChatGPT boleh membuat satu plugin WordPress keseluruhan yang memenuhi spesifikasi fungsional yang tertentu, walaupun agak asas. Sekarang, saya akan meneruskan ujian ChatGPT untuk mendapatkan gambaran samada ia boleh menjadi alat yang membantu - dalam kes ini, untuk membantu saya mendapatkan panduan teknikal.

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

Seperti yang saya telah lakukan dalam penerokaan-penerokaan sebelum ini tentang ChatGPT, tulisan saya dalam teks biasa atau teks tebal, dan respons AI dalam jenis teks miring. Pertama, saya akan tunjukkan kepada anda soalan-soalan dan jawapan-jawapan, kemudian saya akan membincangkan implikasinya.

Mengerti perubahan bahasa pemrograman

Penyedia hos saya sedang memindahkan semua laman webnya dari PHP 7.4 yang sangat lapuk kepada PHP 8. PHP adalah bahasa pengaturcaraan web yang digunakan oleh WordPress dan beberapa alat pengurusan web lain. Saya ada beberapa plugin yang tidak serasi dengan PHP 8, dan saya ingin mengenal pasti bahagian-bahagian kod mereka yang perlu saya cari dan selesaikan.

Secara normal, saya akan melihat situs PHP.net, melakukan beberapa pencarian di Google, dan menyelami komentar-komentar di StackExchange untuk mencari tahu pekerjaan pemrograman apa yang perlu saya lakukan. Tapi itu adalah proses yang membingungkan dan memakan waktu. Sebagai gantinya, saya mengajukan pertanyaan secara rinci kepada ChatGPT dan mendapatkan tanggapan yang sangat berguna, termasuk contoh kode yang jelas.

Saya mengalami masalah dengan fungsi extract PHP yang memberikan kesalahan fatal saat tidak diberikan sebuah array. Di PHP 7.4, saya tidak mendapatkan kesalahan tersebut, tetapi tampaknya saya mendapatkannya di PHP 8. Apakah extract berubah untuk PHP 8?

Di PHP 8, perilaku fungsi extract() telah diubah menjadi lebih ketat. Pada versi-versi sebelumnya dari PHP, fungsi extract() akan mengembalikan false jika tidak diberikan sebuah array, tetapi dalam PHP 8, ia akan melemparkan error fatal jika tidak diberikan sebuah array. Perubahan ini dilakukan untuk meningkatkan kekokohan fungsi dan membantu mencegah bug potensial yang disebabkan oleh input yang tidak terduga.

Anda boleh memeriksa sama ada pembolehubah yang dihantar ke fungsi itu adalah jenis array atau tidak dengan menggunakan fungsi is_array() sebelum memanggil extract().

gambar3.jpg

Anda juga boleh menggunakan fungsi array_key_exists() untuk memeriksa sama ada pembolehubah yang terlewatkan adalah sebuah array atau tidak.

gambar6.jpg

Atau, anda boleh menggunakan operator ... untuk memperinci array kepada pembolehubah.

gambar7.jpg

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

Sejak saya cuba menyediakan keseluruhan plugin untuk versi baharu, saya juga bertanya ini:

Apakah fungsi PHP yang kemungkinan rusak ketika beralih dari PHP 7.4 ke PHP 8?

Bila berpindah dari PHP 7.4 ke PHP 8, terdapat beberapa fungsi dan fitur yang mungkin akan rosak atau berperilaku berbeza. Berikut adalah beberapa perubahan ketara yang boleh menyebabkan masalah:

  • Fungsi extract(), seperti yang disebutkan dalam jawapan sebelumnya, sekarang akan menghasilkan ralat fatal jika tidak diberikan sebuah array.
  • Fungsi each() telah dihapuskan dalam PHP 8.0. Anda boleh menggunakan foreach atau array_keys() dan current() sebagai gantinya.
  • Fungsi create_function() telah dihapuskan dalam PHP 8.0. Disyorkan untuk menggunakan fungsi tanpa nama (anonymous functions) sebagai gantinya.
  • Konstruk list(), apabila digunakan bersama foreach, sekarang mengembalikan kunci dan nilai sebagai pembolehubah yang berasingan, bukan sebagai sebuah array tunggal.
  • Fungsi __autoload() telah dihapuskan dalam PHP 8.0. Anda sepatutnya menggunakan spl_autoload_register() sebagai gantinya.
  • Perkataan pemboleh ubah $php_errormsg telah dihapuskan dalam PHP 8.0. Anda harus menggunakan fungsi error_get_last() sebagai gantinya.
  • Sesetengah daripada pengepalaan dalam versi PHP sebelumnya telah dihapuskan dalam PHP 8.0. Khususnya, fungsi create_function(), each(), __autoload(), dan pemboleh ubah $php_errormsg telah dihapuskan.

Ini hanya beberapa contoh perubahan yang mungkin menyebabkan masalah ketika berpindah dari PHP 7.4 ke PHP 8. Sebaiknya Anda menguji kode dan aplikasi Anda dengan baik sebelum melakukan upgrade untuk memastikan bahwa semuanya berjalan seperti yang diharapkan.

Sila ambil perhatian bahawa ChatGPT menggunakan frasa "seperti yang dinyatakan dalam jawapan sebelum ini." Ia mampu mengendalikan jawapan dalam perbualan. Ini adalah baik dan menakutkan.

Di dalam kod yang saya sedang meneliti, didapati bahawa pembangun asal (yang sudah lama tidak muncul) menggunakan create_function dengan kerap. Saya tidak sedar bahawa fungsi itu sudah tidak digunakan lagi. Namun dengan senarai berguna di atas, saya hanya mencari kod dan menemui apa yang perlu dikemas kini dan ditulis semula. Seterusnya, saya menggunakan ChatGPT untuk menunjukkan cara menggantikan fungsi tersebut.

Apa cara yang baik untuk menulis semula kod menggunakan create_function dalam PHP? Dapatkah anda berikan satu contoh menggunakan create_function, dan kemudian satu contoh menggunakan mekanisme yang kini betul?

create_function adalah fungsi yang sudah tidak digunakan lagi dalam PHP untuk membuat fungsi anonim. Tidak disarankan lagi untuk menggunakan fungsi ini karena telah dihapus pada PHP 8.0. Sebagai gantinya, fungsi anonim atau sering disebut closures dapat dibuat menggunakan kata kunci function.

Berikut adalah contoh penggunaan create_function:

gambar2.jpg

Dan di sini adalah kod setara menggunakan fungsi tanpa nama:

gambar8.jpg

Selain itu, anda boleh menggunakan kata kunci use untuk menghantar pembolehubah ke dalam penutupan.

gambar1.jpg

Arahan am adalah menggunakan fungsi tanpa nama (anonymous functions) selain daripada create_function kerana ia mempunyai prestasi yang lebih baik dan lebih mudah dibaca.

Ternyata, penjelasan itu sangat jelas dan saya dapat dengan cepat menulis ulang kode sesuai yang diperlukan. Plugin tersebut sekarang berjalan di lingkungan PHP 8 baru dari penyedia hosting saya tanpa masalah.

Sokongan teknikal untuk MacOS

Semasa saya menjalankan kajian untuk artikel saya mengenai bahaya Optimize Mac Storage, saya juga ada beberapa soalan. Seperti yang ditunjukkan dalam artikel saya, saya telah melakukan beberapa ujian untuk mengesahkan kebimbangan saya. Tetapi sebagai cara cepat untuk mengekang kajian saya, saya bertanya kepada ChatGPT ini:

Jika anda menggunakan ciri Optimize Mac Storage dalam MacOS, adakah Time Machine akan membuat sandaran yang tidak lengkap kerana beberapa fail hanya diwakili sebagai singkatan pada komputer tempatan?

Ciri "Pengoptimuman Penyimpanan Mac" dalam macOS menggunakan iCloud untuk memindahkan fail yang jarang digunakan dari Mac anda ke awan, tetapi tetap mempunyai fail "stub" pada komputer tempatan untuk mewakili fail asal. Ini dapat menjimatkan ruang pada pemacu keras Mac anda.

Bila Mesin Masa disetkan untuk membuat sandaran, ia akan menyandarkan semua fail, termasuk yang telah dihilangkan menggunakan "Penyimpanan Mac Optimum". Walaubagaimanapun, fail cangkul yang mewakili fail yang telah dihilangkan tersebut akan disandarkan sebagai gantinya.

Ini bermakna jika anda mengembalikan Mac anda dari sandaran Time Machine yang dibuat semasa "Pengoptimuman Penyimpanan Mac" diaktifkan, sebarang fail yang dimuat turun tidak akan termasuk dalam pemulihan dan perlu dimuat turun semula dari iCloud.

Perlu diperhatikan jika anda mempunyai banyak fail yang di offload, sandaran Time Machine anda boleh mengambil lebih banyak ruang berbanding jika anda tidak menggunakan Optimize Mac Storage kerana Time Machine akan membuat sandaran untuk fail-fail stumb, yang mengambil ruang yang lebih sedikit tetapi Time Machine akan memperlakukannya sebagai fail asal.

Saya bimbang tentang perkara itu. Sekurang-kurangnya dengan Google, penulis mempunyai peluang untuk mendapatkan traffik dari enjin carian sebagai pertukaran untuk berkongsi maklumat tersebut. Tetapi dengan chatbot seperti ChatGPT, benang asal hilang. Ya, saya mendapat manfaat produktiviti dengan jawapan yang cepat. Tetapi adakah seseorang di luar sana kehilangan hak penjenamaan terhadap kerja mereka?

Tetaplah berada bersama kami. Lonjakan dalam kecerdasan buatan generatif ini sedang menciptakan gelombang besar. Terus berada dengan saya dan ZDNET saat kami berusaha memahami dampaknya bagi kita semua.

ChatGPT, ketika anda menjawab soalan, adakah anda mengambil pengetahuan yang dikemukakan oleh orang lain dan adakah anda mengambil kerja dan kredit dari sumber manusia asal?

Sebagai model bahasa AI yang dibangunkan oleh OpenAI, saya tidak mempunyai pendapat atau pemikiran peribadi. Walau bagaimanapun, saya dapat memberitahu anda bahawa maklumat yang saya gunakan untuk menjana respons saya berdasarkan data yang saya telah dilatih dengan, iaitu terdiri daripada jumlah teks yang melimpah dari internet. Teks ini ditulis oleh pelbagai individu dan sumber, dan saya tidak mempunyai keupayaan untuk memberikan penghargaan kepada individu tertentu untuk maklumat yang saya berikan. Matlamat saya adalah untuk memberikan maklumat yang berguna dan tepat untuk membantu pengguna mencari jawapan yang mereka cari. Penting untuk diingat bahawa respons saya dihasilkan berdasarkan corak dalam data yang saya telah dilatih dengan dan mungkin tidak sentiasa sama ada sepenuhnya tepat atau terkini.

Jadi, ya. Itu. "Jumlah teks yang banyak dari internet." Teruskan perjalanan, saudara-saudara. Tiada apa-apa untuk dilihat di sini.

Jadi, secara ringkas, Mesin Waktu akan membuat salinan sandaran yang tidak lengkap jika anda menggunakan ciri "Optimize Mac Storage", kerana ia hanya akan menyandarkan fail stub (fail berkas) berbanding fail asal yang telah dipindahkan ke awan.

Itu jawapan yang betul.

Akibat

Alahai, ia benar-benar menghemat masa. Biasanya, memprogram di internet melibatkan hubungan yang rumit antara persekitaran pengodan dan penyahdebug, serta banyak pencarian web berperingkat di mana petunjuk-petunjuk diikuti dan perbincangan dan komen-komen dibaca.

Jangan salah faham. Proses tersebut boleh memberikan maklumat yang sangat berinformasi, dan terdapat banyak cerita dongeng yang tersembunyi dalam komen tersebut yang anda tidak akan dapat daripada chatbot. Tetapi ia bukan penggunaan masa yang cekap apabila anda terburu-buru atau berhadapan dengan garis masa yang penting. Bertanya soalan kod tersebut kepada ChatGPT terbukti sangat cekap.

Sebagaimana dengan apa-apa perkara berkaitan AI, anda perlu sedar bahawa terdapat kekurangan dalam pengetahuan AI, dan anda mungkin akan mendapat jawapan yang salah sepenuhnya. Tetapi menggunakan ChatGPT sebagai alat yang mudah seperti alat lain dalam kotak alat saya terbukti cukup produktif.

Saya memang ingin tahu dari mana ia mendapatkan maklumatnya. Adakah ada penulis di luar sana seperti saya yang menulis artikel yang sangat informatif tentang extract atau create_function yang katanya dijadikan respons oleh ChatGPT tanpa mengakui atau memonetisasi? Adakah pengetahuan yang sukar didapatkan seseorang digunakan sebagai bahan sumber tanpa pengiktirafan?

Artikel Berkaitan

Lihat Lebih Banyak >>

Buka kunci kuasa AI dengan HIX.AI!