Bom pessoal, falei pra vocês que eu ia dar alguns exemplos aí, né? Então, por exemplo, debugging com raciocínio lógico. Então eu tenho um prompt que você é um desenvolvedor Go, analise o seguinte código, explique passo a passo porque ele pode causar um erro. Então eu tenho, por exemplo, aqui uma resposta esperada. A variável lista é declarada como slice de strings, mas não foi inicializada. Um slice não foi inicializado tem tamanho zero. Acessar a lista zero viola o limite do slice, pois não há elementos. Resultado final, o programa entra em pânico por acesso fora de limites. Então, se você começa a perceber, você entende não só a resposta, mas ele te dá um encadeamento de raciocínio, porque ele está chegando lá. E o mais interessante é, eventualmente, você começar a conseguir entender o passo a passo do porquê ele está fazendo alguma coisa. Então, sempre assim, tenha um passo a passo, step by step ou qualquer coisa desse tipo. Lembre-se que é você trabalhando com chain of thoughts. Um exemplo aqui de Chain of Thoughts. Refaturação com justificativa técnica. Reescreva função abaixo, seguindo o padrão Early Return, e explique cada modificação passo a passo. Então, eu tenho aqui um exemplo de um código com vários ELCs aqui. Se você programa dessa forma, por favor, aprenda Early Return. Mas eu tenho um exemplo desse cara aqui no GPT, que eu acabei de pedir para ele. Então, eu copiei aquele prompt ali, baseado ali para mim. Então, coloquei a mesma função, botei aqui o passo a passo, e agora, olha só, segue a versão reescrita do early return. Então, a primeira coisa que você percebia é, reescreva a função abaixo. Então, a primeira coisa que ele fez foi reescrever a função. E agora, explique passo a passo. E agora, nesse momento, ele traz para mim, etapa 1, identificar o uso de lógica encadeada desnecessária. A função original usava blocks e if-else alinhados que resultavam em múltiplas verificações. Etapa 2. Aplicar o Early Return para condições de erro. A técnica Early Return consiste em retornar o erro o mais cedo possível quando uma condição é satisfeita. No caso, o e-mail estiver vazio, já retornamos. Se o e-mail estiver preenchido, já pode verificar e etc. Etapa 3. Eliminar tiver preenchido, já pode verificar e etc. Etapa três, eliminar variável erro. Como o caso de erro é retornado diretamente e etc. Então, se você olhar aqui, a gente consegue ver, tá? O passo a passo do que ele tá fazendo, do que ele tá pensando e te justificando inclusive ele mesmo se autoajuda para resolver esse tipo de problema. E provavelmente você vai ver diferenças no meu prompt se eu fizer o seguinte, olha só. Seguindo o padrão early return, explique passo a passo, olha só o que eu vou fazer, preste atenção. explique passo a passo olha só o que eu vou fazer, preste atenção seguindo o padrão return explique passo a passo explique passo a passo como modificar a função abaixo e faça a refatoração. Estou colocando aqui para mim. Basicamente isso que eu estou falando. Então, agora eu inverti um pouco a história. Eu falei, seguindo o padrão early return, explique passo a passo como modificar a função abaixo e faça a refatoração. Basicamente, o que eu fiz aqui foi inverter a ordem do que eu estou pedindo aqui para mim. E agora, olha só o tipo de retorno como ele vai mudar para mim. Agora, ele não está querendo sair refatorando e depois me explicar. Primeiro, ele tá gerando a linha de raciocínio inicial pra depois refatorar. Então, ele explica na cabeça aqui, o padrão early return faz isso. O código original é esse. A refatoração passo a passo é 1. Identificar as condições de erro. 2. Retornar imediatamente a condição de erro. Três, eliminar os blocos. Código refatorado com early return. Aí ele trouxe alguns exemplos. Então você consegue perceber como a mudança, inclusive de ordem que você fez no prompt, muda completamente a forma da resposta e não só a forma, tá? a forma da resposta e não só a forma, tá? Muitas vezes, a qualidade da resposta ou a assertividade. Porque aqui, o que eu fiz ele fazer? Eu fiz ele pensar primeiro o que ele tinha que resolver e depois que ele pensou o que ele tinha que resolver, ele refatorou o código. Tá? Então, são coisas diferentes. Você pensar e fazer ou fazer e depois pensar. E tudo isso tem a ver com o Chain of Thoughts aqui pra você conseguir se ligar ao nível de importância que a gente tem com isso. Tá? Existem mais exemplos aqui que eu posso trazer. Eu gosto de focar bastante nessa parte de chain of thought, porque ele começa a virar a base para as outras formas de encadeamento de pensamento, tá? Então aqui, por exemplo, descreva todas as etapas envolvidas na migração de uma aplicação monolítica para microserviço baseado em eventos, para cada etapa inclua pré-requisitos, riscos e validações, organize o raciocínio em sequência lógica e valide antes de concluir. Então, aqui obviamente é um exemplo simplificado, mas ele trouxe identificação dos domínios, definição das fronteiras de contexto, extração de serviços, implementação de mensageria, implementação de observabilidade, teste de regressão, resultado final, arquitetura distribuída, validada com ganhos de resiliência e escalabilidade. Óbvio que é um exemplo bem simplificado, mas se você começa a perceber, olha só que interessante, quando você quer pedir para a IA desenvolver algum software para você ou para ele desenvolver uma tarefa, você tem aquele desafio. Então você pode chegar e falar, olha, eu tenho esse problema, tá? Mostre para mim como você resolveria esse problema passo a passo. Aí ele mostra para você como ele resolveria passo a passo esse problema. Aí você pode questionar, esse passo você poderia mudar para isso? Sim. Ok, então você tem esse passo a passo para resolver esse problema. Então, faça o seguinte, vamos fazer com que esse passo a passo vire tarefas, tá? E subdivida essas tarefas em passo a passo. Aí, ele gerou essas subtarefas, agora você fala, agora siga cada uma dessas tarefas e implemente cada passo pra o desenvolvimento dessa feature. Então você conseguiu entender como isso muda a forma de você trabalhar com a IA na hora de programar, por exemplo? O passo a passo é o que faz a IA não ficar viajando, abrindo um monte de arquivo e editando, porque ela sabe o que ela tem que fazer. O mais interessante é que você pode deixar ela definir o passo a passo, você pode concordar ou não, e aí, baseado nesse passo a passo, você pede pra ela implementar. Nunca, já uma dica que eu dou agora pra você, você vai começar a programar, a desenvolver na sua IDE, tá? Nunca saia falando, desenvolva isso, corrija isso. Sempre coloque. Pense passo a passo como resolver o problema assim, assim, assado. Aí ela vai gerar a ideia pra você. Aí você pode concordar ou não com a ideia. Daí você fala, baseado nesse passo a passo, então faça tarefa por tarefa. Assim que você terminar, pare para eu validar. Então, isso aí já muda completamente a forma de você programar. Tá? Então, importantíssimo você se ligar. Então, no próximo vídeo eu quero falar sobre estratégias e como você criar e escrever esses prompts. Baseado na Anthropic. Então, vamos nessa. Não quero deixar esse vídeo tão longo.