Meu fluxo COMPLETO de desenvolvimento avançado com IA
Fluxo Completo de Desenvolvimento com IA
Introdução ao Vídeo
- O vídeo apresenta um fluxo completo para desenvolver uma funcionalidade complexa utilizando inteligência artificial (IA), prometendo reduzir o tempo de desenvolvimento de dias para minutos.
- Valdemar Neto, o apresentador, discute temas como desenvolvimento avançado de software, liderança e IA, incentivando os espectadores a interagir com o canal.
Preparação para Desenvolvimento
- O vídeo aborda a necessidade de um setup mínimo da IA no repositório para garantir produtividade.
- A importância da engenharia de contexto é destacada; bons documentos de design (design docs) são essenciais para entender as expectativas do negócio e facilitar o uso da IA.
Contexto e Ferramentas
- O contexto deve ser bem definido através de documentos como RFCs, ADRs e PRDs. Um exemplo prático é dado usando Confluence como fonte de design doc.
- A ferramenta central mencionada é o Cursor, que ajuda a dividir um design doc em tarefas gerenciáveis no Jira.
Exemplo Prático: Integração com Stripe
- O projeto em questão envolve integrar o Stripe como gateway de pagamento em um sistema fictício chamado "Fake Flix".
- Um design doc detalha as funcionalidades necessárias, incluindo a criação de clientes e gerenciamento de métodos de pagamento.
Estrutura do Repositório
- É apresentado um monorrepo modular onde será implementada a integração com Stripe. A configuração do conhecimento e contexto é crucial para efetividade na utilização da IA.
- As regras (rules), habilidades (skills), e documentação são discutidas como componentes fundamentais na estrutura do projeto.
Conclusão sobre Documentação
- A apresentação enfatiza que uma boa documentação deve ser revisada por humanos antes que a IA seja utilizada para enriquecer o código.
Introdução ao Progressive Disclosure e RPI
Conceitos Iniciais
- O apresentador discute o conceito de "progressive disclosure" e menciona o "Research Plan Implement" (RPI), que será abordado na prática.
- Ele destaca a importância de criar "skills" para automatizar tarefas, como acessar documentos no Confluence ou criar tickets no Jira, evitando prompts repetitivos.
Criação de Skills
- As skills são contextos especializados que permitem interações eficientes com ferramentas como Confluence e MCP da Atlacen.
- O apresentador enfatiza que a documentação do projeto é crucial para entender a estrutura modular e os padrões de código, permitindo uma execução mais rápida das funcionalidades.
Desenvolvimento de Funcionalidades
Estrutura do Projeto
- Ao iniciar uma nova funcionalidade, é importante avaliar se todos os requisitos do MVP estão definidos no design doc.
- A diferença entre MCP (Multi-channel Protocol) e skills é explicada: MCP lida com informações remotas enquanto skills operam localmente.
Definição do MVP
- O apresentador menciona que alguns elementos ainda não estão definidos, como web hooks e tratamento de erros, mas um MVP básico já está em andamento.
- Ele sugere ler o "architecture overview" para definir uma arquitetura modular adequada ao projeto.
Quebra de Tarefas
Organização das Tarefas
- O processo envolve quebrar as tarefas necessárias para o desenvolvimento em partes menores, facilitando a gestão do trabalho.
- A IA gera tarefas baseadas em fases específicas do projeto; cada fase deve ser tratada como uma tarefa distinta para melhor organização.
Execução das Tarefas no Jira
- As tarefas geradas incluem configuração inicial, persistência e serviços principais. É destacado que o contexto técnico deve ser mantido em alto nível nas descrições das tarefas.
- Após a criação das tarefas no Jira, o foco se volta para o desenvolvimento efetivo das funcionalidades utilizando as skills previamente definidas.
Explorando a Paralelização com IA
Oportunidades de Paralelização
- A inteligência artificial (IA) pode criar tarefas e avaliar o esforço necessário para completá-las, especialmente em um monorrepo onde tudo está integrado.
- Algumas sugestões de paralelização incluem a configuração inicial, persistência de dados e integração do cliente. No entanto, muitas tarefas ainda não são paralelizáveis.
Gerenciamento da Janela de Contexto
- É importante abrir novos contextos frequentemente para manter a janela de contexto baixa, evitando que a IA "alucine" devido à sobrecarga de informações.
- Manter a janela de contexto em torno de 30% é ideal para garantir eficiência na execução das tarefas.
Planejamento e Execução
- O apresentador menciona um workshop avançado sobre desenvolvimento com IA, destacando sua importância prática e acessibilidade financeira.
- Após criar um plano inicial, é essencial revisar se ele segue as estruturas do projeto e se está alinhado com as regras documentadas.
Revisão do Plano Criado
- A revisão do plano envolve verificar se as configurações estão corretas e se o cliente Stripe foi implementado adequadamente.
- Um aumento no contexto durante a criação do plano indica que projetos maiores exigem mais pesquisa por parte da IA.
Estratégias Durante o Desenvolvimento
- Para otimizar recursos, recomenda-se usar modelos mais baratos para executar planos complexos, como o Composer do Cursor.
- Ao lidar com funcionalidades não paralelizáveis, é possível utilizar tempo livre para trabalhar em outras tarefas ou criar novas branches no Git sem impactar o trabalho principal.
Gerenciamento de Bugs e Implementações Paralelas
Criação e Resolução de Bugs
- O apresentador discute a possibilidade de trabalhar em diferentes branches, permitindo resolver bugs enquanto se desenvolve novas funcionalidades.
- Ele menciona a criação de uma branch específica para corrigir um bug chamado "Ken 17", destacando a flexibilidade do sistema ao permitir múltiplas implementações simultâneas.
Execução de Tarefas em Paralelo
- O uso de várias instâncias é abordado, onde o apresentador enfatiza que, com recursos financeiros adequados, é possível executar diversas tarefas ao mesmo tempo.
- A importância da paralelização é ressaltada, permitindo que o desenvolvedor trabalhe em múltiplos planos sem conflitos entre eles.
Processos e Verificações
- O apresentador explica como o sistema realiza verificações automáticas (lint e build), garantindo que as implementações estejam corretas antes do merge na branch principal.
- Ele destaca que os testes passaram com sucesso, indicando que as mudanças feitas não introduziram novos problemas no código.
Documentação e Assertividade
- A boa documentação do projeto é mencionada como um fator crucial para garantir assertividade nas implementações e facilitar o trabalho paralelo.
- O apresentador conclui a correção do bug e inicia uma nova implementação, reforçando a ideia de que uma documentação clara permite maior eficiência no desenvolvimento.
Mentalidade Moderna dos Desenvolvedores
- É discutido como os novos desenvolvedores já chegam com uma mentalidade voltada para a paralelização das tarefas desde o início da carreira.
- O apresentador reflete sobre as preocupações com desenvolvedores juniores, mas observa que eles estão mais preparados para lidar com multitarefas devido à evolução das práticas de desenvolvimento.
Implementação Final e Conclusão
- A criação de serviços específicos dentro do projeto é detalhada, mostrando como cada parte interage dentro da arquitetura proposta.
- O apresentador finaliza sua apresentação enfatizando a importância da execução paralela durante períodos de espera por processos concluírem.
Aprendendo com Work Trece
Ferramentas e Produtividade
- O trabalho com a ferramenta "work trece" é altamente recomendado para aprendizado, pois oferece suporte significativo.
- É importante encontrar ferramentas que ajudem na realização de merges de volta na branch principal, o que pode aumentar consideravelmente a produtividade.
- O autor incentiva os espectadores a comentarem sobre as ferramentas que utilizam e suas experiências, promovendo uma troca de conhecimento.
- Há um convite para os espectadores compartilharem feedback sobre o vídeo e esclarecerem dúvidas que possam ter surgido.
- O autor menciona que deixará links para um workshop e uma live onde abordará habilidades e contextos relevantes.