Glauben Sie nicht den Nachrichten im Internet über "einen Mann, der nicht programmieren kann und mit Windsurf eine Million Dollar im Monat verdient hat", er weiß vielleicht nicht wirklich, wie man programmiert, aber sein Vater schon. Wenn man keine Ahnung vom Programmieren oder gar von Englisch hat, ist es wirklich schwer, ein komplettes Programm zu schreiben. Das Internet ist voll von Leuten, die wissen, wie man programmiert und einem beibringen, wie man Windsurf im wirklichen Leben benutzt, und es ist schwer für Leute, die nicht wissen, wie man programmiert, Windsurf im wirklichen Leben zu benutzen, und viele Nachrichten sagen, dass man, auch wenn man nicht weiß, wie man programmiert, Windsurf benutzen kann, um Anwendungen zu schreiben, also ist es genau wie die Rashomon-Tür... In diesem Fall weiß ich nicht, wie man programmiert, ich kann es versuchen...
Dieses Papier benötigt 2 Tage und nicht weniger als 500 Dialogrunden, um eine Reihe von Wechselkursrechnern zu implementieren, einschließlich Front- und Backend. Die gesamte Implementierung verwendet nur Windsurfen Dialog. In diesem Artikel geht es darum, wie Menschen, die keine Ahnung vom Programmieren haben, vollständige Anwendungen schreiben könnenwas man aus seinen Fehlern lerntbietet kein vollständiges Betriebsverfahren.
Die wichtigsten Funktionen sind die folgenden:
- Vollständige Front-End-Seite (Multi-Device-Anpassung)
- HomeMultistrategie für die Beschaffung von Wechselkurswerten (Datenbankbeschaffung, alternative API-Beschaffung, Beschaffung der letzten Wechselkursaktualisierung in der Datenbank)
- Lesen und Schreiben von Datenbanken (verkettete Tabellenabfragen)
- Mehrere zeitgesteuerte Aufgabenskripte zum Sammeln von Wechselkurs- und Nachrichtendaten, die in die Datenbank geschrieben werden sollen (und Implementierung einer Dateisperrlogik)
- Kapselung der Wechselkursabfrage-API, Kapselung der gemeinsamen Funktionsaufrufmethoden
- Mechanismus zur Zwischenspeicherung von Dokumenten
- Lokale Textdatei-Suche
- Detaillierte Dateifehlerprotokollierung
- Seite pseudo-statisch
Populärwissenschaftliche Komponente
Wer sollte Windsurf nutzen?
- Nicht-Programmierer, wenn Programmierern empfohlen wird, die Cursor .
- Sie kennen die grundlegenden technischen Begriffe, z. B. Datenbank, Tabelle, Feld, API, Cache, Klasse, Front-End, Domänenname usw..
- Beteiligung am gesamten Prozess der Website-Erstellung: nicht beschränkt auf Front- und Backend-Techniker, Betrieb, Produkt, Marketing, Tests usw...
- Sie verfügen über ein grundlegendes Konzept des "Fachgebiets" und können die Kenntnisse ihres Fachgebiets gut zusammenfassen und schriftlich beschreiben.
Wofür kann Windsurf außer zum Schreiben von Bewerbungen noch verwendet werden?
- Auf der Grundlage des automatischen Lesens von lokalen Mehrfachdateien und der Agentenfähigkeiten kann Windsurf als hervorragendes Werkzeug zur lokalen Textzusammenfassung und Stapelverarbeitung verwendet werden.
- Schreiben von automatisierten Laufzeitskripten, die für die Erledigung verschiedener lokaler Aufgaben benötigt werden, wie z. B. das Schreiben eines Bat-Skripts und dessen automatische Ausführung.
- Der beste Mentor für das Erlernen des Programmierens, der die Anforderungen an das Programmieren vorstellt und Sie dann über die Aufgaben bei jedem Schritt und die Art und Weise, wie sie zu erreichen sind, informiert.
- Nicht-standardisierte automatisierte Tests, ob für Techniker oder Tester, können Code importieren und dann Windsurf eine Funktion nachverfolgen lassen oder den kompletten Code lesen, um einen Testplan zu schreiben und Testfälle halbautomatisch auszuführen.
Wie lernt man die Grundbegriffe des Windsurfens?
Windsurf Chinese tutorial, Windsurf Installation und Verwendung Methode
Suchen Sie nach "vscode"-bezogenen Tutorials, denn Windsurf ist eine modifizierte Version von vscode, die grundlegende Betriebslogik ist ähnlich.
Was ist der größte Unterschied zwischen Windsurf und Copilot?
Der Standard-Schreibmodus von Windsurf führt Aufgaben proaktiv und diskret aus, eher wie ein Angestellter, der proaktiv nach Lösungen sucht, um die Arbeit abzuschließen, nachdem der Chef ein grundlegendes Problem aufgeworfen hat. Natürlich ist Windsurf in der Kaskade auch für Freunde geeignet, die den Code lesen und verstehen können, darauf gehen wir hier nicht ein.
Der Kopilot ist eher ein stiller und unaufgeforderter Assistent, der schweigt, bis Sie ihm eine klare Aufgabe geben, aber wenn er eine klare Aufgabe hat, wird er gute Arbeit leisten.
Muss ich eine kostenpflichtige Version von Windsurf kaufen, um es zu benutzen?
Um die kostenpflichtige Version zu kaufen, erlaubt die kürzlich aktualisierte kostenlose Version des Plans nur die Verwendung des Basismodells, das weniger effektiv ist. Selbst der Kauf der kostenpflichtigen Version schränkt die Nutzung derzeit ein.
Die kostenlose Version ist aufgrund der eingeschränkten Möglichkeiten des Basismodells nicht für Personen geeignet, die das Programm nicht kennen.
Zwei Arten von Windsurf?
Write ist für das Schreiben/Ausführen von Code zuständig; Chat ist für den Dialog zuständig und schreibt keinen Code, was wichtig ist.
Windsurf-Begleitprogrammierung für Einsteiger
Wenn Sie Windsurf verwenden, um Code zu schreiben, ist es notwendig, eine unterstützende Programmierumgebung zu haben, die es Windsurf ermöglicht, verschiedene Arten von Operationen auszuführen, und die es Ihnen erlaubt, die Implementierung des Codes in Echtzeit zu überprüfen.
Da Sie ein Anfänger sind, wissen Sie bestimmt nicht, wie man eine Programmierumgebung erstellt, oder folgen Sie einem sehr schwierigen Tutorial, um sie zu erstellen. Das lästigste Problem beim Aufbau der Umgebung ist, dass die meisten Menschen, die Windows-System verwenden, um die Programmierumgebung lokal zu bauen mehr Ausnahmen, sowie endlose Debugging alle Arten von abhängigen Ressourcen begegnen wird.
Noch beängstigender ist, dass Sie Windsurf nicht trauen können, Ihren Computer zu bedienen, indem Sie lokale Befehle ausführen. Dies kann Ihren privaten Computer unvorhergesehenen Problemen aussetzen.
Die von mir angegebene Lösung lautet wie folgt:
Kaufen Sie einen Server, automatisieren Sie die Einrichtung des Pagoda-Panels und merken Sie sich das Root-Konto und das Passwort für die SSH-Verbindung. Wenn Sie explizit eine PHP+MYSQL-Kombination verwenden, dann erstellen Sie diese im Voraus im Pagoda-Panel (lassen Sie Windsurf nicht die Basisumgebung erstellen).
Um hier, wenn Sie nicht die oben genannten grundlegenden Umfeld auf ihre eigenen bereitstellen können, wird empfohlen, dass ihre eigenen Baidu.
Starten Sie Windsurf, um Ihr erstes Projekt zu erstellen
1 Wenn Sie Windsurf erfolgreich installiert haben, können Sie das chinesische Plug-in herunterladen:Codeium Windsurf richtet eine chinesische Schnittstelle mit einem einzigen chinesischen Erweiterungsplugin ein.
2. im Pagodenpanel ein Webverzeichnis erstellen, hier wähle ich die Kombination PHP + MYSQL
3. verwenden Sie SSH, um sich mit dem entsprechenden Webverzeichnis des Remote-Servers zu verbinden.
So stellen Sie eine Verbindung zu einem Remote-Server her: Starten Sie die Software, wählen Sie Connetc und dann SHH Host...
4. das SSH-Konto (normalerweise root) und die Serveradresse eingeben
5 Geben Sie das Passwort für das Root-Konto ein und bestätigen Sie mit der Eingabetaste.
6 Es überrascht nicht, dass das "Verzeichnis", mit dem Sie standardmäßig verknüpft sind, nicht das richtige ist, und Sie können den zuvor erstellten Ordner hier nicht sehen.
7 Suchen Sie den Speicherort des Ordners.
Hier wird das kostenlose kleine Modell gewählt, um Fragen zu stellen, damit keine Credits verbraucht werden und die absolute Position des Katalogs ermittelt werden kann.
7. wählen Sie: Datei - Profil verwenden - Neues Fenster - Neues Profil
Klicken Sie auf Erstellen (es ist auch möglich, ein Verzeichnis zu Standard hinzuzufügen).
Klicken Sie auf Ordner hinzufügen und geben Sie die Adresse des Verzeichnisses ein: www/wwwroot/huilv.haoai.us.kg, bestätigen Sie.
9. wählen Sie In neuem Fenster öffnen (Sie werden aufgefordert, Ihr Passwort erneut einzugeben)
10. in das richtige Verzeichnis, dann können wir den Projektcode formell schreiben!
(Dies ist das Verzeichnis, in dem der Code geschrieben wurde. Standardmäßig sollte das Verzeichnis leer sein oder nur eine nutzlose Konfigurationsdatei enthalten, die nicht gelöscht werden muss)
Vorbereitung auf die formale Erstellung des Antrags
Fragen stellen
Es ist in Ordnung, andere große Modelldialogwerkzeuge für den Befragungsprozess zu verwenden, was die Notwendigkeit für Windsurf, Code zu generieren, vermeidet, aber die Verwendung von Windsurf für mehrere Dialogrunden ermöglicht es, eine nützlichere Geschichte zusammenzufassen.
1. wie man Echtzeit-Wechselkursinformationen erhält
2. mir bei der Gestaltung einer Website zur Abfrage von Wechselkursen zu helfen
3. eine Website-Architektur gemäß PHP+MYSQL entwerfen
...
Dokumente ordnen
1. das Passwort des Datenbankkontos als .md-Datei organisiert
2.Frage in der verfügbaren Wechselkursabfrage API und KEY und Schnittstellenbeschreibungsdokument als .md Dokument organisiert
3. die Front-End-Architektur der Website in der Frage erhalten wird als .md Dokument organisiert (die Back-End-Architektur kann ich nicht entwerfen überhaupt, kann ich nicht klar denken, so dass ich nicht ein Dokument erstellen)
Diese Dokumente können verwendet werden, um Windsurfs Kontext zu schreiben oder um ein Dokument als Windsurfs Kontext zu spezifizieren, um beim Schreiben von Code zu helfen.
Überprüfung der minimalen funktionalen Implementierungslogik
Test 1: Verwenden Sie den API-Zugang, um den vollständigen Währungsnamen der Wechselkursschnittstelle zu erhalten, der in der Datenbank hinterlegt ist.
Test 2: Verwenden Sie den API-Zugriff, um einen Währungsnamen aus der Datenbank abzurufen, den Wechselkurs für diese Währung anzufordern und ihn in der Datenbank zu speichern.
Test 3: ...
In der Aufforderung heißt es, dass es sich um einen einfachen Test handelt, bei dem minimale funktionale Testfälle erstellt und einmal ausgeführt werden, wobei das endgültige Erfolgskriterium für die Validierung eine Abfrage an die Datenbank mit validierten Daten ist.
Anforderung, die Kernfunktionalität nach dem Testen zusammenzufassen: fassen Sie den Kernausführungscode zusammen, den Sie nach erfolgreichem Testen jeder Mindestfunktionalität erhalten (ich verstehe die Bedeutung der einzelnen Codeteile nicht wirklich)
Nach einem erfolgreichen Test werden Sie aufgefordert, den gesamten generierten Code und die Datenbank zu löschen. Die Fähigkeit von Windsurf, jeden beliebigen Remote-Server-Befehl auszuführen, ist eine wichtige Funktion für Einsteiger.
Beschreibung:
Ich habe viel getestet, um die Minimalfunktionalität zum Laufen zu bringen, denn ich kenne mich mit Code nicht aus, die ganzen Schnittstellen, die entworfene Funktionalität ist für mich nicht glaubwürdig, bis zu dem Punkt, an dem ich nicht einen kompletten Satz von Front- und Backend-Code schreiben wollte, um ihn visuell zu validieren, weil die Erzeugung von zu viel Code das Projekt daran hindert, richtig voranzukommen.
Gleichzeitig dokumentierte ich die Ausführungslogik (von der API angeforderte Methoden) in der Minimalfunktionalität, sowie die Datenbanktabellen, die in meiner Dokumentation aufgebaut, ergänzt und organisiert wurden.
Formale Vorbereitung von Anträgen
Ich habe Windsurf gar nicht erst gebeten, das gesamte Frontend oder gar die Startseite zu erstellen, obwohl ich im Vorfeld klare Anweisungen vorbereitet hatte, die ich Windsurf zur Verfügung stellen konnte, damit er sie genau umsetzen konnte.
Erkenntnis 1: Es kommt darauf an, von welchem Funktionspunkt aus Sie Ihren Code aufbauen
Schreiben Sie eine visuelle Front-End-Schnittstelle für die Kernfunktionalität (Wechselkursabfrage-API). Die Felder dieser Schnittstelle sollten mit der Datenbank übereinstimmen, die Felder so detailliert wie möglich sein, auch wenn die visuelle Front-End-SeiteSie ist nicht dazu bestimmt, Besuchern zugänglich zu sein.Machen Sie es auch zuerst.
Wenn auf die Seite normal zugegriffen werden kann, bedeutet dies, dass die im Code verwendete Methode korrekt ist und auch die Daten in der Datenbank korrekt sind, die als Referenz für die später zu erstellenden tatsächlichen Seitenverweise verwendet werden können. Die gesamte Anwendung kann nach Abschluss des Aufbaus dieser Seite gelöscht werden.
So erhalte ich die folgenden zwei Seiten:
Tipp 2: Nutzen Sie die Möglichkeit des "Zitierens", um Fragen zu stellen
Basierend auf Erkenntnis 1, nicht ein komplettes Projekt am Anfang zu bauen, und Windsurf-Initiative ist zu stark, so dass die Frage schlägt vor, die Eingabeaufforderung "Seite Liste anzeigen, nur Anzeige Felder: XX\XX\XX".
angeboten@
Funktionen sind sehr nützlich, Sie können schnell auf Ordner, Dateien, Klassen verweisen
Erkenntnis 3: Stellen Sie gute Fragen
Dies ist die Seite, die im vorherigen Schritt erstellt wurde, und ich habe einige Fragen dazu
Frage 1: Sagen Sie mir, ob ich weitere Inhalte hinzufügen kann
Frage 2: Wie sieht es mit der Code-Effizienz aus?
Frage 3: Erzählen Sie mir etwas über die Methode der Umsetzung
Frage 4: Können Sie mir sagen, ob es irgendwelche Optimierungsvorschläge für meine Anforderung "Dies ist eine Liste der erfassten Wechselkurse" gibt?
Fazit 4: Großartige Möglichkeiten, Code effizient zu verwalten und die Erzeugung von Spam-Code zu reduzieren
Fügen Sie unter Bezugnahme auf die Anweisungen in Tipp 2 den Satz hinzu: Helfen Sie mir, ein separates Unterverzeichnis zu erstellen, um den Code für diese Seite separat zu speichern.
Testen und implementieren Sie die Funktionalität einzeln in einem neu erstellten Unterverzeichnis, und ziehen Sie schließlich in Erwägung, diesen Code bei Bedarf in anderen Dateien zu referenzieren.
Erkenntnis 5: Abstrahieren Sie hochgradig wiederverwendbare Fähigkeiten, wenn Sie für weniger Funktionen entwerfen: Stile, Methoden, Klassen, Schnittstellen usw.
Achten Sie darauf, nicht zu viel wiederverwendbaren Dateicode zu extrahieren; übermäßig aufgeblähte, übermäßige Mengen an wiederverwendbarem Dateicode verwirren Windsurfs Speicher bei der späteren Projektentwicklung eher. Solange Sie sich nicht an die explizite Funktion jeder wiederverwendbaren Datei erinnern und Windsurf auffordern, darauf zu verweisen, ist dies in der Praxis nicht sinnvoll.
Wiederverwendeter Code in diesem Projekt: die API für die Abfrage von Wechselkursen, die Datenverbindungsdatei, die Caching-Regeln und die Header-Navigationsdatei. Denken Sie daran, dass dies bei der Erstellung der zweiten Seite abstrahiert wurde; ich habe bei der Erstellung der ersten Seite nicht allzu sehr darüber nachgedacht, welche Funktionen dieses Projekt erfüllen sollte.
Erkenntnis 6: Rufen Sie relevante Erinnerungen ab und führen Sie dann die Aufgabe aus (und lassen Sie Windsurf die Server-Operation durchführen)
Unter Bezugnahme auf Erkenntnis 2 gibt es eine Gemeinsamkeit der Methoden. Dies ist das wichtigste Mittel zur Implementierung komplexer Funktionen und zur Wiederverwendung bestehenden Codes.
Erinnern Sie sich an das wiederkehrende Thema der "minimalen Funktionalität"? Beim Aufbau einer komplexen funktionalen Seite greife ich oft auf den bereits funktionierenden Code der Minimalfunktionalität zurück und verwende ihn für die Implementierung einer komplexen funktionalen Seite.
Diese komplexe Seite neige ich in Stücken zu implementieren, zuerst eine minimale Funktion A, Debugging einmal, und dann eine minimale Funktion B, Debugging einmal, und so weiter einführen ... Am Ende können Sie eine sehr komplexe Seite wie Stapelblöcke machen.
Dieses Mal hatte ich viel Glück beim Erraten der richtigen Tabellen- und Feldnamen und beim Erstellen der Seite ohne direkte Datenbankmanipulation. Dies könnte daran liegen, dass der zuvor erstellte Kontextverlauf die Datenbankfeldinformationen noch enthält.
Erzwingen wir, dass eine Datenbankabfrage einmal durchgeführt wird, damit sie als aktuelle Erinnerung erhalten bleibt, was genauere Folgeaufgaben ermöglicht:
Ich werde das Skript zur Aktualisierung des Wechselkurs-Timers ändern, das ich bereits erstellt habe: ExchangeRateService.php. An dieser Stelle muss ich die relevanten Erinnerungen im Voraus abrufen:
Wenn ich mir den Code durchlese, stellt sich heraus, dass ExchangeRateService.php nicht für die regelmäßige Aktualisierung des Wechselkurses zuständig ist, ich habe mich geirrt...
Es ist gut, den Code zu lesen, bevor Sie ihn ändern, um zu wissen, dass diese Datei nicht für die regelmäßige Aktualisierung des Wechselkurses verantwortlich ist. Die eigentliche Datei für das Update-Skript lautet: update_exchange_rates.php
Ich habe schließlich eine neue Frage gestellt, um die kontextbezogene Erinnerung genauer zu machen: "Da update_exchange_rates.php das Skript ist, das die Wechselkurse in regelmäßigen Abständen abruft, ist die Datei ExchangeRateService.php noch nützlich?"
Eine genauere "Erinnerung" ist das, was kürzlich in einem Dialog wiederholt wurde.
Erkenntnis 7: Dokumentieren Sie das kleinste Verzweigungsmerkmal jeder Implementierung in einem zuvor erstellten Dokument
Wenn eine Funktion vollständig implementiert ist, muss sie in der Dokumentation dokumentiert werden. Bringen Sie Windsurf dazu, das Beschreibungsdokument durch einen Dialog zu aktualisieren.
Erkenntnis 8: Erstellen Sie einen "Test"-Modus für jede Kernfunktion
Einige der Funktionen können den Code nach der Ausführung zu zerstören, zerstören die offizielle Datenbank-Daten, kann nicht überprüfen, die Fehlermeldung oder eine einzige Ausführungszeit ist zu lang, der Code erfordert die Einführung von "Test"-Modus, leicht zu einer Vielzahl von Problemen zu debuggen. Zum Beispiel, meine zeitgesteuerte Update-Skript dauert eine lange Zeit zur Ausführung, so fügte ich einen Test-Modus.
Sie vertrauen darauf, dass der Code korrekt funktioniert, solange Sie ihn visuell sehen können, und es gibt einige Funktionen, die Sie nicht direkt visuell sehen können und die es erforderlich machen, dass Windsurf aktiv die "Ergebnisse der tatsächlichen Implementierung" angibt, was ein "Testmuster" erfordert.
Folgemaßnahme 9: Mehr Ausweichmöglichkeiten nutzen
Wenn Sie mit dem gespeicherten Code nicht zufrieden sind, drücken Sie Strg+Z, um zurückzugehen und den Dialog neu zu generieren. Es handelt sich dabei nicht um ein einfaches "Neuzeichnen", da die Erinnerung an die vorherige Dialogrunde erhalten bleibt und die Neugenerierung genauer sein wird.
Erkenntnis 10: Geben Sie auf, wenn Sie in mehreren Gesprächsrunden keine Funktion finden, die Ihren Erwartungen entspricht.
Hier bedeutet die Funktion "Minimalfunktion", löschen Sie das Verzeichnis der Minimalfunktion und die Dateien im Verzeichnis, versuchen Sie, ein neues Dialogfenster zu öffnen, löschen Sie die gespeicherten Erinnerungen und beginnen Sie dann, die XXX-Funktion mit dem Befehl: Forget the previous code neu zu schreiben.
Takeaway 11: Häufig verwendete Dialogwörter
hinzufügen, löschen, ändern, vorschlagen, optimieren, erklären, verweisen, ignorieren, abhängen, verweisen, Ausführungslogik vervollständigen, testen, zusammenführen (wenn Sie mit diesen Wörtern nichts anfangen können, fragen Sie ChatGPT, was jedes der XXX Wörter in einem Programmierkontext bedeutet)
Erkenntnis 12: Versuchen Sie, ausgereifte Programmiersprachen mit einfachen Umgebungsabhängigkeiten zu verwenden.
Daher die Wahl eines Pagoda-Panel-Einsatzes von PHP+MYSQL. Ich hätte mich nicht für ein moderneres Front-End-Framework und eine Datenbank entschieden, da ich befürchtete, dass ich weniger relevante Kenntnisse und ein geringeres Verständnis für die Art des Geschäfts im größeren Modell hätte.
Als "alte" Programmiersprache sollte PHP viele ausgereifte Lösungen für alle Arten von Unternehmen haben und zu einem Ausbildungswissen für große Modelle werden.
In der Tat, Pythonye ist gut, aber der Nachteil ist, dass es auf zu viele "Bibliotheken", so dass die Umwelt hängt von der Projekt-Iteration ist allmählich unkontrollierbar, und ist nicht geeignet für völlig unbewusst das Verfahren der weißen.