Recherche de site Web

J'utilise ChatGPT pour m'aider à corriger le code plus rapidement, mais à quel prix ?


ChatGPT me fait certainement gagner du temps, mais est-ce que cela compense ce qui est perdu dans le processus ?

Plus tôt cette semaine, je vous ai montré comment ChatGPT pouvait créer un plugin WordPress complet répondant à une spécification fonctionnelle spécifique, quoique quelque peu rudimentaire. Maintenant, je continue mes tests de ChatGPT pour savoir s'il peut être un outil utile - dans ce cas, pour m'aider à obtenir des conseils techniques.

Comme je l'ai fait lors d'explorations précédentes de ChatGPT, mon écriture est en texte brut ou en gras, et les réponses de l'IA sont en italique. Tout d'abord, je vais vous montrer les questions et les réponses, puis je discuterai des implications.

Comprendre les changements de langage de programmation

Mon fournisseur d'hébergement déplace tous ses sites du très obsolète PHP 7.4 vers PHP 8. PHP est un langage de programmation Web sur lequel s'appuient WordPress et un certain nombre d'autres outils de gestion Web. J'avais quelques plugins qui n'étaient pas compatibles avec PHP 8 et je voulais identifier les aspects de leur code que je devrais trouver et corriger.

Normalement, je fouille sur le site PHP.net, je fais un tas de recherches sur Google et je fouille dans les commentaires dans StackExchange pour découvrir quel travail de programmation je devrais faire. Mais c’est un processus un peu compliqué et long. Au lieu de cela, j'ai posé une question détaillée et directe à ChatGPT et j'ai obtenu une réponse très utile, comprenant des blocs de code illustratif.

J'ai des problèmes avec la fonction d'extraction PHP qui génère une erreur fatale lorsqu'un tableau n'est pas transmis. En PHP 7.4, je n'ai pas eu l'erreur, mais il semble que ce soit le cas en PHP 8. L'extraction a-t-elle changé pour 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.

Il s'est avéré que la réponse de ChatGPT a été extrêmement utile et j'ai corrigé ce bug en quelques minutes. Une grande partie de la résolution de ce bug consistait à savoir où chercher. ChatGPT a clarifié comment le comportement de la fonction a changé entre les versions de PHP.

Puisque j'essayais de pérenniser l'ensemble du plugin, je passais à la nouvelle version, j'ai également demandé ceci :

Quelles fonctions PHP sont susceptibles de tomber en panne lors du passage de PHP 7.4 à 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 fonction extract(), comme mentionné dans la réponse précédente, renvoie désormais une erreur fatale si aucun tableau ne lui est transmis.
  • La fonction each() a été supprimée dans PHP 8.0. Vous pouvez utiliser foreach ou array_keys() et current() à la place.
  • La fonction create_function() a été supprimée dans PHP 8.0. Il est recommandé d'utiliser plutôt des fonctions anonymes.
  • La construction list(), lorsqu'elle est utilisée avec foreach, renvoie désormais la clé et la valeur sous forme de variables distinctes, plutôt que dans un seul tableau.
  • La fonction __autoload() a été supprimée dans PHP 8.0. Vous devriez utiliser spl_autoload_register() à la place.
  • La variable $php_errormsg a été supprimée dans PHP 8.0. Vous devriez plutôt utiliser la fonction error_get_last().
  • Certaines des dépréciations des versions précédentes de PHP sont désormais supprimées dans PHP 8.0. Plus précisément, create_function(), each(), __autoload() et $php_errormsg sont supprimés.
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.

Notez que ChatGPT a utilisé l'expression « comme mentionné dans la réponse précédente ». Il est capable de garder une trace des réponses dans la conversation. C'est à la fois "wow" et effrayant.

Dans le code que j'étais en train de réviser, il s'est avéré que le développeur d'origine (qui est depuis longtemps absent) utilisait beaucoup create_function. Je n'avais pas réalisé que cela était obsolète. Mais avec la liste utile ci-dessus, j'ai simplement recherché le code et trouvé ce qui devait être mis à jour et réécrit. J'ai ensuite demandé à ChatGPT de me montrer des moyens de remplacer cette fonction.

Quel est le bon moyen de réécrire du code à l’aide de create_function en PHP ? Pouvez-vous me donner un exemple utilisant create_function, puis un autre utilisant le mécanisme actuellement approprié ?

create_function est une fonction obsolète en PHP qui était utilisée pour créer des fonctions anonymes. Il n'est plus recommandé d'utiliser cette fonction car elle a été supprimée dans PHP 8.0. Au lieu de cela, des fonctions anonymes, également appelées fermetures, peuvent être créées à l'aide du mot-clé function.

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.

Il s’est avéré que c’était une explication très claire et j’ai pu réécrire rapidement le code de manière appropriée. Ce plugin fonctionne désormais sans problème dans le nouvel environnement PHP 8 de mon fournisseur d'hébergement.

Assistance technique MacOS

Alors que je recherchais mon article sur les dangers de l'optimisation du stockage Mac, j'avais également quelques questions. Comme mon article l’a montré, je suis allé sur place et j’ai fait quelques tests pour valider certaines de mes préoccupations. Mais pour affiner rapidement mes recherches, j'ai demandé à ChatGPT ceci :

Si vous utilisez la fonctionnalité MacOS Optimiser le stockage Mac, Time Machine effectuera-t-il des sauvegardes incomplètes car certains fichiers ne sont représentés que sous forme de stubs sur la machine 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.

C'était une bonne réponse.

Conséquences

Eh bien, cela a certainement fait gagner du temps. Normalement, la programmation sur Internet implique une danse entre l'environnement de codage et de débogage, et de nombreuses recherches Web incrémentielles où des indices sont recherchés et des discussions et commentaires sont lus.

Ne vous méprenez pas. Ce processus peut être très instructif, et il y a beaucoup de folklore enfoui dans ces commentaires que vous n'obtiendrez jamais d'un chatbot. Mais ce n'est pas une utilisation efficace du temps lorsque vous êtes pressé ou que vous devez respecter une date limite critique. Poser ces questions de codage de ChatGPT s'est avéré très efficace.

Comme pour tout ce qui concerne l'IA, vous devez être conscient qu'il existe des lacunes dans les connaissances de l'IA et que vous pourriez très bien obtenir des réponses complètement fausses. Mais utiliser ChatGPT comme un outil simple comme n’importe quel autre outil de ma boîte à outils s’est avéré très productif.

Je me demande cependant d'où il tire ses informations. Existe-t-il un écrivain comme moi qui a écrit un article très informatif sur extract ou create_function dont les mots sont « transformés » en réponse par ChatGPT sans crédit ni monétisation ? Les connaissances durement acquises de quelqu'un sont-elles utilisées comme source non créditée pour ces réponses ?

Cela m'inquiète. Au moins avec Google, les auteurs ont une chance que le moteur de recherche envoie du trafic vers l'article en échange du partage de ces informations. Mais avec un chatbot comme ChatGPT, le fil de discussion original est perdu. Bien sûr, j'ai bénéficié de l'avantage de productivité d'une réponse rapide. Mais est-ce que quelqu’un a perdu l’attribution de son travail ?

Restez à l'écoute. Cette montée en puissance de l’IA générative fait de grandes vagues. Restez avec moi et ZDNET pendant que nous essayons de comprendre ce que cela signifie pour nous tous.

ChatGPT, lorsque vous répondez à une question, utilisez-vous les connaissances apportées par d'autres et enlevez-vous le travail et le crédit des sources humaines d'origine ?

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.

Alors oui. Que. "De grandes quantités de textes provenant d'Internet." Avancez les amis. Rien à voir ici.

Articles connexes