Kürzlich gaben mir mehrere Leute Amway ChatGPT und sagten: Lao Liu, schau es dir bitte an. Dieses Produkt ist so leistungsstark, dass wir Programmierer vielleicht alle unseren Job verlieren werden.
Ich habe zuerst leicht gelächelt, wie ist das möglich? Meine bisherige Ansicht war immer, dass KI in meinem Leben niemals in der Lage sein wird, Programmierer zu töten.
Aber es gibt so viele Leute, die Amway verkaufen, dass ich nicht anders kann, als ein Konto zu eröffnen und einen Blick darauf zu werfen.
Ich hatte nicht erwartet, dass dieses Produkt nicht für China geöffnet ist. Da es einige Anleitungen im Internet gibt, habe ich schnell meinen guten Freund im Ausland angerufen und ihn gebeten, bei der Registrierung eines Kontos zu helfen.
Beim Versuch, loszulegen, habe ich beschlossen, diese einfachen Fragen und Antworten zu überspringen, wie zum Beispiel:
Wie kehrt man eine Zeichenfolge um?
Wie tätige ich einen HTTP-Anruf?
Denn so etwas ist zu kindisch für eine KI, die unzählige Codes gelesen hat, und es ist unmöglich zu testen, wie mächtig es ist.
Eine der Kernfähigkeiten eines Programmierers besteht darin, Anforderungen zu erfassen und elegante Designs erstellen zu können.
Lassen Sie mich zunächst eine einfache Frage stellen:
(Klicken Sie, um das größere Bild zu sehen)
Wie erwartet hat es sich sehr gut „rezitiert“!
Das letzte Prinzip lautet: Versuchen Sie, Synthese/Aggregation anstelle von Vererbung zu verwenden, um eine Wiederverwendung zu erreichen. Dies ist in der Tat ein wichtiges Designprinzip der Objektorientierung.
Kann ChatGPT ein solches Prinzip anwenden?
Fragen Sie zuerst, ob es Design kann:
Das ist wirklich gut, fangen wir an, die Strategie zu erweitern: Ich habe zufällig einen klassischen Fall zur Hand: Gehaltszahlung, der dem klassischen Buch entnommen ist „Agile Software“-Entwicklung: Prinzipien, Muster und Praktiken.
Die Anforderungen dieses Falles sind wie folgt:
Das System besteht aus einer Unternehmensdatenbank und mitarbeiterbezogenen Daten. Das System muss die Mitarbeiter pünktlich und gemäß den Regeln bezahlen
Es gibt drei Arten von Arbeitnehmern
1. Stundenarbeiter haben einen festen Stundenlohn. Sie legen jeden Tag eine Arbeitszeitkarte vor, auf der das Datum und die Anzahl der geleisteten Arbeitsstunden aufgeführt sind 1,5-fach bezahlt. Sie werden jeden Freitag bezahlt.2. Mitarbeiter mit monatlichem Gehalt haben ein festes Gehalt und werden am letzten Arbeitstag eines jeden Monats bezahlt.
3 Verkäufe Für Provisionen legen sie Verkaufsbelege vor, auf denen das Datum und die Menge des Verkaufs aufgeführt sind. Sie werden jeden zweiten Freitag bezahlt.
Mitarbeiter können die Zahlungsmethode wählen. Sie können den Scheck an ihre angegebene Postadresse senden, ihn in der Finanzabteilung hinterlegen und jederzeit abheben oder eine direkte Einzahlung auf ihr angegebenes Bankkonto beantragen.
Nach dem Lesen dieser Anforderung sieht das allgemeine Design wie folgt aus:
Employee wird als Basisklasse verwendet und von verschiedenen Arten von Mitarbeiterklassen geerbt.
Aber diese Anforderung wird sich ändern. Der Kunde verlangt, dass der Mitarbeitertyp geändert werden kann, zum Beispiel von Stundenlohnmitarbeiter zu Monatslohnmitarbeiter, sodass das obige Design nicht funktioniert. Zu diesem Zeitpunkt sollten Sie eine Abstraktion erstellen, eine Klasse PaymentClassification verwenden, um die Zahlungsklassifizierung auszudrücken, und dann die Employee-Klasse diese Instanz halten lassen. Einfach ausgedrückt: Verwenden Sie Kombination anstelle von Vererbung. Dies entspricht einer Falle Können unsere Programmierer dieses ChatGPT identifizieren und abstrahieren? Ich bin wirklich neugierig. Fragen Sie zuerst nach den anfänglichen Anforderungen. Die Antwort von ChatGPT lautet wie folgt: (Klicken Sie, um das größere Bild zu sehen) Sagen Sie es mir nicht, es hat die Anforderungen wirklich „verstanden“. Sie werden zum Entwerfen von Klassen verwendet und die Vererbungsbeziehungen von Klassen werden entworfen. Hat die primäre Ebene des objektorientierten Designs erreicht. Der nächste Schritt besteht darin, ein Loch für ihn zu graben: Es ist erstaunlich, dieser Typ hat tatsächlich Abstraktion gelernt! Obwohl der abstrakte Typ, den er abstrahiert, „EmployeeType“ heißt und nicht so präzise ist wie „PaymentClassification“, ist die allgemeine Richtung dieselbe: Verwenden Sie „EmployeeType“, um Zahlungsregeln zu verwalten. Wenn sich der Mitarbeitertyp ändert, muss sich die Klasse „Employee“ nicht ändern. Um ehrlich zu sein, war ich sehr überrascht, als ich sah, dass es dieses Ergebnis lieferte. Man kann sagen, dass es einige Programmierer übertreffen kann. Als nächstes habe ich es noch einmal gefragt, wie es mit dem Zahlungszyklus umgehen soll: Dieses Mal war seine Abstraktion noch leistungsfähiger und es gab direkt den genauen Namen: PaymentSchedule sowie den zugehörigen Pseudocode! Es wurde auch ausdrücklich erwähnt, dass Sie, wenn Sie den Zahlungszyklus ändern müssen, nur den Zahlungsplan ändern müssen, ohne die ursprüngliche Mitarbeiterklasse zu ändern. Zusammensetzung ist besser als Vererbung, was sich erneut widerspiegelt. Zahlungsmethode: Ich bin ein wenig enttäuscht und möchte es hier nicht ausprobieren. Dieses ChatGPT ist wirklich leistungsstark, zeigt starke Designfähigkeiten und der Konversationsprozess verläuft sehr reibungslos. Gewerkschaftsmitglied? Während dieses Gesprächs habe ich ihm dieses Konzept nie erzählt! Woher wusste es das? Die wahrscheinlichste Sache ist, dass dieses Ding die Bedürfnisse, die ich ihm gesagt habe, nicht verstanden hat. Es hätte diesen Fall vorher studieren sollen, und es hat immer noch „rezitiert“, was es gelernt hat aus mir heraus, Das hat die Wahrheit ans Licht gebracht Ich habe die ChatGPT-Website geschlossen, mich erneut angemeldet und erneut mit demselben Inhalt interagiert. Dieses Mal wurde das Ergebnis vollständig angezeigt. Haben Sie gesehen, dass PaymentClassification/EmployeeType dieses Mal überhaupt nicht abstrahiert wurde? Es wurde tatsächlich eine prozessorientierte Idee empfohlen, ein Typattribut hinzuzufügen und den Schalter zu verwenden, um das Problem zu lösen. Das ist viel schlimmer als der vorherige Plan. Lass uns zum Schluss über deine Gefühle sprechen! ChatGPT ist in der Tat sehr leistungsfähig und hat eine Menge Daten im Bauch, aber es besteht immer noch kein wirklicher Bedarf an Verständnis. Die Antwort besteht darin, vorhandenes Wissen zu verfeinern und zu integrieren. Wenn Sie ein völlig neues Domänenproblem annehmen, wird es wahrscheinlich verwirrt sein. Sie können mit tatsächlichen Geschäftsproblemen spielen. ChatGPT ist also ein guter Helfer, aber wenn Sie sich vollständig darauf verlassen möchten, müssen Sie sorgfältig abwägen. Was es Ihnen sagt, kann eleganter Code oder Junk-Code sein.
Das obige ist der detaillierte Inhalt vonDie leistungsstarken Programmierfunktionen von ChatGPT haben mich ins Schwitzen gebracht!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!