<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://bruno-ns.github.io/blog</id>
    <title>Bruno Blog</title>
    <updated>2026-03-28T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://bruno-ns.github.io/blog"/>
    <subtitle>Bruno Blog</subtitle>
    <icon>https://bruno-ns.github.io/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Utilizei IA para criar um componente em uma linguagem de programação "desconhecida"]]></title>
        <id>https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programação-desconhecida</id>
        <link href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programação-desconhecida"/>
        <updated>2026-03-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A IA realmente consegue programar de forma autónoma numa linguagem "desconhecida" e com pouca documentação? 🤔]]></summary>
        <content type="html"><![CDATA[<p>A IA realmente consegue programar de forma autónoma numa linguagem "desconhecida" e com pouca documentação? 🤔</p>
<p><strong>Se você quiser pular a história e ir direto para a prática, vá para a seção: <a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#insights-antes-de-falar-com-a-ia" class="">Insights antes de falar com a IA</a>.</strong></p>
<p>Apesar da minha base de programação ser Java — tanto no aprendizado da faculdade quanto profissionalmente —, em 2020 recebi o desafio de desenvolver em xHarbour (ou Harbour).</p>
<p>Nunca tinha ouvido falar dessa linguagem até então. Claro que fui pesquisar na internet e percebi que ela não fugia da realidade de uma linguagem de programação padrão. Ela é orientada a objetos e possui uma estrutura e sintaxe comuns, com seus tradicionais "IF e ELSE". Falei com meu contratante, aceitei o compromisso e comecei minha jornada de programação em xHarbour.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-linguagem-desconhecida-xharbour">A linguagem desconhecida (xHarbour)<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#a-linguagem-desconhecida-xharbour" class="hash-link" aria-label="Link direto para A linguagem desconhecida (xHarbour)" title="Link direto para A linguagem desconhecida (xHarbour)" translate="no">​</a></h2>
<p>É uma linguagem com pouco conteúdo disponível na internet, mas o que existe é bom e ajuda muito. Fiz o que todo desenvolvedor faz (ou deveria fazer) ao aprender uma linguagem nova: fui ler a documentação oficial. Comecei a ver as funções nativas, sintaxe, como construir uma classe e fui destrinchando tudo. Em paralelo, comecei a programar na empresa, perguntando muito para os colegas de trabalho que já dominavam a tecnologia — e fazia muitas perguntas mesmo!</p>
<blockquote>
<p><em>Faço a observação de que a chamei de linguagem "desconhecida" no título porque ela não costuma aparecer nos resultados principais de pesquisas como a <a href="https://survey.stackoverflow.co/" target="_blank" rel="noopener noreferrer" class="">Stack Overflow Developer Survey</a>.</em></p>
</blockquote>
<p>Apesar do pouco conteúdo online, fui aprendendo com facilidade. Confesso que fiquei surpreso com o que a linguagem pode fazer. Ela não fica para trás em comparação com muitas linguagens modernas. Fui analisando o código-fonte nativo e os exemplos em anexo, me aprofundando a cada nova demanda.</p>
<p>Uma das coisas que tínhamos era uma biblioteca gráfica (GUI) com diversos componentes, da qual eu também tinha acesso ao código-fonte. Percebi que dava para criar componentes específicos para o projeto que assumi, visando diminuir a necessidade de codificação repetitiva ou otimizar telas existentes. Acabei não fazendo isso na época devido ao volume de demandas urgentes e falta de tempo hábil.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-era-da-inteligência-artificial">A Era da Inteligência Artificial<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#a-era-da-intelig%C3%AAncia-artificial" class="hash-link" aria-label="Link direto para A Era da Inteligência Artificial" title="Link direto para A Era da Inteligência Artificial" translate="no">​</a></h2>
<p>Atualmente (escrevo isso em 2026), estamos em uma corrida das Inteligências Artificiais. Tudo começou a ganhar força entre 2022 e 2023, com evoluções significativas. Estive testando diversas IAs, modelos e contextos. Percebi que ajudavam bastante, mas quando chegava na hora de <strong>desenvolver projetos reais</strong>, o resultado não era o que eu esperava.</p>
<p>Falo de desenvolver um projeto de médio porte: rotas, regras de negócio complexas, validação de dados, autenticação de dois fatores, arquitetura, testes unitários, CI/CD, etc. Na virada do semestre de 2025, tentei criar um projeto em Java com a ajuda da IA. Fiz um esboço em Markdown sobre o objetivo, arquitetura e camadas. Fui enviando <em>prompts</em> e ela gerou uma lista de tarefas ("To-Do"). Refinei essa lista e instruí a IA a fazer parte por parte.</p>
<p>A premissa era: antes de fazer o <em>commit</em>, a IA precisava testar fazendo o <em>build</em>. Depois, eu mesmo testava manualmente para evitar falsos positivos e lia <strong>cada linha</strong> de código gerada. Nada, absolutamente nada, do que a IA escreveu eu deixei de ler, olhei cada código que ela gerou.</p>
<p>Nas primeiras tarefas, foi tranquilo. Mas chegou um momento em que a IA começou a errar. Teve momentos onde eu desfazia tudo, apontava o erro, dava novas instruções e pedia para refazer. Até que deu ruim: ela entrou em um loop que parecia interminável. Ela errava a codificação, o <em>build</em> quebrava, ela mesma lia o erro e tentava corrigir, mas só piorava. Começou a "alucinar" e fugiu completamente do escopo.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="minha-decepção">Minha Decepção<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#minha-decep%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para Minha Decepção" title="Link direto para Minha Decepção" translate="no">​</a></h3>
<p>Chegou a um ponto em que a IA deletou toda uma regra de negócio apenas para o erro sumir no <em>build</em>. Isso, para mim, foi o fim. Já tinha gasto quase o meu fim de semana inteiro, pra não dizer o meu final de semana inteiro, para não ter algo consistente.</p>
<blockquote>
<p><em>Devo destacar que o básico de um projeto a IA entregou perfeitamente: login, rotas, repositórios, configurações de Git e bibliotecas. Entre outras coisas que todo inicio de projeto tem.</em></p>
</blockquote>
<p>Fiquei decepcionado e cansado com o que foi gerado. Ficou a lição: a IA servia para várias coisas, mas não para desenvolver de ponta a ponta um projeto de médio porte. E não era tão complexo o que eu estava querendo fazer.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="surgimento-de-uma-nova-chance">Surgimento de uma nova chance<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#surgimento-de-uma-nova-chance" class="hash-link" aria-label="Link direto para Surgimento de uma nova chance" title="Link direto para Surgimento de uma nova chance" translate="no">​</a></h2>
<p>Chegamos a 2026. Muita água passou debaixo da ponte: evoluções de ferramentas, melhorias de contexto, etc. Um dia, lendo o blog de um desenvolvedor e empresário que teve exatamente o mesmo problema que eu, me deparei com o artigo: <a href="https://akitaonrails.com/2026/02/20/do-zero-a-pos-producao-em-1-semana-como-usar-ia-em-projetos-de-verdade-bastidores-do-the-m-akita-chronicles/" target="_blank" rel="noopener noreferrer" class="">Do Zero à Pós-Produção em 1 Semana - Como usar IA em Projetos de Verdade</a>.</p>
<p>Pelos relatos, a IA finalmente havia chegado a um estágio muito superior. Diante dessa nova perspectiva, resolvi colocá-la à prova: vou fazer a IA criar um componente visual complexo em xHarbour, herdando classes GUI de uma biblioteca já existente. Vamos ver se ela vai dar conta.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="insights-antes-de-falar-com-a-ia">Insights antes de falar com a IA<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#insights-antes-de-falar-com-a-ia" class="hash-link" aria-label="Link direto para Insights antes de falar com a IA" title="Link direto para Insights antes de falar com a IA" translate="no">​</a></h2>
<p>Lendo a publicação citada, identifiquei algo que eu já fazia instintivamente, mas não deixava claro para a IA: o uso da metodologia <strong>Extreme Programming (XP) e Pair Programming</strong>. Como diz o artigo: <em>"Um gerador de código recebe uma spec e devolve output. Um par de pair programming conversa."</em></p>
<p>Deixei claro para a IA que usaríamos XP. Eu seria o <strong>Navegador Sênior</strong> (definindo a direção, questionando decisões, corrigindo a rota) e a IA seria o <strong>Piloto</strong> (escrevendo o código, testando e apresentando soluções).</p>
<p><em>(Confissão: não apliquei testes e nem CI abordados no XP neste momento. Fiz isso deliberadamente por um bom motivo, não me julgue!)</em></p>
<p>O <em>insight</em> de ouro foi esse: usar uma metodologia clara, tratar a IA como uma aprendiz e assumir o controle direcional.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fazendo-a-ia-estudar">Fazendo a IA estudar<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#fazendo-a-ia-estudar" class="hash-link" aria-label="Link direto para Fazendo a IA estudar" title="Link direto para Fazendo a IA estudar" translate="no">​</a></h2>
<p>Iniciei criando um arquivo chamado <code>IDEA.md</code>. Lá, escrevi que usaríamos Extreme Programming, nossos papéis, o objetivo do projeto, a linguagem e a estrutura de pastas.</p>
<p>Como o xHarbour tem pouca base de conhecimento pública, fiz a IA "estudar" a linguagem. Direcionei a leitura para uma pasta específica contendo uma biblioteca com código orientado a objetos bem estruturado em xHarbour, além de sua documentação. Pedi no prompt para analisar com profundidade cada arquivo e as heranças de classes.</p>
<p>A IA fez a leitura em um tempo bom, nem rápido demais mas também não demorou uma hora pra fazer toda a leitura das pasta.</p>
<p>Após a leitura, executei um comando próprio da ferramenta de IA (<code>/init</code>). Basicamente, isso cria um arquivo chamado <code>AGENTS.md</code>, que funciona como um manual de instruções e regras para a IA não se perder durante as sessões. (Muitas IAs utilizam essa mecânica de instrução em nível de projeto, operando diretamente do terminal Linux na pasta raiz).</p>
<blockquote>
<p>Observação: Eu estava utilizando a IA em um terminal linux. Muitas IAs para desenvolvimento estão com esse tipo de interação onde você utiliza o terminal para falar diretamente com a IA e ela tem acesso à pasta ao qual você está no terminal (desde que você autorize a leitura da pasta).</p>
</blockquote>
<p>A IA processou a biblioteca e criou diretrizes de codificação, sintaxe, sugestões de melhorias e padrões de comentários. Isso gerou 6 arquivos Markdown de regras, referenciados no <code>AGENTS.md</code>.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Estrutura gerada pela IA para entender o contexto do projeto:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">.iacode/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── .gitignore</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── commit-flow.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── component-flow.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── estudo.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">└── rules/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ├── comentarios.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ├── library.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ├── melhorias.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    └── sintaxe.md</span><br></span></code></pre></div></div>
<p>| Nota: O nome da pasta <code>.iacode</code> é fictício. Resolvi mascarar para você que está lendo este material não ficar preso ou migrar para uma IA específica, mas buscar saber se a sua IA tem os mesmo recursos relatados aqui. O arquivo <code>.gitignore</code> foi a própria IA que criou.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="componente">Componente<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#componente" class="hash-link" aria-label="Link direto para Componente" title="Link direto para Componente" translate="no">​</a></h2>
<p>Finalemnte comecei o desenvolvimento do primeiro componente em xHarbour: um input customizado para entrada de dados, como qualquer <code>&lt;input&gt;</code> da vida. Descrevi a classe pai da qual herdar, o nome do arquivo, a necessidade de um arquivo <code>.ch</code> para constantes (DEFINE no Harbour) e a criação de pseudofunções. Pedi também uma implementação nativa de validação de CPF/CNPJ (com mensagens e mudança de cor de fundo em caso de erro), validação que considero básica para este tipo de componente.</p>
<p>Claro que aqui eu estou resumindo bastante o prompt enviado para IA, pois se tratava de várias linhas. Gastei bons 30 minutos elaborando esse prompt detalhado — e mais alguns minutos preparando um café.</p>
<p>Enviei as instruções e a "mágica" começou. A IA criou uma lista de to-do no terminal e foi executando. Na primeira revisão do código gerado, percebi a falta de inicialização de algumas variáveis da classe herdada, atributos duplicados e uso de constantes não declaradas no arquivo <code>.ch</code>.</p>
<p>Relatei os detalhes para a IA. Instruí que a função de validação de CPF/CNPJ poderia ser simplificada e extraída para um arquivo <code>.prg</code> dedicado.</p>
<blockquote>
<p>Peço perdão por não postar aqui os prompts utilizados, pois eu não esperava que a IA iria cumprir tão bem o que eu estava querendo, pois afinal de contas eu já tinha um tralma de ela não fazer corretamente o que pedi, devido a isso não estava com boas expectativas.
Mas como a IA cumpriu o que eu estava querendo me deixou bem alegra e resolvi escrever relatando um pouco a respeito.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testando-o-componente">Testando o componente<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#testando-o-componente" class="hash-link" aria-label="Link direto para Testando o componente" title="Link direto para Testando o componente" translate="no">​</a></h3>
<p>Depois de um belo tempo e mais algumas interações com a IA finalmente fui testar o componete instanciando-o por <code>REDEFINE</code> em um <em>Dialog</em>. E adivinhe só? Não funcionou, gerou um erro, rsrsrsrs.</p>
<p>Já estava esperando um erro. Mas pra minha alegria era algo muito simples, era a falta de declaração de uma constante que vinha da classe pai. Bastou criar a constante no arquivo <code>.ch</code> e pronto, por incrivel que pareça <strong>funcionou perfeitamente</strong>, validou o CPF e CNPJ que digitei, exibiu mensagens e mudou a cor do fundo conforme solicitado.</p>
<p>Fiquei bem surpreso e alegre ao mesmo tempo por conseguir fazer a IA escrever todo o código enquando eu era o copiloto instruindo ela. <strong>Sim, eu não escrevi nada de código, apenas prompts e revisões.</strong></p>
<blockquote>
<p>Teve alguns detalhes bem superficiais aos quais não relatei aqui ao quais julguei não ser necessários para tentar ser mais direto no que eu fiz. Mas tentei relatar aqui cada detalhe feito.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="minha-impressão">Minha impressão<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#minha-impress%C3%A3o" class="hash-link" aria-label="Link direto para Minha impressão" title="Link direto para Minha impressão" translate="no">​</a></h2>
<p>Tentando analisar de um ângulo fora da caixa posso dizer: se eu não tivesse me aprofundado na linguagem nativamente, não saberia como direcionar a IA. Fazer um componente exige estrutura, comportamento e métodos. Apesar de ser programação um componente não é tão simples assim. Por isso entender a fundo a linguagem continua sendo essencial.</p>
<p>Conhecer a ferramenta da IA e ler sua documentação também é crucial. Sem isso, eu não saberia o caminho, os comandos de terminal disponíveis e o melhor modelo a escolher.</p>
<p>Sigo com o lema de que sou um <strong>eterno aprendiz</strong>: <em>"Ensine ao justo, e ele aumentará em saber"</em> (Provérbios 9:9b). Continuarei explorando a IA para que ela gere mais valor com menos atrito.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluxo-para-facilitar-a-vida">Fluxo para facilitar a vida<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#fluxo-para-facilitar-a-vida" class="hash-link" aria-label="Link direto para Fluxo para facilitar a vida" title="Link direto para Fluxo para facilitar a vida" translate="no">​</a></h2>
<p>A partir de toda a interação, tive a ideia de criar um fluxo para criação de novos componetes para que a IA não cometesse os mesmo erros. Afinal de contas fluxo e comandos é uma das ferramentas embutida na IA ao qual eu estava utlizando. (Resalvo que isso não é exclusivo mas muitas outras IAs para desenvolvedores usam este mesmo recurso)
E acbou criando um arquivo chamado <code>.iacode/component-flow.md</code></p>
<p>Nesta mesma pegada, criei um fluxo e comando para fazer commit, pra acelerar o meu processo de commit, pricipalemnte a parte de descrever o que foi feito, a parte mais demorada e "chatinha" de fazer. Gerou o arquivo <code>.iacode/commit-flow.md</code></p>
<p>Agora basta eu enviar o comando <code>/component</code> ou <code>/commit</code> então a IA irá iniciar um fluxo próprio para cada uma dos pedidos.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="próximos-passos">Próximos passos<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#pr%C3%B3ximos-passos" class="hash-link" aria-label="Link direto para Próximos passos" title="Link direto para Próximos passos" translate="no">​</a></h2>
<p>Vou continuar evoluindo este componete adicionando busca e validação de CEP, validação de telefone, disparo de eventos e outras necessidades do dia a dia em xHarbour. O objetivo é facilitar o trabalho não apenas meu, mas de toda a equipe.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="dados-do-projeto">Dados do Projeto<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#dados-do-projeto" class="hash-link" aria-label="Link direto para Dados do Projeto" title="Link direto para Dados do Projeto" translate="no">​</a></h2>
<p>Levei cerca de 11 horas (duas noites de trabalho) para finalizar tudo. O esforço resultou em 7 commits distintos (3 features, 1 chore, 1 fix e 2 docs).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="componente-gerado">Componente gerado<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#componente-gerado" class="hash-link" aria-label="Link direto para Componente gerado" title="Link direto para Componente gerado" translate="no">​</a></h3>
<table><thead><tr><th>Arquivo</th><th>Linhas</th><th>Tipo</th></tr></thead><tbody><tr><td><code>componente.prg</code></td><td>595</td><td>xHarbour (.prg)</td></tr><tr><td><code>componente.ch</code></td><td>158</td><td>Include (.ch)</td></tr><tr><td><code>valida.prg</code></td><td>442</td><td>Funções (.prg)</td></tr><tr><td><strong>Subtotal componente</strong></td><td><strong>1.195</strong></td><td><strong>Código</strong></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="arquivos-de-contexto-da-ia">Arquivos de Contexto da IA<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#arquivos-de-contexto-da-ia" class="hash-link" aria-label="Link direto para Arquivos de Contexto da IA" title="Link direto para Arquivos de Contexto da IA" translate="no">​</a></h3>
<table><thead><tr><th>Arquivo</th><th>Linhas</th><th>Tipo</th></tr></thead><tbody><tr><td><code>commit-flow.md</code></td><td>287</td><td>Documentação de fluxo</td></tr><tr><td><code>component-flow.md</code></td><td>221</td><td>Documentação de fluxo</td></tr><tr><td><code>estudo.md</code></td><td>79</td><td>Estudo</td></tr><tr><td><code>AGENTS.md</code></td><td>601</td><td>Manual do Agente</td></tr><tr><td><code>rules/*.md</code></td><td>934</td><td>Regras</td></tr><tr><td><strong>Subtotal .aicode</strong></td><td><strong>2.122</strong></td><td><strong>Documentação</strong></td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluxo-utilizado">FLuxo utilizado<a href="https://bruno-ns.github.io/blog/utilizei-ia-para-criar-um-componente-em-uma-linguagem-de-programa%C3%A7%C3%A3o-desconhecida#fluxo-utilizado" class="hash-link" aria-label="Link direto para FLuxo utilizado" title="Link direto para FLuxo utilizado" translate="no">​</a></h3>
<p>Veja que é uma imagem bem resumida mas para aqueles que leram a publicação irá conseguir entender a imagem.</p>
<p><img decoding="async" loading="lazy" alt="Diagrama de fluxo técnico detalhado, com texto em português do Brasil, ilustrando um processo de desenvolvimento de software que combina a metodologia Extreme Programming (XP) com inteligência artificial. O diagrama está organizado de cima para baixo e da esquerda para a direita, com setas conectando as seções." src="https://bruno-ns.github.io/assets/images/2026-03-28-ia-criar-componente-xharbour_fluxo_trabalho_pair_programming_com_ia-20fc4f47a452db419f1c84f6f6bf87a6.png" width="2816" height="1536" class="img_ev3q"></p>]]></content>
        <author>
            <name>Bruno Nogueira Silva</name>
            <uri>https://linkedin.com/in/bruno-nogueira-silva-b2b590281</uri>
        </author>
        <category label="IA" term="IA"/>
        <category label="Harbour, xHarbour, Clipper" term="Harbour, xHarbour, Clipper"/>
    </entry>
</feed>