Website-Suche

Ich verwende ChatGPT, um Code schneller zu reparieren, aber zu welchem Preis?


ChatGPT spart mir sicherlich Zeit, aber gleicht das den Zeitverlust aus?

Anfang dieser Woche habe ich Ihnen gezeigt, wie ChatGPT ein komplettes WordPress-Plugin erstellen kann, das eine bestimmte, wenn auch etwas rudimentäre Funktionsspezifikation erfüllt. Jetzt teste ich ChatGPT weiter, um ein Gefühl dafür zu bekommen, ob es ein hilfreiches Tool sein kann - in diesem Fall, um mir dabei zu helfen, technische Anleitungen zu erhalten.

Wie bei früheren Erkundungen von ChatGPT schreibe ich in Klartext oder Fettschrift und die Antworten der KI sind kursiv. Zuerst zeige ich Ihnen die Fragen und Antworten, dann bespreche ich die Auswirkungen.

Änderungen der Programmiersprache verstehen

Mein Hosting-Anbieter stellt alle seine Websites vom sehr veralteten PHP 7.4 auf PHP 8 um. PHP ist eine Web-Programmiersprache, auf der WordPress und eine Reihe anderer Web-Management-Tools basieren. Ich hatte ein paar Plugins, die nicht mit PHP 8 kompatibel waren, und ich wollte herausfinden, welche Aspekte ihres Codes ich finden und reparieren musste.

Normalerweise würde ich mich auf der PHP.net-Website umsehen, eine Reihe von Google-Suchanfragen durchführen und die Kommentare in StackExchange durchstöbern, um herauszufinden, welche Programmierarbeit ich leisten müsste. Aber das ist ein etwas chaotischer und zeitaufwändiger Prozess. Stattdessen stellte ich eine detaillierte, direkte Frage an ChatGPT und erhielt eine sehr nützliche Antwort, einschließlich Blöcken mit anschaulichem Code.

Ich habe Probleme mit der PHP-Extraktfunktion, die einen schwerwiegenden Fehler ausgibt, wenn kein Array übergeben wird. In PHP 7.4 habe ich den Fehler nicht erhalten, wohl aber in PHP 8. Hat sich der Extrakt für PHP 8 geändert?

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.

Wie sich herausstellte, war die Antwort von ChatGPT äußerst hilfreich und ich hatte den Fehler innerhalb weniger Minuten behoben. Ein großer Teil der Behebung dieses Fehlers bestand darin, zu wissen, wo man suchen musste. ChatGPT hat klargestellt, wie sich das Verhalten der Funktion zwischen den PHP-Versionen verändert hat.

Da ich versuchte, das gesamte Plugin, das ich auf die neue Version migrierte, zukunftssicher zu machen, habe ich auch Folgendes gefragt:

Welche PHP-Funktionen werden bei der Umstellung von PHP 7.4 auf PHP 8 wahrscheinlich kaputt gehen?

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:
  • Die Funktion extract() löst, wie in der vorherigen Antwort erwähnt, jetzt einen schwerwiegenden Fehler aus, wenn ihr kein Array übergeben wird.
  • Die Funktion each() wurde in PHP 8.0 entfernt. Sie können stattdessen foreach oder array_keys() und current() verwenden.
  • Die Funktion create_function() wurde in PHP 8.0 entfernt. Es wird empfohlen, stattdessen anonyme Funktionen zu verwenden.
  • Das Konstrukt list() gibt bei Verwendung mit foreach jetzt den Schlüssel und den Wert als separate Variablen und nicht als einzelnes Array zurück.
  • Die Funktion __autoload() wurde in PHP 8.0 entfernt. Sie sollten stattdessen spl_autoload_register() verwenden.
  • Die Variable $php_errormsg wurde in PHP 8.0 entfernt. Sie sollten stattdessen die Funktion error_get_last() verwenden.
  • Einige der Verwerfungen in früheren PHP-Versionen werden jetzt in PHP 8.0 entfernt. Insbesondere werden create_function(), each(), __autoload() und $php_errormsg entfernt.
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.

Beachten Sie, dass ChatGPT den Ausdruck „wie in der vorherigen Antwort erwähnt“ verwendet hat. Es ist in der Lage, die Antworten im Gespräch zu verfolgen. Das ist „wow“ und beängstigend zugleich.

In dem Code, den ich überarbeitete, stellte sich heraus, dass der ursprüngliche Entwickler (der schon lange nicht mehr im Bilde war) create_function häufig verwendete. Mir war nicht klar, dass das veraltet war. Aber mit der nützlichen Liste oben habe ich einfach den Code durchsucht und gefunden, was aktualisiert und neu geschrieben werden musste. Dann habe ich ChatGPT gebeten, mir Möglichkeiten zu zeigen, diese Funktion zu ersetzen.

Was ist eine gute Möglichkeit, Code mit create_function in PHP neu zu schreiben? Können Sie mir ein Beispiel mit create_function und dann eines mit dem derzeit richtigen Mechanismus geben?

create_function ist eine veraltete Funktion in PHP, die zum Erstellen anonymer Funktionen verwendet wurde. Es wird nicht mehr empfohlen, diese Funktion zu verwenden, da sie in PHP 8.0 entfernt wurde. Stattdessen können anonyme Funktionen, auch Schließungen genannt, mit dem Schlüsselwort function erstellt werden.

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.

Wie sich herausstellte, war das eine sehr klare Erklärung und ich konnte den Code schnell entsprechend umschreiben. Dieses Plugin läuft jetzt problemlos in der neuen PHP 8-Umgebung meines Hosting-Anbieters.

Technischer Support für MacOS

Als ich meinen Artikel über die Gefahren der Optimierung des Mac-Speichers recherchierte, hatte ich auch einige Fragen. Wie mein Artikel zeigte, habe ich einige Tests durchgeführt, um einige meiner Bedenken zu bestätigen. Aber um meine Recherche schnell einzugrenzen, habe ich ChatGPT Folgendes gefragt:

Wenn Sie die MacOS-Funktion „Mac-Speicher optimieren“ verwenden, führt Time Machine dann unvollständige Sicherungen durch, weil einige Dateien nur als Stubs auf dem lokalen Computer dargestellt werden?

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.

Das war eine richtige Antwort.

Implikationen

Nun, es hat auf jeden Fall Zeit gespart. Normalerweise beinhaltet das Programmieren im Internet einen Tanz zwischen der Codierungs- und Debugging-Umgebung und vielen inkrementellen Websuchen, bei denen Hinweise aufgespürt und Diskussionen und Kommentare gelesen werden.

Versteh mich nicht falsch. Dieser Prozess kann sehr aufschlussreich sein, und in den Kommentaren, die Sie von einem Chatbot nie erhalten, steckt eine Menge Folklore. Aber es ist keine effiziente Zeitnutzung, wenn Sie in Eile sind oder eine kritische Frist einhalten müssen. Es erwies sich als sehr effizient, diese Codierungsfragen an ChatGPT zu stellen.

Wie bei allem, was mit KI zu tun hat, muss man sich darüber im Klaren sein, dass es Lücken im Wissen der KI gibt und dass man durchaus völlig falsche Antworten erhalten kann. Aber die Verwendung von ChatGPT als unkompliziertes Tool wie jedes andere Tool in meiner Toolbox erwies sich als recht produktiv.

Ich frage mich allerdings, woher es seine Informationen hat. Gibt es da draußen einen Autor wie mich, der einen äußerst informativen Artikel über extract oder create_function geschrieben hat, dessen Worte von ChatGPT ohne Quellenangabe oder Monetarisierung in eine Antwort „gesponnen“ werden? Wird das hart erarbeitete Wissen von jemandem als nicht im Abspann aufgeführtes Quellenmaterial für diese Antworten verwendet?

Darüber mache ich mir Sorgen. Zumindest bei Google haben Autoren eine Chance, dass die Suchmaschine im Gegenzug für die Weitergabe dieser Informationen Traffic auf den Artikel sendet. Aber bei einem Chatbot wie ChatGPT geht der ursprüngliche Thread verloren. Klar, ich hatte den Produktivitätsvorteil einer schnellen Antwort. Aber hat irgendjemand da draußen die Namensnennung für seine Arbeit verloren?

Bleiben Sie dran. Dieser Aufschwung der generativen KI schlägt große Wellen. Bleiben Sie bei mir und ZDNET, während wir versuchen, uns darüber im Klaren zu sein, was es für uns alle bedeutet.

ChatGPT, wenn Sie eine Frage beantworten, nehmen Sie dann Wissen mit, das andere beigesteuert haben, und entziehen Sie den ursprünglichen menschlichen Quellen Arbeit und Anerkennung?

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.

Also, ja. Das. „Riesige Textmengen aus dem Internet.“ Macht weiter, Leute. Hier gibt es nichts zu sehen.

Verwandte Artikel