プログラミングを知らない男がウィンドサーフで月に100万ドル稼いだ」というインターネット上のニュースを鵜呑みにしてはいけない。彼は本当にプログラミングを知らないかもしれないが、彼の父親はそうだった。プログラミングを少しも知らなければ、あるいは英語さえ知らなければ、完全なプログラムを書くのは本当に難しい。ネットにはプログラミングに詳しい人がたくさんいて、ウィンドサーフの実際の使い方を教えてくれるし、プログラミングを知らない人がウィンドサーフを実際に使うのは難しいし、プログラミングを知らなくてもウィンドサーフを使ってアプリが書けるというニュースも多いから、羅生門の扉みたいなものかな...。それなら、プログラミングを知らない私でもやってみようかな...。
本稿では、フロントエンドとバックエンドを含む一連の為替レート計算アプリケーションを実装するのに2日間と500回以上の対話を要した。実装全体で使用したのは ウィンドサーフ 対話この記事では、プログラミングを知らない人でも実際に完全なアプリケーションを書くことができる方法に焦点を当てています。失敗から学ぶものしかし、これは完全な操作手順を提供するものではない。
主な機能は以下の通り:
- フルフロントエンドページ(マルチデバイス対応)
- ホーム為替レート値取得のマルチ戦略(データベース取得、代替API取得、データベースへの最新為替レート更新取得)
- データベースの読み書き(テーブル連結クエリー)
- 為替レートとニュースデータを収集し、データベースに書き込むための複数の定時タスクスクリプト(およびファイルロックロジックの実装)
- 為替レート照会APIをカプセル化し、共通関数呼び出しメソッドをカプセル化する。
- ドキュメント・キャッシュ・メカニズム
- ローカルテキストファイル検索
- 詳細なファイル・エラー・ロギング
- 擬似静的ページ
大衆科学部門
ウィンドサーフィンを使うべき人は?
- ノンプログラマーは、もしプログラマーが カーソル .
- データベース、テーブル、フィールド、API、キャッシュ、クラス、フロントエンド、ドメイン名など、基本的な専門用語の意味を知っている。
- フロントエンド、バックエンドの技術者に限らず、オペレーション、プロダクト、マーケティング、テストなど、ウェブサイト構築の全プロセスに参加。
- 分野」についての基本的な概念を持ち、専門分野の知識をうまくまとめ、文章で説明できる。
アプリケーションを書く以外に、Windsurfはどんなことに使えますか?
- Windsurfは、ローカルの複数ファイルの自動読み取りとエージェント機能に基づき、優れたローカルテキスト要約、バッチ処理ツールとして使用できます。
- batスクリプトを書いて自動的に実行するなど、さまざまなローカルタスクの処理に必要な自動実行スクリプトを書く。
- プログラミングを学ぶための最高のメンターであり、プログラミングの要件を提示し、各ステップでのタスクとその達成方法を教えてくれる。
- 非標準の自動テストは、技術者であれテスターであれ、コードをインポートし、Windsurfに機能をトレースさせたり、コード全体を読み込ませたりして、半自動的にテスト計画を作成し、テストケースを実行することができます。
ウインドサーフィンの基本操作を学ぶには?
ウィンドサーフ中国語チュートリアル, ウィンドサーフ設置・使用方法
vscode "関連のチュートリアルを検索してみてください。ウィンドサーフはvscodeの改良版なので、基本的な操作ロジックは似ています。
ウインドサーフィンとコパイロットの最大の違いは何ですか?
Windsurfのデフォルトの書き込みモードは、積極的かつ慎重にタスクを実行する。上司が基本的な問題を提起した後、仕事を完了させるために積極的に解決策を見つける従業員のようなものだ。もちろん、カスケードのWindsurfは、コードを読んで理解できる友人にも適しているが、ここでは触れない。
コパイロットは、どちらかというと無口で頼まれてもいないアシスタントで、明確なタスクを与えるまでは黙っているが、明確なニーズがあれば良い仕事をしてくれる。
Windsurfを使うには有料版を購入する必要がありますか?
有料版を購入するには、最近更新された無料版のプランではベースモデルしか使用できず、効果が薄い。有料版を購入しても、現在のところ使用は制限されている。
無料版はベースモデルの機能が限られているため、プログラムを知らない人には適していない。
ウィンドサーフィンの2つのモード?
Writeはコードの記述/実行を担当し、Chatは対話を担当し、重要なコードは記述しない。
初心者向けウィンドサーフコンパニオンプログラミング環境
ウィンドサーフを使ってコードを書く場合、ウィンドサーフにさまざまな種類の操作を実行させ、コードの実装をリアルタイムでプレビューできるようにするには、それをサポートするプログラミング環境が必要です。
初心者の場合、プログラミング環境を構築する方法を知らなかったり、チュートリアルに沿って構築するのが難しいでしょう。環境を構築する際に最も厄介な問題は、Windowsシステムを使用してプログラミング環境をローカルに構築する場合、多くの例外が発生するだけでなく、依存するリソースのすべての種類のエンドレスのデバッグが発生することです。
さらに恐ろしいのは、ローカルコマンドを実行するウィンドサーフにコンピュータを操作させることは信用できないということだ。これによって、あなたのプライベート・コンピュータが予期せぬ問題にさらされる可能性があります。
私が出した解答は次のようなものだ:
サーバーを購入し、Pagodaパネルのデプロイを自動化し、SSHに接続するためのrootアカウントとパスワードを覚えておく。PHP+MYSQLコンボを明示的に使用するのであれば、Pagodaパネルで事前に作成してください(Windsurfにベース環境を作成させないでください)。
ここで、もし上記の基本的な環境を自前で導入できない場合は、自前の百度を導入することをお勧めします。
ウィンドサーフを始めて最初のプロジェクトを作成する
1.Windsurfのインストールに成功すると、中国語のプラグインをダウンロードできます:Codeium Windsurfは、1つの中国語拡張プラグインで中国語インターフェースを設定します。
2.パゴダパネルでウェブディレクトリを作成し、ここではPHP + MYSQLの組み合わせを選択します。
3.SSHを使って、リモートサーバーの対応するウェブディレクトリに接続する。
リモートサーバーに接続するには: ソフトウェアを起動し、[Connetc]を選択し、[SHH Host...]を選択します。
4.SSHアカウント(通常はroot)とサーバーアドレスを入力する。
5.rootアカウントに対応するパスワードを入力し、Enterを押して確定する。
6.当然のことながら、デフォルトでリンクされている「ディレクトリ」は正しいものではなく、ここに以前作成したフォルダを見ることはできない。
7.フォルダの場所を探す
ここでは、クレジットの消費を避け、カタログの絶対位置を把握するために、無料の小型モデルを選んで質問している。
7.選択: ファイル - プロファイルの使用 新しいウィンドウ - 新しいプロファイル
Createをクリックする(Defaultにディレクトリを追加することも可能)。
8.フォルダの追加をクリックし、ディレクトリアドレスを入力します:www/wwwroot/huilv.haoai.us.kg、ポイントして確認します。
9.新しいウィンドウで開くを選択(再度パスワードの入力を求められます)
10.正しいディレクトリに移動したら、正式にプロジェクトのコードを書くことができる!
(デフォルトでは、このディレクトリは空であるか、削除する必要のない無駄な設定ファイルが表示されているはずです)。
正式な申請準備
質問をする
ウィンドサーフがコードを生成する必要性を回避するため、質問プロセスに他のビッグモデル対話ツールを使用するのは構わないが、複数のラウンドの対話にウィンドサーフを使用することで、より有用な履歴を要約することができる。
1.リアルタイムの為替情報を入手する方法
2.為替レート照会サイトのデザインについて教えてください。
3.PHP+MYSQLによるウェブサイト・アーキテクチャの設計
...
書類の整理
1.データベースアカウントのパスワードを.mdファイルとして整理
2.利用可能な為替レート照会APIとKEY、および.md文書として照合されたインターフェイスの説明文書で質問する。
3.質問で得られたサイトのフロントエンドアーキテクチャは、.mdドキュメントとして整理されている(バックエンドアーキテクチャは、私は全く設計することができません、私は明確に考えることができないので、私はドキュメントを作成しませんでした)。
これらのドキュメントは、Windsurfのコンテキストを記述するために使用したり、Windsurfのコンテキストとしてドキュメントを指定し、コードを書く手助けをするために使用することができます。
最小限の機能実装ロジックを検証する
テスト1:APIアクセスを使って、為替レート・インターフェースの完全な通貨名を取得し、データベースに預ける。
テスト2:APIアクセスを使ってデータベースから通貨名を取得し、その通貨の為替レートをリクエストし、データベースに格納する。
テスト3:...
プロンプトの言葉には、これは最小限の機能テストケースを作成し、それを1回実行する単純なテストであり、最終的な検証成功基準は、検証されたデータを含むデータベースへのクエリである、と書かれている。
テスト後のコア機能の要約要件:各最小機能のテストに成功して得られたコア実行コードを要約する(各コードの意味がよくわからない)
テストが成功すると、生成されたコードとデータベースをすべてクリアするように要求されます。これはダイアログを通して行うことができます。Windsurfのあらゆるリモートサーバー操作コマンドを実行する機能は、初心者にとって重要な機能です。
説明
私はコードを知らないので、すべてのインターフェイス、設計された機能は私にとっては信じられないものでした。あまりにも多くのコードを生成すると、プロジェクトが正しく進まないので、視覚的に検証するためにフロントエンドとバックエンドのコード一式を書きたくなかったほどです。
同時に、最小限の機能における実行ロジック(APIから要求されたメソッド)と、構築されたデータベース・テーブルを文書化し、私の文書に補足・整理した。
申請書の正式な作成
ウィンドサーフが正確に実装できるように、前もって明確な指示をウィンドサーフに提供できるように準備していたにもかかわらず、私はそもそもフロントエンド全体、あるいはフロントエンドのホームページの作成さえもウィンドサーフに依頼しなかった。
要点1:どのファンクション・ポイントからコードを作り始めるかが重要である
コア機能(為替レート照会API)のためのビジュアル・フロントエンド・インターフェイスを書く。このインターフェイスのフィールドは、ビジュアル・フロントエンド・ページであっても、データベース、フィールド、可能な限り詳細と一致させる。観光客は利用できないそれも最初に作る。
もしこのページに正常にアクセスできるのであれば、コードで使われているメソッドが正しいことを意味し、データベース内のデータも正しいことを意味する。このページの構築が完了したら、アプリケーション全体を削除することができます。
そこで、次の2つのページが表示された:
ヒント2:「引用」文書の質問方法をうまく利用する
洞察1に基づいて、最初に完全なプロジェクトを構築するのではなく、ウィンドサーフのイニシアチブが強すぎるので、質問は、プロンプトを追加することを示唆している "ページリスト表示、唯一の表示フィールド:XXXXXXXX "を表示します。
提供@
関数は非常に便利で、フォルダ、ファイル、クラスをすばやく参照できます。
要点3:良い質問をする
これは前のステップで生成されたページである。
質問1:コンテンツを追加できるかどうか教えてください。
質問2:コード効率の問題について教えてください。
質問3:実現方法について教えてください。
質問4:「これは為替レートをキャプチャしたリストです。
要点4:コードを効率的に管理し、スパムコードの発生を減らす優れた方法
ヒント2の説明を参照し、「このページのコードを別に保存するために、別のサブディレクトリを作成するのを手伝ってください」という一文を追加する。
新しく作成したサブディレクトリで個別に機能をテストして実装し、最後に必要に応じてこのコードを他のファイルに参照することを検討する。
要点5:少ない機能(スタイル、メソッド、クラス、インターフェイスなど)を設計する際に、再利用性の高い機能を抽象化する。
過剰に肥大化した再利用可能なファイルコードは、その後のプロジェクト開発でWindsurfのメモリを混乱させる可能性が高くなります。各再利用可能ファイルの明確な機能を覚えておき、Windsurfがそれを参照するように促さない限り、これは実際には実用的ではありません。
このプロジェクトで再利用したコード:為替レートを照会するためのAPI、データ接続ファイル、キャッシュ・ルール、ヘッダー・ナビゲーション・ファイル。覚えておいてほしいのは、これは2ページ目を作るときに抽象化されたもので、1ページ目を作るときにこのプロジェクトがどのような機能を果たすべきかについてはあまり深く考えなかった。
要点6:関連する記憶を呼び起こし、タスクを実行する(そしてウィンドサーフにサーバー操作を行わせる)
洞察2を参照すると、メソッドには共通性がある。これは、複雑な機能を実装し、既存のコードを再利用するための主要な手段である。
最小限の機能」という繰り返しのテーマを覚えているだろうか?複雑な機能を持つページを構築するとき、私はしばしば最小限の機能がすでに機能しているコードを思い出し、それを使って複雑な機能を持つページを実装する。
この複雑なページは、最初に最小限の機能Aを導入して、一度デバッグして、次に最小限の機能Bを導入して、一度デバッグして......というように、チャンクに分けて実装することが多い。最終的には、ブロックを積み重ねるような非常に複雑なページを作りたくなる。
今回は、正しいテーブル名とフィールド名を推測し、データベースを直接操作することなくページを構築することができた。これは、以前に生成されたコンテキストの履歴に、データベースのフィールド情報が残っているからかもしれない。
データベースのクエリーを強制的に一度だけ実行させ、最近の記憶として保持させることで、より正確なフォローアップ作業を可能にしよう:
すでに作成した為替レート・タイマー更新スクリプト:ExchangeRateService.phpを修正するつもりだ。 この時点で、関連する記憶をあらかじめ呼び出しておく必要がある:
コードを読んでみると、ExchangeRateService.phpは為替レートを定期的に更新する役割を担っていないことがわかった。
このファイルが為替レートを定期的に更新する役割を担っているわけではないことを知るために、コードを修正する前に読むことをお勧めします。
"update_exchange_rates.phpは定期的に為替レートを取得するスクリプトなので、ExchangeRateService.phpファイルはまだ有用なのでしょうか?" という質問です。
より正確な「記憶」とは、対話の中で最近繰り返されたことである。
要点7:各実装の最小の分岐機能を、以前に作成した文書に記録する
機能が完全に実装されたら、ドキュメントに記述すること。ウィンドサーフに、対話を通じて説明文書のものを更新してもらう。
最好在列一个功能开发清单,准确的记录任务进度:
这么多要记录的信息,混合在一份说明文档中显然不合理,此时可以将重要说明文件分别记录,重点引用时只要在对话框输入@
唤起文档即可。
要点8:コア機能ごとに「テスト」モードを作る
関数のいくつかは、実行後にコードを破壊する可能性があり、公式のデータベースデータを破壊し、エラーメッセージを確認することはできませんまたは単一の実行時間が長すぎる、コードは、"テスト "モードの導入が必要な、さまざまな問題をデバッグするのは簡単です。たとえば、私の時間更新スクリプトの実行に時間がかかるので、テストモードを追加しました。
目視で確認できる限り、コードが正しく機能するように設計されていることを信頼するわけだが、直接目視で確認できない機能もあるので、ウィンドサーフが「実際に実装した結果」を積極的に表明する必要があり、そのためには「テストパターン」が必要になる。
要点9:フォールバックを増やす
保存されたコードに満足できない場合は、Ctrl+Zを押してダイアログを再生成してください。これは単純な「再描画」ではなく、前回のダイアログの記憶が保持されているため、再生成はより正確になります。
心得10:何度対話しても期待通りの機能が得られない場合は、あきらめること。
ここで、関数とは「最小限の関数」を意味し、最小限の関数のディレクトリとディレクトリ内のファイルを削除し、新しいダイアログウィンドウを開いてみて、保存されているメモリーを削除してから、「前のコードを忘れてください」というコマンドでXXX関数の書き換えを開始する。
収穫11:よく使われる台詞の言葉
追加、削除、変更、提案、最適化、説明、参照、無視、依存、参照、完全な実行ロジック、テスト、マージ(これらの単語の意味が理解できない場合は、ChatGPTにXXXの各単語がプログラミングの文脈で何を意味するのかを尋ねてください)。
要点12: 成熟したプログラミング言語とシンプルな環境依存を使用する。
それゆえ、PHP+MYSQLのパゴダ・パネル・デプロイメントを選択した。私は、より大きなモデルにおけるビジネスのタイプに関連する知識や理解が少ないことを恐れて、より近代的なフロントエンド・フレームワークやデータベースを選択しなかっただろう。
PHPは "古い "プログラミング言語であるため、あらゆるビジネス向けの成熟したソリューションが数多くあり、ビッグモデルのトレーニング知識となっているはずだ。
実際、Pythonyeは良いのですが、欠点はあまりにも多くの「ライブラリ」に依存しているため、プロジェクトの反復に依存する環境が徐々に制御できなくなることであり、白の手順をまったく知らない人には適していません。