Não acredite nas notícias da Internet sobre "um homem que não sabe programar e ganhou um milhão de dólares por mês com o Windsurf", ele pode não saber realmente programar, mas seu pai sabia. Se você não sabe um pouco de programação ou mesmo de inglês, é muito difícil escrever um programa completo. A Internet está cheia de pessoas que sabem programar e ensinam como usar o Windsurf na vida real, e é difícil para as pessoas que não sabem programar usar o Windsurf na vida real, e muitas notícias dizem que, mesmo que você não saiba programar, pode usar o Windsurf para escrever aplicativos, então é como a porta Rashomon... Nesse caso, eu não sei programar, mas posso tentar...
Este documento leva 2 dias e nada menos que 500 rodadas de diálogo para implementar um conjunto de aplicativos de calculadora de taxa de câmbio, incluindo front e back-end. Toda a implementação usa apenas Windsurf Diálogo. Este artigo se concentra em como as pessoas que não sabem programar podem realmente escrever aplicativos completoso que se aprende com os próprios errosO sistema de controle de acesso, que não fornece um procedimento operacional completo.
As principais funções realizadas são as seguintes:
- Página de front-end completa (adaptação para vários dispositivos)
- HomeMúltiplas estratégias para obter valores de taxa de câmbio (obtenção de banco de dados, obtenção de API alternativa, obtenção da última atualização da taxa de câmbio no banco de dados)
- Leitura e gravação de bancos de dados (consultas de tabelas concatenadas)
- Vários scripts de tarefas cronometradas para coletar dados de taxas de câmbio e notícias para gravar no banco de dados (e implementar a lógica de bloqueio de arquivos)
- Encapsular a API de consulta de taxa de câmbio, encapsular os métodos comuns de chamada de função
- Mecanismo de cache de documentos
- Pesquisa de arquivos de texto local
- Registro detalhado de erros de arquivo
- Página pseudoestática
Componente de ciência popular
Quem deve usar o Windsurf?
- Não programadores, se for recomendado que os programadores usem o Cursor .
- Saber quais são os termos técnicos básicos, por exemplo, banco de dados, tabela, campo, API, cache, classe, front-end, nome de domínio, etc.
- Participou de todo o processo de construção do site: não se limitando a técnicos de front e back-end, operações, produtos, marketing, testes, etc.
- Ter um conceito básico de "campo" e conseguir resumir bem o conhecimento de sua área de especialização e descrevê-lo por escrito.
Para que mais o Windsurf pode ser usado além de escrever aplicativos?
- Com base na leitura automatizada de vários arquivos locais e nos recursos de agente, o Windsurf pode ser usado como uma excelente ferramenta de processamento em lote e resumo de texto local.
- Escreva scripts de tempo de execução automatizados necessários para lidar com várias tarefas locais, como escrever um script bat e executá-lo automaticamente.
- O melhor mentor para aprender programação, apresentando os requisitos de programação e, em seguida, informando-o sobre as tarefas em cada etapa e como realizá-las.
- Testes automatizados não padronizados, seja para técnicos ou testadores, podem ser importados para o código e, em seguida, permitir que o Windsurf rastreie um recurso ou leia o código completo para escrever um plano de teste e executar casos de teste de forma semiautomática.
Como aprender as operações básicas do Windsurf?
Tutorial em chinês do Windsurf, método de instalação e uso do Windsurf
Pesquise tutoriais relacionados a "vscode", pois o Windsurf é uma versão modificada do vscode e a lógica básica de operação é semelhante.
Qual é a maior diferença entre windsurfe e copiloto?
O modo de gravação padrão do Windsurf executa tarefas de forma proativa e discreta, mais como um funcionário que é proativo na busca de soluções para concluir o trabalho depois que o chefe levanta um problema básico. É claro que o Windsurf in the Cascade também é adequado para amigos que conseguem ler e entender o código, mas não discutiremos isso aqui.
O Copilot é mais um assistente silencioso e não solicitado, ele permanecerá em silêncio até que você lhe dê uma tarefa clara, mas se houver uma necessidade clara, ele fará um bom trabalho.
Preciso comprar uma versão paga do Windsurf para usá-lo?
Para comprar a versão paga, a versão gratuita recentemente atualizada do plano só permite o uso do modelo básico, que é menos eficaz. Até mesmo a compra da versão paga limita o uso no momento.
A versão gratuita não é adequada para quem não conhece o programa devido aos recursos limitados do modelo básico.
Duas modalidades de Windsurf?
O Write é responsável pela escrita/execução do código; o Chat é responsável pelo diálogo e não escreve nenhum código, o que é importante.
Ambiente de programação complementar de windsurfe para iniciantes
Ao usar o Windsurf para escrever código, é necessário ter um ambiente de programação de apoio para permitir que o Windsurf execute vários tipos de operações, além de permitir que você visualize a implementação do código em tempo real.
Como você é um novato, é provável que não saiba como criar um ambiente de programação ou seguir um tutorial muito difícil para criá-lo. O problema mais incômodo ao criar o ambiente é que a maioria das pessoas que usam o sistema Windows para criar o ambiente de programação localmente encontrará mais exceções, além de depuração interminável de todos os tipos de recursos dependentes.
O que é ainda mais assustador é que não se pode confiar que o Windsurf opere seu computador, executando comandos locais. Isso pode expor seu computador particular a problemas imprevistos.
A solução que dei é a seguinte:
Compre um servidor, automatize a implantação do painel do Pagoda e lembre-se da conta root e da senha para se conectar ao SSH. Se você estiver usando explicitamente uma combinação de PHP+MYSQL, crie-a antecipadamente no painel do Pagoda (não deixe que o Windsurf crie o ambiente básico).
Para isso, se você não puder implantar o ambiente básico acima por conta própria, é recomendável que tenha seu próprio Baidu.
Inicie o Windsurf para criar seu primeiro projeto
1) Se você instalar o Windsurf com êxito, poderá fazer download do plug-in chinês:O Codeium Windsurf configura uma interface chinesa com um único plug-in de extensão chinesa.
2) No painel do pagode, para criar um diretório da Web, escolhi a combinação PHP + MYSQL
3 Use o SSH para se conectar ao diretório da Web correspondente do servidor remoto.
Para se conectar a um servidor remoto: Inicie o software, selecione Connetc e, em seguida, SHH Host...
4. digite a conta SSH (geralmente root) e o endereço do servidor
5. digite a senha correspondente à conta root e pressione Enter para confirmar.
6) Como era de se esperar, o "diretório" ao qual você está vinculado por padrão não é o correto, e você não consegue ver a pasta criada anteriormente aqui.
7. localize o local da pasta
Aqui, o modelo gratuito de tamanho pequeno é escolhido para fazer perguntas a fim de evitar o consumo de créditos e obter a posição absoluta do catálogo.
7. escolha: File - Use Profile New Window - New Profile
Clique em Create (também é possível adicionar um diretório a Default).
8 Clique em Add Folder (Adicionar pasta) e digite o endereço do diretório: www/wwwroot/huilv.haoai.us.kg, aponte para confirmar.
9. selecione Abrir em uma nova janela (será solicitado que você digite sua senha novamente)
10. no diretório correto e, em seguida, podemos escrever formalmente o código do projeto!
(Esse é o diretório em que o código foi escrito. Por padrão, seu diretório deve estar vazio ou mostrar apenas um arquivo de configuração inútil que não precisa ser excluído)
Preparação para a preparação formal do aplicativo
fazer perguntas
Não há problema em usar outras ferramentas de diálogo de modelo grande para o processo de questionamento, o que evita a necessidade de o Windsurf gerar código, mas usar o Windsurf para várias rodadas de diálogo permite resumir um histórico mais útil.
1. como obter informações sobre a taxa de câmbio em tempo real
2) Ajude-me a pensar sobre como criar um site de consulta de taxas de câmbio
3. projetar a arquitetura do site de acordo com PHP+MYSQL
...
Organizar documentos
1. senha da conta do banco de dados organizada como um arquivo .md
2. pergunta na API de consulta da taxa de câmbio disponível e documento de descrição da KEY e da interface agrupados como documento .md
3. a arquitetura de front-end do site obtido na pergunta está organizada como um documento .md (a arquitetura de back-end eu não consigo projetar, não consigo pensar com clareza, portanto não criei um documento)
Esses documentos podem ser usados para escrever o contexto do Windsurf ou para especificar um documento como contexto do Windsurf para auxiliar na escrita do código.
Verificar a lógica mínima de implementação funcional
Teste 1: use o acesso à API para obter o nome completo da moeda da interface da taxa de câmbio, depositada no banco de dados.
Teste 2: use o acesso à API para obter um nome de moeda do banco de dados, solicitar a taxa de câmbio dessa moeda e armazená-la no banco de dados.
Teste 3: ...
A palavra prompt declara que este é um teste simples que cria casos de teste funcionais mínimos e os executa uma vez, sendo que o critério de sucesso da validação final é uma consulta ao banco de dados com dados validados.
Requisito para resumir a funcionalidade principal após o teste: resumir o código de execução principal que você obtém com o teste bem-sucedido de cada funcionalidade mínima (não entendo bem o significado de cada parte do código)
Após um teste bem-sucedido, é necessário limpar todo o código e o banco de dados gerados. Isso pode ser feito por meio de um diálogo. A capacidade do Windsurf de executar qualquer comando de operação de servidor remoto é um recurso importante para iniciantes.
Descrição:
Na verdade, fiz muitos testes para obter a funcionalidade mínima em execução, respectivamente, porque não conheço código, todas as interfaces e a funcionalidade projetada não são confiáveis para mim, a ponto de eu não querer escrever um conjunto completo de código de front e back-end para validá-lo visualmente, porque gerar muito código impede que o projeto avance corretamente.
Ao mesmo tempo, documentei a lógica de execução (métodos solicitados pela API) na funcionalidade mínima, bem como as tabelas do banco de dados que foram construídas, complementadas e organizadas em minha documentação.
Preparação formal de solicitações
Em primeiro lugar, não pedi ao Windsurf para criar todo o front-end ou mesmo a página inicial do front-end, embora eu tivesse preparado instruções claras com antecedência que eu poderia fornecer ao Windsurf para que ele pudesse implementá-las com precisão.
Conclusão 1: É importante a partir de qual ponto de função você começa a criar seu código
Escreva uma interface visual de front-end para a funcionalidade principal (API de consulta de taxa de câmbio); os campos dessa interface devem ser consistentes com o banco de dados, campos tão detalhados quanto possível, mesmo que a página visual de front-endNão se destina a estar disponível para os visitantesFaça isso primeiro também.
Se a página puder ser acessada normalmente, isso significa que o método usado no código está correto e que os dados no banco de dados também estão corretos, o que pode ser usado como referência para as referências de página reais subsequentes a serem feitas. O aplicativo inteiro pode ser excluído após a conclusão da construção dessa página.
Assim, recebo as duas páginas a seguir:
Dica 2: Faça bom uso da forma do documento de "citação" para fazer perguntas
Com base no insight 1, não criar um projeto completo no início, e a iniciativa do Windsurf é muito forte, portanto, a pergunta sugere adicionar o prompt "exibição de lista de páginas, somente campos de exibição: XX\XX\XX".
oferecido@
As funções são muito úteis, pois você pode consultar rapidamente pastas, arquivos, classes
Conclusão 3: Faça boas perguntas
Esta é a página gerada na etapa anterior, e tenho algumas perguntas a fazer
Pergunta 1: Diga-me se posso adicionar mais conteúdo
Pergunta 2: Fale-me sobre problemas de eficiência de código
Pergunta 3: Fale-me sobre o método de realização
Pergunta 4: Diga-me se há alguma sugestão de otimização com base em meu requisito "Esta é uma lista de taxas de câmbio de moeda capturadas"?
Conclusão 4: ótimas maneiras de gerenciar o código com eficiência e reduzir a geração de código de spam
Referindo-se às instruções da dica 2, adicione a frase: Help me create a separate subdirectory to store the code for this page separately.
Teste e implemente a funcionalidade individualmente em um subdiretório recém-criado e, por fim, considere fazer referência a esse código em outros arquivos, conforme necessário.
Conclusão 5: abstraia recursos altamente reutilizáveis ao projetar para menos recursos: estilos, métodos, classes, interfaces etc.
Tenha cuidado para não extrair muito código de arquivo reutilizável; quantidades excessivamente inchadas e excessivas de código de arquivo reutilizável têm maior probabilidade de confundir a memória do Windsurf no desenvolvimento subsequente do projeto. A menos que você se lembre da função explícita de cada arquivo reutilizável e solicite que o Windsurf faça referência a ela, isso não é prático na prática.
Código reutilizado neste projeto: a API para consulta de taxas de câmbio, o arquivo de conexão de dados, as regras de cache e o arquivo de navegação do cabeçalho. Lembre-se de que isso foi abstraído ao criar a segunda página; não pensei muito sobre a funcionalidade que esse projeto deveria fazer ao criar a primeira página.
Conclusão 6: Recorde memórias relevantes e, em seguida, execute a tarefa (e faça com que o Windsurf execute a operação do servidor)
Com relação ao insight 2, há uma semelhança de métodos. Esse é o principal meio de implementar funcionalidades complexas e reutilizar o código existente.
Lembra-se do tema recorrente da "funcionalidade mínima"? Ao construir uma página funcional complexa, costumo recuperar o código relevante do código já em funcionamento da funcionalidade mínima e usá-lo para implementar uma página funcional complexa.
Essa página complexa tende a ser implementada em partes, primeiro introduzindo uma função mínima A, depurando uma vez, e depois introduzindo uma função mínima B, depurando uma vez, e assim por diante... No final, você pode criar uma página muito complexa como blocos empilhados.
Dessa vez, tive boa sorte ao adivinhar os nomes corretos de tabelas e campos e criar a página sem manipulação direta do banco de dados. Isso pode ter ocorrido porque o histórico de contexto gerado anteriormente ainda retém as informações do campo do banco de dados.
Vamos forçar uma consulta ao banco de dados a ser realizada uma vez, para ser retida como memória recente, o que permite tarefas de acompanhamento mais precisas:
Vou modificar o script de atualização do cronômetro da taxa de câmbio que já criei: ExchangeRateService.php. Neste ponto, preciso recuperar as memórias relevantes com antecedência:
Lendo o código, verifica-se que o ExchangeRateService.php não é responsável por atualizar a taxa de câmbio regularmente, eu estava enganado...
É bom tentar ler o código antes de modificá-lo para saber que esse arquivo não é responsável por atualizar a taxa de câmbio regularmente. O arquivo de script de atualização real é: update_exchange_rates.php
Acabei fazendo uma nova pergunta para tornar a memória contextual mais precisa: "Como update_exchange_rates.php é o script que obtém as taxas de câmbio em intervalos regulares, o arquivo ExchangeRateService.php ainda é útil?"
Uma "memória" mais precisa é aquela que foi repetida recentemente em um diálogo.
Conclusão 7: Documente o menor recurso de ramificação de cada implementação em um documento criado anteriormente
Quando um recurso é implementado por completo, ele deve ser documentado na documentação. Faça com que o Windsurf atualize as informações no documento de descrição por meio de diálogo.
É uma boa ideia fazer uma lista de verificação de desenvolvimento de recursos para registrar com precisão o progresso da tarefa:
Nesse momento, você pode registrar a descrição importante do documento separadamente, concentrando-se na referência, desde que a caixa de diálogo para inserir o nome do documento seja exibida.@
Basta recordar o documento.
Conclusão 8: Crie um modo de "teste" para cada recurso principal
Algumas das funções podem destruir o código, destruir os dados do banco de dados oficial, não podem verificar a mensagem de erro ou um único tempo de execução é muito longo, o código requer a introdução do modo "teste", fácil de depurar uma variedade de problemas. Por exemplo, meu script de atualização cronometrada leva muito tempo para ser executado, então adicionei um modo de teste.
Você confia que o código foi projetado para funcionar corretamente, desde que você possa vê-lo visualmente, e há alguns recursos que não podem ser vistos diretamente de forma visual e que exigem que o Windsurf declare ativamente os "resultados da implementação real", o que requer um "padrão de teste".
Conclusão 9: Use mais fallbacks
Se não estiver satisfeito com o código salvo, pressione Ctrl+Z para voltar e gerar novamente o diálogo. Isso não é um simples "redesenho", pois a memória da rodada anterior do diálogo é mantida e a regeneração será mais precisa.
Lição 10: Desista se não conseguir obter uma função que atenda às suas expectativas em várias rodadas de diálogo.
Aqui a função significa "função mínima", exclua o diretório da função mínima e os arquivos no diretório, tente abrir uma nova janela de diálogo, exclua as memórias armazenadas e, em seguida, comece a reescrever a função XXX com o comando: Forget the previous code (Esqueça o código anterior).
Conclusão 11: Palavras de diálogo comumente usadas
adicionar, excluir, alterar, sugerir, otimizar, explicar, referir, ignorar, depender, referenciar, lógica de execução completa, testar, mesclar (se não conseguir entender essas palavras, pergunte ao ChatGPT o que cada uma das palavras XXX significa em um contexto de programação)
Conclusão 12: Tente usar uma linguagem de programação madura com dependências de ambiente simples
Daí a escolha de uma implantação de painel de pagode em PHP+MYSQL. Eu não teria escolhido uma estrutura de front-end e um banco de dados mais modernos, temendo um conhecimento e uma compreensão menos relevantes do tipo de negócio nos modelos maiores.
Como uma linguagem de programação "antiga", o PHP deve ter muitas soluções maduras para todos os tipos de negócios e se tornar um conhecimento de treinamento para grandes modelos.
De fato, o Pythonye é bom, mas a desvantagem é que ele depende de muitas "bibliotecas", de modo que o ambiente depende da iteração do projeto, que é gradualmente incontrolável, e não é adequado para quem desconhece completamente o procedimento do branco.