Acabei de ler o artigo da OpenAI, "Como usamos o Codex para criar o Sora para Android em 28 dias", que é realmente notável. Aproximadamente 85% do código do aplicativo cliente Sora para Android foi escrito por IA. No primeiro dia de lançamento, os usuários geraram mais de 1 milhão de vídeos em 24 horas, com alta qualidade consistente e uma taxa de 99,9% sem travamentos. Alguns certamente questionarão esse resultado, e alguns até pensarão que os programadores estão condenados. Permitam-me compartilhar minhas impressões após analisá-lo. Simplificando, é como se alguns soldados das forças especiais estivessem equipados com o armamento mais avançado — naturalmente, eles são invencíveis. Portanto, não vamos exagerar na importância desse resultado. Mesmo que não sejamos soldados das forças especiais, ainda podemos aprender lições valiosas com ele. Fred Brooks, autor de *O Mito do Homem-Mês*, disse uma famosa máxima da engenharia de software: "Adicionar mão de obra a um projeto de software atrasado só o atrasa ainda mais". Isso porque adicionar mais engenheiros geralmente reduz a eficiência devido ao aumento dos custos de comunicação, à fragmentação de tarefas e aos custos de integração. Que tal adicionar IA à equipe? Depende da capacidade dos membros da equipe em gerenciar IA. Há um ditado antigo: "Quanto mais soldados Han Xin lidera, melhor". Se os membros da equipe forem Han Xin, então quanto mais agentes de IA, melhor. A equipe de Android da OpenAI é claramente de elite, com apenas 4 pessoas, como uma unidade de forças especiais, cada uma equipada com diversos recursos de assistência robótica. Então, como eles fizeram isso? 1. Arquitetura em primeiro lugar: os humanos constroem primeiro a estrutura e, em seguida, a IA preenche as lacunas. Como faço para instalar esta prateleira? A equipe primeiro definiu a arquitetura geral do aplicativo por conta própria: uma abordagem modular, injeção de dependência, estrutura de navegação, processo de autenticação e uma camada de rede básica. Em seguida, eles escreveram manualmente diversas funções representativas como modelos. Um passo crucial: eles escreveram uma grande quantidade de arquivos, como https://t.co/9M2TJcCBVQ, que são essencialmente um guia para iniciantes em IA. Por exemplo, ele afirma que você deve executar o detektFix para verificar o formato antes de cada commit, pois a CI travará nesse ponto. Dessa forma, ele pode ler rapidamente essas especificações sempre que uma nova sessão do Codex for iniciada. É como dar a um novo funcionário uma wiki interna, reduzindo o custo de explicações repetidas. A equipe resumiu tudo em uma frase: Não precisamos dizer ao Codex como escrever código; precisamos dizer a ele o que é correto para nossa equipe. Essa é uma distinção sutil, mas importante. 2. Planeje antes de escrever o código. Inicialmente, tentaram simplificar o processo, dizendo simplesmente: "Estes são os requisitos funcionais, estes são os documentos relevantes, agora é só implementar". O código funcionava, mas estava completamente fora do padrão e não atendia à arquitetura esperada. Mais tarde, eles mudaram o processo. Para qualquer função complexa, o primeiro passo não era fazer a IA escrever o código, mas sim fazer com que ela entendesse o sistema. Por exemplo, eles a fizeram ler um conjunto de arquivos relacionados para resumir como os dados fluem da API para o Repositório, depois para o ViewModel e, finalmente, para a interface do usuário. Em seguida, os humanos corrigiam sua compreensão. Assim que o entendimento estiver correto, a IA gerará um plano de implementação, como um mini documento de projeto. Isso inclui quais arquivos precisam ser modificados, quais novos estados precisam ser introduzidos e como a lógica deve fluir. Somente após a confirmação humana de que o plano está correto, a IA iniciará a implementação. Essa fase de planejamento pode parecer lenta, mas na verdade economiza muito retrabalho. Mais importante ainda, uma vez que você sabe qual é o plano da IA, revisar o código se torna muito mais fácil. Você verifica se a execução está de acordo com o plano, em vez de ficar olhando fixamente para um monte de diferenças. Eles também têm um pequeno truque: para tarefas particularmente longas, a IA salva o plano em um arquivo. Dessa forma, ele pode continuar mesmo quando a sessão muda. Quando várias tarefas do Codex são executadas simultaneamente, toda a experiência de desenvolvimento se transforma. A sensação deixa de ser a de usar uma ferramenta e passa a ser a de gerenciar uma equipe. Uma tarefa é otimizar o reprodutor de mídia, outra é escrever a função de busca, uma terceira é lidar com a lógica de erros e uma quarta é realizar testes adicionais. Cada uma trabalha de forma independente, enviando relatórios de tempos em tempos: "Planejei este módulo, o que você acha?" Ou simplesmente lançam um diff enorme para você. O trabalho de um engenheiro mudou: de escrever código para tomar decisões e fornecer feedback. O gargalo não é mais a velocidade com que você consegue escrever código, mas sim a velocidade com que você consegue revisar e validar o código mentalmente. Isso comprova mais uma vez o mito do homem-mês: não é possível aumentar a mão de obra nem o número de agentes indefinidamente. 3. A melhor estrutura multiplataforma é o AI Agent. Outra prática interessante é o novo paradigma do desenvolvimento multiplataforma. O Sora já possui uma versão para iOS. Quando a equipe estava trabalhando na versão para Android, eles simplesmente carregaram o código-fonte do iOS no ambiente Codex. Em seguida, disseram ao Codex: "Consulte a implementação do código iOS, dê uma olhada em nossa arquitetura Android e gere o código Kotlin correspondente." Por isso, o artigo diz em tom de brincadeira: Esqueçam React Native e Flutter, o futuro framework multiplataforma é o Codex. Essa afirmação é meio séria, meio irônica. Porque a lógica de aplicação é portátil. Modelos de dados, requisições de rede e regras de validação — sejam escritas em Swift ou Kotlin — são essencialmente a mesma coisa. A IA se destaca nesse tipo de trabalho de tradução; dado contexto suficiente, ela pode realizar conversões sem perda de dados entre idiomas. Então, olhando para trás, por que dizemos que não devemos divinizá-los em excesso? Embora a equipe seja composta apenas por quatro pessoas, cada uma delas é um líder como Han Xin, habilidosa em guiar um time e em usar o Agente com maestria. Mesmo assim, mais nem sempre é melhor; ainda são necessárias pessoas para atribuir tarefas e verificar resultados. Além disso, como já possuem o código iOS, grande parte da lógica pode ser compartilhada, bastando à IA "traduzi-la". Mas ainda há muitas coisas para aprender. Primeiro, projete a arquitetura e, em seguida, deixe a IA preencher as lacunas. Isso facilita a manutenção do código e garante melhor qualidade. Planeje antes de escrever o código, permitindo que a IA compreenda completamente o contexto antes de agir. Muitas pessoas reclamam que o Codex é muito lento, mas às vezes me preocupo que o agente possa agir de forma muito rápida e errática. Prefiro esperar um pouco mais e deixá-lo aprender mais sobre o contexto para que tenha sucesso na primeira tentativa. Caso contrário, a retrabalho seria muito mais demorada. Forneça à IA boas referências para que ela possa aprender por imitação. Inicialmente, dedique tempo a documentar as melhores práticas; fazer com que a IA consulte essas melhores práticas posteriormente melhorará significativamente seu desempenho. Se houver implementações disponíveis em outras linguagens, fazê-la "traduzi-las" também será muito mais eficiente. Somente fazendo essas coisas você poderá utilizar o desenvolvimento assistido por IA de forma eficaz. O desenvolvimento assistido por IA não diminui os padrões de desenvolvimento; pelo contrário, os eleva. Um agente se destaca na execução de uma tarefa pequena e específica, mas a engenharia de software não é uma tarefa pequena; ela consiste em inúmeras pequenas tarefas que mudam dinamicamente. Essas tarefas precisam ser decompostas e validadas por humanos. Portanto, as competências essenciais dos futuros engenheiros de software não serão escrever código rapidamente, mas sim duas coisas: uma compreensão profunda do sistema e a capacidade de colaborar com IA a longo prazo. O código está ficando mais barato, mas o bom gosto está ficando mais caro. Aqueles que conseguem definir o que é certo, o que é elegante e o que está voltado para o futuro se tornarão cada vez mais raros. A inteligência artificial assumiu o trabalho de alvenaria, mas o trabalho de projeto ainda é seu.
Carregando detalhes do thread
Buscando os tweets originais no X para montar uma leitura limpa.
Isso normalmente leva apenas alguns segundos.
