As tecnologias de Inteligência Artificial (IA) estão penetrando em todos os aspectos do desenvolvimento de software em um ritmo sem precedentes, e a evolução das ferramentas de programação de IA é particularmente atraente. Neste documento, analisaremos as tendências da nova geração de ferramentas de programação de IA e as combinaremos com Esboço do AutoDev para explorar como criar experiências de programação assistida por IA mais inteligentes e eficientes.
Ferramentas de programação de IA 2.0: um olhar sobre as tendências
Há várias ferramentas de programação de IA no mercado que são populares entre os desenvolvedores, como Cursor, GitHub Copiloto Editar, WindSurf e Cline etc. Ao analisar essas ferramentas, a equipe do AutoDev Sketch resumiu vários recursos importantes da nova geração de ferramentas de programação de IA:
A funcionalidade das ferramentas de programação de IA está passando por uma profunda transformação, e elas não estão mais limitadas a funções auxiliares rudimentares, como complementação e previsão de código. A nova geração de ferramentas está se movendo em uma direção mais inteligente, por exemplo, tentando executar codificação e verificação automatizadas de IA mais complexas, que normalmente consomem mais Token Recursos. Além disso, uma tendência emergente é Codificação assíncrona de IAEle permite que a IA trabalhe continuamente em segundo plano para uma colaboração mais profunda com os desenvolvedores, resultando em uma experiência de desenvolvimento mais tranquila.
Com base nessas observações, a equipe do AutoDev Sketch acredita que os principais recursos das ferramentas de programação de IA 2.0 podem ser resumidos nos três pontos a seguir:
Orientado por agentes: compreensão mais profunda da intenção
Motorista agente é um fator essencial das ferramentas de programação de IA 2.0. Isso significa que as novas ferramentas dependerão ainda mais dos recursos de raciocínio dos poderosos modelos subjacentes. Combinado com o acesso mais rápido e preciso às informações contextuais fornecidas pelas ferramentas de programação, a IA é mais capaz de entender a verdadeira intenção do desenvolvedor e gerar um código que atenda melhor às expectativas do desenvolvedor. Os recursos de autonomia e planejamento do agente permitem que a IA execute tarefas de programação complexas com mais eficiência, em vez de apenas responder aos comandos do usuário de forma passiva.
Experiência do desenvolvedor em primeiro lugar: criando uma experiência de fluxo mental suave
Experiência do desenvolvedor em primeiro lugar é um princípio importante no projeto de ferramentas de programação de IA 2.0. As novas ferramentas precisam se integrar melhor aos fluxos de trabalho diários dos desenvolvedores e oferecer recursos mais criteriosos de edição de código, previsão e testes automatizados para maximizar a experiência de fluxo mental do desenvolvedor. Por exemplo, ferramentas como o Cursor se esforçam para manter os desenvolvedores concentrados e eficientes no processo de codificação, combinando os vários comportamentos operacionais dos desenvolvedores no IDE, fornecendo um grande número de mecanismos para reduzir a carga mental dos desenvolvedores e lidando elegantemente com cenários como erros e novas tentativas.
Validação automatizada: garantindo a qualidade do código
verificação automatizada É parte integrante das ferramentas de programação de IA 2.0. Refere-se à capacidade das ferramentas de detectar e verificar automaticamente a qualidade e a correção da lógica comercial do código gerado pela IA e de corrigir problemas causados por alucinações da IA, por exemplo, por meio de correções automatizadas usando técnicas como patches. A introdução de mecanismos de validação automatizados visa a reduzir radicalmente o impacto negativo das alucinações da IA e garantir a confiabilidade do código. Por exemplo, o Cursor integra um grande número de ferramentas práticas do Lint e terminais de terminal, oferecendo aos desenvolvedores uma grande variedade de meios de verificação automatizada de código.
Além dos recursos principais mencionados acima, algumas ferramentas de programação de IA 2.0 apresentam outros paradigmas de design excelentes:
- Interação tolerante a falhasPara reduzir ainda mais a carga sobre a mente do desenvolvedor, algumas ferramentas introduziram um mecanismo de três fases de "geração, verificação e reversão". Esse mecanismo reduz o custo de tentativa e erro, permitindo que os desenvolvedores verifiquem seu código depois que ele foi gerado pela IA e o reverta, se necessário.
- Foco no cenárioPara melhorar a eficiência e a precisão em cenários específicos, algumas ferramentas estão começando a adotar ideias de design com foco no cenário. Por exemplo, para cenários específicos, como revisão de código e correção de vulnerabilidades, são fornecidos processos e ferramentas de interação personalizados para atender às necessidades específicas de diferentes cenários.
A maioria das ferramentas populares de codificação de IA 2.0 no mercado é baseada na plataforma VSCode. No entanto, o VSCode é essencialmente apenas um editor, e as limitações de sua API restringem a funcionalidade das ferramentas de codificação de IA até certo ponto, impedindo a realização de funções mais avançadas. Isso levou a AutoDev A equipe do Sketch começou a pensar: seria melhor criar as ferramentas de codificação de IA diretamente em um ambiente de desenvolvimento integrado (IDE) mais poderoso?
A opinião da equipe do AutoDev Sketch sobre as ferramentas de codificação de IA 2.0
A equipe do AutoDev Sketch realizou um estudo interno sobre o comportamento do usuário e descobriu que o usuário típico do Intellij IDEA não estava satisfeito, mesmo depois de usar o Cursor As ferramentas de geração de código de IA, como o Cursor, são usadas para auxiliar na codificação, mas, em última análise, elas ainda retornam ao IDEA para teste e depuração de código. O motivo disso é que, embora ferramentas como o Cursor possam melhorar a eficiência do desenvolvimento até certo ponto, essa melhoria na eficiência não compensa totalmente a lacuna de experiência provocada pela diferença de funcionalidade entre editores e IDEs. Em outras palavras, para usuários avançados de IDE, os recursos avançados e o ecossistema completo fornecidos pelo IDEA ainda são insubstituíveis.
Como resultado, a equipe do AutoDev Sketch começou a pensar profundamente sobre a melhor forma de desenvolver ferramentas de codificação de IA 2.0 para aproveitar ao máximo o IDE e criar uma experiência superior de programação assistida por IA?
Pensamento 1: Os editores se concentram na experiência, os IDEs se concentram na ecologia
A equipe do AutoDev Sketch fornece uma breve análise das vantagens e desvantagens dos editores e IDEs:
VSCode
- Vantagens notáveisOs maiores pontos fortes do VSCode são a leveza e a flexibilidade, permitindo que os desenvolvedores criem protótipos e iterem rapidamente os recursos.
- desvantagem relativaEmbora o VSCode tenha um rico ecossistema de plug-ins, a qualidade dos plug-ins varia e muitos recursos precisam ser redesenvolvidos e reprojetados pelos desenvolvedores. Além disso, embora o VSCode ofereça recursos como o Language Server Protocol (LSP), o Debug Adapter Protocol (DAP) e o Model Context Protocol (MCP), o VSCode não tem um ecossistema de plug-ins robusto, o que exige que os desenvolvedores desenvolvam e reprojetem muitos recursos.MCP) e outros protocolos, mas ainda há limitações na obtenção de uma integração ecológica profunda.
Série Intellij IDEA
- Vantagens notáveisA maior vantagem da família de IDEs Intellij IDEA são seus recursos prontos para uso e os plug-ins oficiais de alta qualidade. Esses plug-ins fornecem informações contextuais de alta qualidade para apoiar a inteligência das ferramentas de codificação de IA.
- desvantagem relativaEm comparação com o VSCode, a família de IDEs Intellij IDEA tem custos de desenvolvimento mais altos, velocidades de desenvolvimento mais lentas e uma relativa falta de documentação, o que pode afetar a precisão da geração de código de IA até certo ponto.
Como resultado, a equipe do AutoDev Sketch acredita que as ferramentas de codificação de IA 2.0 devem aproveitar mais o poderoso ecossistema de ferramentas e os recursos de plug-in dos IDEs do que apenas os editores.
Reflexão 2: desenvolver o ecossistema de plug-ins do IDEA para criar automação de ponta a ponta
O Intellij IDEA é um excelente exemplo de um ecossistema existente de ferramentas de desenvolvimento. Especialmente no cenário de desenvolvimento de API de back-end, o IDEA integra perfeitamente o ecossistema de ferramentas necessário para "design, desenvolvimento e verificação". Por exemplo:
- fase de projetoFerramentas como Swagger, PlantUML, Mermaid etc. podem ajudar os desenvolvedores com o design e a documentação da API.
- fase de desenvolvimentoO HttpClient, o Curl, o plug-in de banco de dados e outras ferramentas podem aumentar a eficiência do desenvolvimento da API.
- fase de calibraçãoFerramentas como JUnit, Playwright, SonarLint etc. podem garantir a qualidade do código e a estabilidade do sistema.
Com esses plug-ins avançados, a equipe do AutoDev Sketch pode criar uma interface unificada para IA, fornecendo à IA avisos mais precisos, um conjunto de ferramentas mais avançado e melhores mecanismos de validação de código para automatizar o processo de desenvolvimento de ponta a ponta.
Reflexão 3: Criando um contexto de alta qualidade para reduzir as ilusões de IA
Para minimizar as ilusões de IA e melhorar a precisão e a confiabilidade da geração de código, a equipe do AutoDev Sketch acredita que é fundamental criar informações contextuais de alta qualidade. Tomando o desenvolvimento back-end como exemplo, a equipe do AutoDev Sketch pode construir o núcleo das ferramentas de codificação de IA orientadas por agentes por meio das três práticas de engenharia a seguir:
- Engenharia de software Engenharia de contextoO objetivo desse projeto é obter as principais informações contextuais sobre o projeto, como dependências, informações sobre o banco de dados, informações sobre a estrutura etc. O AutoDev Sketch pode analisar a configuração e o código do projeto e extrair automaticamente descrições contextuais, como: "Este espaço de trabalho usa Gradle+Java+JDK_18", "Este projeto usa MariaDB", "Você está trabalhando em um projeto que usa Spring Boot 2.7.10, Spring MVC, JDBC para criar a lógica de negócios". Este projeto usa MariaDB", "Você está trabalhando em um projeto que usa Spring Boot 2.7.10, Spring MVC, JDBC para criar lógica de negócios."
- Engenharia de chamadas de função (OpenAI)O projeto se concentra em otimizar continuamente a capacidade dos modelos de IA de chamar funções em diferentes cenários e melhorar a eficiência da integração da IA com várias ferramentas e APIs.
- Projeto Cue Word (Claude)Para diferentes modelos de IA, a equipe do AutoDev Sketch fornece Prompts de Cadeia de Pensamento para orientar o modelo a aprender e entender melhor a intenção do desenvolvedor.
Informações contextuais de alta qualidade, aliadas a uma estratégia otimizada de palavras-chave, podem reduzir significativamente a ocorrência de ilusões de IA e, assim, melhorar as principais métricas das ferramentas de codificação de IA, como usabilidade, aceitação do usuário e precisão do código.
Ferramenta de codificação de IA 2.0 do AutoDev Sketch Prática
Com base nessa análise e nesse raciocínio, a equipe do AutoDev Sketch decidiu criar o AutoDev Sketch, uma ferramenta de codificação de IA de última geração, com base no conceito central de:Dicas do sistema de alta qualidade + recursos de raciocínio do Large Language Model (LLM) + reconhecimento do contexto do IDEAutoDev Sketch. Combinando organicamente todos os três, o AutoDev Sketch é capaz de entender profundamente a intenção do desenvolvedor e traduzi-la em uma visualização interativa do Sketch para uma experiência de programação assistida por IA mais inteligente e natural.
1. criar contexto de alta qualidade e vínculos de ferramentas
O AutoDev Sketch está profundamente integrado ao ecossistema de plug-ins do IDEA para obter ferramentas e consciência de contexto de alta qualidade. Por exemplo, o AutoDev Sketch integra o componente Database, que fornece à IA recursos unificados de manipulação de banco de dados e os encapsula como informações contextuais e ferramentas para ajudar os desenvolvedores a trabalhar de forma mais eficiente com os bancos de dados:
- Prompts aprimorados do sistemaQuando o usuário se conecta ao banco de dados, o AutoDev Sketch adiciona automaticamente as informações de conexão do banco de dados ao prompt do sistema, por exemplo, "Workspace context: Project using MariaDB 11.5.2-MariaDB".
- Chamada de ferramentaQuando a IA reconhece que um usuário precisa de uma operação de banco de dados, ela pode invocar proativamente a função
Banco de dados
ferramentas e utilização de/database:schema
e outras APIs para obter informações sobre o esquema do banco de dados para auxiliar na geração de código. - Interação e validação de SQLO AutoDev Sketch não apenas oferece suporte à IA para gerar código SQL, mas também permite que a IA interaja diretamente com o banco de dados para verificar a exatidão do código gerado. No futuro, o AutoDev Sketch fornecerá um mecanismo de verificação de código SQL mais completo para garantir ainda mais a qualidade do código.
Além do componente de banco de dados, o AutoDev Sketch também integra outros plug-ins úteis do IDEA, como HttpClient, SonarLint etc., que foram projetados para fornecer aos desenvolvedores recursos mais abrangentes de desenvolvimento, teste e verificação da qualidade do código.
2. um rico conjunto de ferramentas: superando a última milha da adoção automatizada
Para aprimorar ainda mais a experiência do desenvolvedor, o AutoDev Sketch explora mais profundamente a integração de ferramentas. Diferentemente dos editores de IA baseados em VSCode, como o Cursor, o AutoDev Sketch aproveita ao máximo a funcionalidade nativa do IDE e a encapsula como uma ferramenta para a IA chamar. Aqui está uma lista das ferramentas atualmente disponíveis no AutoDev Sketch:
Por exemplo.executar
erefatorar
responder cantando estrutura
O AutoDev Sketch os envolve em ferramentas projetadas para ajudar a IA a entender com mais precisão a intenção do desenvolvedor e a gerar códigos que correspondam melhor às expectativas do desenvolvedor, permitindo assim a adoção automática de códigos gerados por IA.
3. Diversas visões de esboço: Criando um fluxo mental de desenvolvimento fluido
Depois que a IA gera o código, o AutoDev Sketch renderiza o código em uma visualização interativa do Sketch, que foi projetada para ajudar os desenvolvedores a entender melhor o código gerado pela IA e com base no qual eles podem fazer edições e iterações adicionais para aprimorar a experiência geral do desenvolvedor. Para obter um fluxo mental de desenvolvimento mais suave, o AutoDev Sketch considerou totalmente as possibilidades de interação em diferentes cenários na visualização Sketch, por exemplo:
- Manuseio versátil de patches/diffsA visualização Sketch suporta o manuseio de vários patches e diferenças, facilitando para os desenvolvedores a visualização e a aplicação de alterações no código, e integra recursos como a verificação Lint para garantir a qualidade do código.
- Visualização do WebView do aplicativo front-endEm cenários de desenvolvimento de aplicativos front-end, quando o desenvolvedor inicia o serviço de desenvolvimento, o AutoDev Sketch pode abrir automaticamente a janela WebView para mostrar o efeito de execução do aplicativo em tempo real, o que é conveniente para o desenvolvedor visualizar e depurar rapidamente.
- Dependência de verificações de segurançaQuando a IA gera arquivos de dependência, a visualização do Sketch pode fornecer verificações de segurança para dependências, ajudando os desenvolvedores a identificar e abordar possíveis riscos de segurança em tempo hábil.
- Outras possibilidades de interaçãoPor exemplo, fornecer exibição estruturada de código, execução rápida de trechos de código e outras funções para melhorar ainda mais a eficiência do desenvolvimento e a experiência do usuário.
Por meio desses designs de interação contínua, o AutoDev Sketch visa minimizar a carga mental dos desenvolvedores e melhorar a eficiência geral do desenvolvimento e a experiência do usuário.
Resumindo: uma visão do futuro das ferramentas de codificação de IA 2.0
Em resumo, os principais recursos do AI Coding Tools 2.0 podem ser resumidos em três áreas principais: integração profunda da base de conhecimento de P&D e do ecossistema de ferramentas, otimização contínua dos fluxos mentais de codificação do desenvolvedor e suporte a diversas arquiteturas de modelos de IA.
- Aproveitamento do ecossistema de P&DAs futuras ferramentas de codificação de IA precisarão ser mais bem integradas às cadeias de ferramentas de P&D e às bases de conhecimento existentes para realmente permitir a geração de códigos inteligentes e funções de assistência.
- Siga o desenvolvedor Coding MindstreamPor meio de aprimoramentos e otimizações automatizados contínuos, as ferramentas de codificação de IA devem ter como objetivo criar uma experiência de codificação mais suave e eficiente para os desenvolvedores.
- Suporte à arquitetura de vários modelosPara atender às diversas necessidades de desenvolvimento, as futuras ferramentas de codificação de IA precisarão adotar uma arquitetura de vários modelos, por exemplo, usando diferentes modelos de IA para serem responsáveis por tarefas como planejamento de código, compreensão de código e conclusão de código, respectivamente.
Por meio da exploração e da prática do AutoDev Sketch, acreditamos que os desenvolvedores têm uma compreensão mais clara de como criar a próxima geração de ferramentas de codificação de IA, e a equipe do AutoDev Sketch espera que, por meio da inovação tecnológica contínua e da iteração de produtos, possamos criar ferramentas de programação de IA mais inteligentes e fáceis de usar para os desenvolvedores, para que possamos abraçar juntos a nova era do desenvolvimento de software orientado por IA.
Se você estiver interessado no AutoDev Sketch, visite o AutoDev Sketch para obter mais detalhes.