Sto utilizzando ChatGPT per aiutarmi a correggere il codice più velocemente, ma a quale costo?
ChatGPT mi fa sicuramente risparmiare tempo, ma questo compensa ciò che si perde nel processo?
All'inizio di questa settimana, vi ho mostrato come ChatGPT potesse creare un intero plugin WordPress che soddisfacesse specifiche funzionali specifiche, anche se un po' rudimentali. Ora sto continuando a testare ChatGPT per capire se può essere uno strumento utile, in questo caso per aiutarmi a ottenere indicazioni tecniche.
Come ho fatto nelle precedenti esplorazioni di ChatGPT, la mia scrittura è in testo semplice o in grassetto e le risposte dell'IA sono in corsivo. Per prima cosa ti mostrerò le domande e le risposte, poi discuterò le implicazioni.
Comprendere i cambiamenti del linguaggio di programmazione
Il mio provider di hosting sta trasferendo tutti i suoi siti dall'obsoleto PHP 7.4 a PHP 8. PHP è un linguaggio di programmazione web su cui fanno affidamento WordPress e numerosi altri strumenti di gestione web. Avevo un paio di plugin che non erano compatibili con PHP 8 e volevo identificare quali aspetti del loro codice avrei dovuto trovare e correggere.
Normalmente, scavavo nel sito PHP.net, facevo un sacco di ricerche su Google e analizzavo i commenti in StackExchange per scoprire quale lavoro di programmazione avrei bisogno di fare. Ma è un processo un po’ complicato e che richiede tempo. Invece, ho posto una domanda dettagliata e diretta a ChatGPT e ho ricevuto una risposta molto utile, inclusi blocchi di codice illustrativo.
Ho problemi con la funzione di estrazione PHP che restituisce un errore fatale quando non viene passato un array. In PHP 7.4 non ricevevo l'errore, ma mi sembra di sì in PHP 8. L'estrazione è stata modificata per PHP 8?
In PHP 8, the behavior of the extract() function has been changed to be more strict. In previous versions of PHP, the extract() function would simply return false if it was not passed an array, but in PHP 8, it will throw a fatal error if it is not passed an array. This change was made to improve the robustness of the function and to help prevent potential bugs caused by unexpected input.You can check if the variable passed to the function is an array or not by using the is_array() function before calling extract().You can also use the array_key_exists() function to check if a variable passed is an array or not.Alternatively, you can use the ... operator to destructure the array into variables.A quanto pare, la risposta di ChatGPT è stata estremamente utile e ho risolto il bug in pochi minuti. Gran parte della possibilità di risolvere quel bug era sapere dove cercare. ChatGPT ha chiarito come è cambiato il comportamento della funzione tra le versioni di PHP.
Dato che stavo cercando di rendere l'intero plugin a prova di futuro, stavo passando alla nuova versione, ho anche chiesto questo:
Quali funzioni PHP potrebbero interrompersi quando si passa da PHP 7.4 a PHP 8?
When moving from PHP 7.4 to PHP 8, there are a few functions and features that may break or behave differently. Here are some of the most notable changes that could potentially cause issues:- La funzione extract(), come menzionato nella risposta precedente, ora genera un errore fatale se non le viene passato un array.
- La funzione each() è stata rimossa in PHP 8.0. Puoi utilizzare invece foreach o array_keys() e current().
- La funzione create_function() è stata rimossa in PHP 8.0. Si consiglia invece di utilizzare funzioni anonime.
- Il costrutto list(), se utilizzato con foreach, ora restituisce la chiave e il valore come variabili separate, anziché come un singolo array.
- La funzione __autoload() è stata rimossa in PHP 8.0. Dovresti invece usare spl_autoload_register().
- La variabile $php_errormsg è stata rimossa in PHP 8.0. Dovresti invece utilizzare la funzione error_get_last().
- Alcuni degli elementi deprecati nelle versioni precedenti di PHP sono stati ora rimossi in PHP 8.0. Nello specifico, create_function(), each(), __autoload() e $php_errormsg vengono rimossi.
These are just a few examples of the changes that may cause issues when moving from PHP 7.4 to PHP 8. It's a good idea to thoroughly test your code and applications before upgrading to ensure that everything works as expected.Tieni presente che ChatGPT ha utilizzato la frase "come menzionato nella risposta precedente". È in grado di tenere traccia delle risposte nella conversazione. Questo è sia "wow" che spaventoso.
Nel codice che stavo rivedendo, si è scoperto che lo sviluppatore originale (che è fuori dai giochi da tempo) utilizzava molto create_function. Non avevo capito che fosse stato deprecato. Ma con l'utile elenco sopra, ho semplicemente cercato il codice e ho trovato ciò che necessitava di essere aggiornato e riscritto. Quindi sono andato avanti e ho chiesto a ChatGPT di mostrarmi come sostituire quella funzione.
Qual è un buon modo per riscrivere il codice utilizzando create_function in PHP? Puoi darmi un esempio utilizzando create_function e poi uno utilizzando il meccanismo attualmente corretto?
create_function è una funzione deprecata in PHP che veniva utilizzata per creare funzioni anonime. Non è più consigliato utilizzare questa funzione poiché è stata rimossa in PHP 8.0. Invece, è possibile creare funzioni anonime, note anche come chiusure, utilizzando la parola chiave funzione.
Here is an example of using create_function:And here is the equivalent code using an anonymous function:Additionally, you can use the use keyword to pass variables into the closure.In general, it is recommended to use anonymous functions instead of create_function as they have improved performance and better readability.A quanto pare, la spiegazione era molto chiara e sono stato in grado di riscrivere rapidamente il codice in modo appropriato. Quel plugin ora funziona senza problemi nel nuovo ambiente PHP 8 del mio provider di hosting.
Supporto tecnico per MacOS
Mentre stavo effettuando ricerche per il mio articolo sui pericoli di Ottimizza archiviazione Mac, avevo anche alcune domande. Come ha mostrato il mio articolo, sono andato e ho fatto alcuni test per convalidare alcune delle mie preoccupazioni. Ma per restringere rapidamente il campo della mia ricerca, ho chiesto a ChatGPT questo:
Se utilizzi la funzionalità MacOS Ottimizza archiviazione Mac, Time Machine eseguirà backup incompleti perché alcuni file sono rappresentati solo come stub sul computer locale?
The "Optimize Mac Storage" feature in macOS uses iCloud to offload rarely used files from your Mac to the cloud, while keeping a "stub" file on your local machine to represent the original file. This can save space on your Mac's hard drive.When Time Machine is set up to make backups, it will back up all files, including those that have been offloaded using "Optimize Mac Storage." However, the stub files that represent the offloaded files will be backed up in place of the original files.This means that if you were to restore your Mac from a Time Machine backup that was made while "Optimize Mac Storage" was enabled, any offloaded files would not be included in the restore and would need to be downloaded from iCloud again.It's important to note that if you have a lot of files that are offloaded, your Time Machine backups can take up more space than if you don't use Optimize Mac Storage because Time Machine will be backing up the stub files, which take up less space but Time Machine will treat as the original files.So, in short, Time Machine will make incomplete backups if you use the "Optimize Mac Storage" feature, as it will only back up the stub files instead of the original files that have been offloaded to the cloud.Era una risposta corretta.
Implicazioni
Beh, sicuramente ha risparmiato tempo. Normalmente, la programmazione su Internet comporta una danza tra l'ambiente di codifica e di debug e molte ricerche web incrementali in cui vengono rintracciati indizi e letti discussioni e commenti.
Non fraintendermi. Questo processo può essere molto istruttivo e c'è molto folklore sepolto in quei commenti che non riceverai mai da un chatbot. Ma non è un uso efficiente del tempo quando sei di fretta o hai una scadenza critica. Porre quelle domande sulla codifica di ChatGPT si è rivelato molto efficiente.
Come per qualsiasi cosa relativa all'intelligenza artificiale, devi essere consapevole che ci sono lacune nella conoscenza dell'intelligenza artificiale e che potresti benissimo ottenere risposte completamente sbagliate. Ma usare ChatGPT come uno strumento semplice come qualsiasi altro strumento nella mia cassetta degli attrezzi si è rivelato piuttosto produttivo.
Mi chiedo però dove abbia preso le informazioni. C'è qualche scrittore là fuori come me che ha scritto un articolo profondamente informativo su extract o create_function le cui parole vengono "inserite" in una risposta da ChatGPT senza credito o monetizzazione? La conoscenza acquisita con fatica da qualcuno viene utilizzata come materiale di partenza non accreditato per quelle risposte?
Mi preoccupo per questo. Almeno con Google gli autori hanno la possibilità che il motore di ricerca invii traffico all'articolo in cambio della condivisione di tali informazioni. Ma con un chatbot come ChatGPT, il thread originale si perde. Certo, ho ottenuto il vantaggio in termini di produttività di una risposta rapida. Ma qualcuno là fuori ha perso l'attribuzione per il proprio lavoro?
Rimani sintonizzato. Questa ondata di intelligenza artificiale generativa sta suscitando grandi ondate. Restate con me e ZDNET mentre cerchiamo di capire cosa significa per tutti noi.
ChatGPT, quando rispondi a una domanda, stai prendendo la conoscenza a cui hanno contribuito altri e stai togliendo lavoro e credito alle fonti umane originali?
As an AI language model created by OpenAI, I do not have personal opinions or thoughts. However, I can tell you that the information I use to generate my responses is based on the data I have been trained on, which consists of vast amounts of text from the internet. This text was written by many different people and sources, and I don't have the ability to attribute credit to specific individuals for the information I present. My goal is to provide helpful and accurate information to assist users in finding the answers they're looking for. It's important to remember that my responses are generated based on patterns in the data I was trained on and may not always be completely accurate or up-to-date.Quindi sì. Quello. "Grandi quantità di testo da Internet." Andate avanti, gente. Niente da vedere qui.






