<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blogs on Ivaldo de Oliveira Batista Júnior</title><link>https://ivaldo.eti.br/pt/blog/</link><description>Recent content in Blogs on Ivaldo de Oliveira Batista Júnior</description><generator>Hugo</generator><language>pt</language><copyright>© 2026 Ivaldo de Oliveira Batista Júnior</copyright><lastBuildDate>Thu, 30 Jul 2026 09:00:00 -0300</lastBuildDate><atom:link href="https://ivaldo.eti.br/pt/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Quem Assina as Decisões da IA?</title><link>https://ivaldo.eti.br/pt/blog/etica-inteligencia-moral-na-era-digital/</link><pubDate>Thu, 30 Jul 2026 09:00:00 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/etica-inteligencia-moral-na-era-digital/</guid><description>&lt;h2 id="quem-assina-a-decisão"&gt;Quem assina a decisão?&lt;/h2&gt;
&lt;p&gt;Quando um sistema nega crédito, prioriza um atendimento ou recomenda uma conduta clínica, ele não decide sozinho. Antes de a resposta existir, alguém definiu quais dados importam, qual erro é tolerável e em que momento a máquina pode agir sem revisão humana.&lt;/p&gt;
&lt;p&gt;A pergunta ética, portanto, não é se o modelo tem moral. É: &lt;strong&gt;quem assina essa decisão?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Decisões algorítmicas já afetam pessoas em domínios nos quais um erro não representa apenas uma métrica ruim. Pode significar a exclusão de um serviço, um diagnóstico inadequado, um atendimento postergado ou a exposição indevida de dados sensíveis. Nesses contextos, ética deixa de ser apenas um tema de reflexão e passa a ser também um requisito de engenharia.&lt;/p&gt;</description></item><item><title>Ser Dev Não É Apenas Escrever Código</title><link>https://ivaldo.eti.br/pt/blog/ser-dev-nao-e-apenas-escrever-codigo/</link><pubDate>Wed, 01 Jul 2026 10:45:14 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/ser-dev-nao-e-apenas-escrever-codigo/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Durante muito tempo, muita gente olhou para o desenvolvimento de software como o ato de escrever código. Um desenvolvedor recebe uma demanda, abre o editor, escreve classes, funções, consultas, telas, testes e entrega algo funcionando.&lt;/p&gt;
&lt;p&gt;Essa visão é compreensível, mas incompleta.&lt;/p&gt;
&lt;p&gt;O código é a parte mais visível do nosso trabalho. É o artefato que vai para o repositório, passa por revisão, entra no pipeline e chega em produção. Mas antes do código existir, existe interpretação. Existe contexto. Existem escolhas, conversas, dúvidas, decisões e responsabilidades.&lt;/p&gt;</description></item><item><title>Spec Driven Design Automatizando a Geracao De Software Com Agentes De Ia E Templates No GitHub</title><link>https://ivaldo.eti.br/pt/blog/spec-driven-design-automatizando-a-geracao-de-software-com-agentes-de-ia-e-templates-no-github/</link><pubDate>Fri, 24 Oct 2025 10:01:17 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/spec-driven-design-automatizando-a-geracao-de-software-com-agentes-de-ia-e-templates-no-github/</guid><description>&lt;h2 id="o-fim-do-boilerplate-ia-gerando-projetos-não-apenas-código"&gt;O Fim do &amp;ldquo;Boilerplate&amp;rdquo;: IA Gerando Projetos, Não Apenas Código&lt;/h2&gt;
&lt;p&gt;Quanto tempo seu time gasta configurando um novo projeto? Criando &lt;code&gt;Controllers&lt;/code&gt;, registrando o &lt;code&gt;DbContext&lt;/code&gt;, definindo &lt;code&gt;csproj&lt;/code&gt;&amp;hellip; antes mesmo de escrever a primeira linha de regra de negócio?&lt;/p&gt;
&lt;p&gt;Ferramentas como o GitHub Co-pilot mudaram como &lt;em&gt;escrevemos&lt;/em&gt; código, mas elas são &lt;em&gt;assistentes&lt;/em&gt;. O próximo salto é a &lt;em&gt;automação generativa&lt;/em&gt;: usar IA para &lt;em&gt;criar&lt;/em&gt; a estrutura inteira de um projeto.&lt;/p&gt;
&lt;p&gt;O problema? A IA pura é um &amp;ldquo;caos criativo&amp;rdquo;. Ela pode &amp;ldquo;alucinar&amp;rdquo; e entregar resultados inconsistentes, quebrando os padrões de arquitetura que lutamos tanto para estabelecer.&lt;/p&gt;</description></item><item><title>Potencializando Logs em C# com [CallerFilePath] e [CallerLineNumber]</title><link>https://ivaldo.eti.br/pt/blog/supercharging-c%23-logs-with-callerfilepath-and-callerlinenumber/</link><pubDate>Tue, 07 Oct 2025 09:15:00 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/supercharging-c%23-logs-with-callerfilepath-and-callerlinenumber/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;São 3 da manhã. Um alerta crítico te acorda: um serviço em produção está falhando. Você abre os logs, procurando desesperadamente por uma pista, apenas para encontrar um mar de mensagens genéricas como &lt;code&gt;&amp;quot;Ocorreu um erro durante o processamento&amp;quot;&lt;/code&gt;. A frustração aumenta. Em qual lugar, dentre as milhares de linhas de código, isso aconteceu? Todos nós já passamos por isso. É neste momento que o verdadeiro valor de um log bem estruturado se torna dolorosamente claro.&lt;/p&gt;</description></item><item><title>Desvendando o Padrão Saga com .NET 9, MassTransit e RabbitMQ: Orquestrando Microserviços com Confiança</title><link>https://ivaldo.eti.br/pt/blog/desvendando-o-padrao-saga-com-dotnet9-masstransit-e-rabbitmq/</link><pubDate>Sat, 13 Sep 2025 14:00:00 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/desvendando-o-padrao-saga-com-dotnet9-masstransit-e-rabbitmq/</guid><description>&lt;h2 id="introdução-a-dor-da-inconsistência"&gt;Introdução: A Dor da Inconsistência&lt;/h2&gt;
&lt;p&gt;No mundo dos microserviços, cada serviço tem seu próprio banco de dados, sua própria fonte da verdade. Essa autonomia é fantástica para a escalabilidade e o desacoplamento, mas nos apresenta um desafio monumental: como garantir a consistência de um processo de negócio que se estende por vários serviços?&lt;/p&gt;
&lt;p&gt;Imagine um fluxo de e-commerce simples:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;O &lt;code&gt;Serviço de Pedidos&lt;/code&gt; cria um novo pedido.&lt;/li&gt;
&lt;li&gt;O &lt;code&gt;Serviço de Pagamentos&lt;/code&gt; processa o cartão de crédito.&lt;/li&gt;
&lt;li&gt;O &lt;code&gt;Serviço de Estoque&lt;/code&gt; debita o produto do inventário.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Se o pedido é criado e o pagamento é aprovado, mas o &lt;code&gt;Serviço de Estoque&lt;/code&gt; falha (talvez o item tenha acabado no último segundo), o que acontece? O cliente foi cobrado por um produto que não receberá. O estado geral do sistema ficou inconsistente. Tentar resolver isso com chamadas HTTP diretas e blocos &lt;code&gt;try-catch&lt;/code&gt; complexos é o caminho para um código frágil e um pesadelo de manutenção.&lt;/p&gt;</description></item><item><title>Arquitetura Hexagonal em .NET: Do Controller aos Ports &amp; Adapters na Prática com um Projeto Real</title><link>https://ivaldo.eti.br/pt/blog/arquitetura-hexagonal-em-dotnet-do-controller-aos-ports-e-adapters/</link><pubDate>Mon, 08 Sep 2025 15:00:00 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/arquitetura-hexagonal-em-dotnet-do-controller-aos-ports-e-adapters/</guid><description>&lt;h2 id="introdução-a-dor-do-acoplamento"&gt;Introdução: A Dor do Acoplamento&lt;/h2&gt;
&lt;p&gt;Se você desenvolve com .NET há algum tempo, provavelmente já viu ou escreveu um &lt;code&gt;Controller&lt;/code&gt; assim: ele recebe uma requisição HTTP, valida os dados, manipula a lógica de negócio, conversa diretamente com o Entity Framework, talvez chame um &lt;code&gt;HttpClient&lt;/code&gt; para outra API e, por fim, retorna um &lt;code&gt;ActionResult&lt;/code&gt;. No início, parece produtivo. Mas com o tempo, esse controller se torna um monstro: frágil, difícil de testar e terrivelmente acoplado à tecnologia.&lt;/p&gt;</description></item><item><title>Hangfire e Filas Descentralizadas: Guia Prático para Desenvolvedores .NET</title><link>https://ivaldo.eti.br/pt/blog/hangfire-and-decentralized-queues/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://ivaldo.eti.br/pt/blog/hangfire-and-decentralized-queues/</guid><description>&lt;h2 id="hangfire-e-filas-descentralizadas-guia-prático-para-desenvolvedores-net"&gt;Hangfire e Filas Descentralizadas: Guia Prático para Desenvolvedores .NET&lt;/h2&gt;
&lt;p&gt;Na arquitetura moderna de software, o processamento de tarefas em segundo plano é essencial para escalabilidade e experiência do usuário. &lt;strong&gt;Hangfire&lt;/strong&gt; é uma biblioteca poderosa para .NET que permite gerenciar e processar jobs em uma &lt;strong&gt;fila descentralizada&lt;/strong&gt; sem depender de serviços externos. Este artigo explica seus conceitos, benefícios, casos de uso e um exemplo prático.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="o-que-é-hangfire"&gt;O que é Hangfire?&lt;/h2&gt;
&lt;p&gt;Hangfire foi criado para simplificar o processamento em segundo plano em aplicações .NET. Ele permite agendar e executar jobs de forma assíncrona sem gerenciar manualmente threads, timers ou filas.&lt;/p&gt;</description></item><item><title>Otimizando PostgreSQL para Aplicações .NET</title><link>https://ivaldo.eti.br/pt/blog/optimizing-postgresql-forapps/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://ivaldo.eti.br/pt/blog/optimizing-postgresql-forapps/</guid><description>&lt;h2 id="otimizando-postgresql-para-aplicações-net"&gt;Otimizando PostgreSQL para Aplicações .NET&lt;/h2&gt;
&lt;p&gt;Ao desenvolver aplicações de alta performance com &lt;strong&gt;.NET&lt;/strong&gt; e &lt;strong&gt;PostgreSQL&lt;/strong&gt;, a otimização do banco de dados pode ser a diferença entre um sistema fluído e um gargalo constante. Neste artigo, veremos boas práticas, ajustes no PostgreSQL e otimizações no lado .NET.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="por-que-postgresql-no-net"&gt;Por que PostgreSQL no .NET?&lt;/h2&gt;
&lt;p&gt;O PostgreSQL é um dos bancos de dados relacionais mais robustos e flexíveis. Com o driver &lt;strong&gt;Npgsql&lt;/strong&gt;, integra-se nativamente ao .NET, oferecendo suporte a recursos avançados como JSONB, busca textual e particionamento.&lt;/p&gt;</description></item><item><title>Guia Completo de Logging em Blazor WASM: Do Básico ao Avançado com um Provedor Customizado</title><link>https://ivaldo.eti.br/pt/blog/guia-completo-logging-blazor-wasm-customizado/</link><pubDate>Tue, 08 Jul 2025 11:45:00 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/guia-completo-logging-blazor-wasm-customizado/</guid><description>&lt;p&gt;Se você já desenvolveu para a web, conhece a sensação: um usuário reporta um erro que você não consegue reproduzir. &amp;ldquo;Deu um problema na hora de salvar&amp;rdquo;, ele diz. Sem mais detalhes. Se o problema aconteceu no servidor, você provavelmente tem logs para investigar. Mas e se o erro ocorreu inteiramente no navegador do usuário? Os logs do console, se existirem, foram perdidos para sempre no momento em que a aba foi fechada.&lt;/p&gt;</description></item><item><title>Seguranca Nao E Sobre Pentest Como Evitar Vulnerabilidades Antes Do Primeiro Commit</title><link>https://ivaldo.eti.br/pt/blog/seguranca-nao-e-sobre-pentest-como-evitar-vulnerabilidades-antes-do-primeiro-commit/</link><pubDate>Sat, 14 Jun 2025 19:41:50 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/seguranca-nao-e-sobre-pentest-como-evitar-vulnerabilidades-antes-do-primeiro-commit/</guid><description>&lt;h2 id="introdução-a-ilusão-do-muro-de-segurança"&gt;Introdução: A Ilusão do &amp;ldquo;Muro de Segurança&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;No mundo do desenvolvimento de software, existe uma prática antiga e perigosa: tratar a segurança como uma etapa final. As equipes desenvolvem por meses a fio e, perto do lançamento, &amp;ldquo;jogam o código por cima do muro&amp;rdquo; para que um time de segurança ou um teste de penetração (pentest) encontre as falhas. Este modelo não é apenas ineficiente; ele é caro e arriscado.&lt;/p&gt;</description></item><item><title>Guia Pratico Para Implementar Seguranca Cibernetica Em Pequenas Empresa</title><link>https://ivaldo.eti.br/pt/blog/guia-pratico-para-implementar-seguranca-cibernetica-em-pequenas-empresa/</link><pubDate>Mon, 14 Oct 2024 09:47:54 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/guia-pratico-para-implementar-seguranca-cibernetica-em-pequenas-empresa/</guid><description>&lt;h2 id="1-introdução"&gt;1. Introdução&lt;/h2&gt;
&lt;p&gt;Na era digital, a segurança cibernética não é mais um luxo reservado apenas para grandes corporações. Para pequenas e médias empresas (PMEs), implementar medidas de segurança cibernética tornou-se uma necessidade crítica. Segundo um relatório da Verizon de 2023, 43% dos ataques cibernéticos visam pequenas empresas. Isso ocorre porque os criminosos cibernéticos veem as PMEs como alvos fáceis, muitas vezes com defesas inadequadas e dados valiosos.&lt;/p&gt;
&lt;p&gt;Este guia oferecerá passos práticos e acessíveis para que pequenas empresas possam fortalecer significativamente sua postura de segurança cibernética.&lt;/p&gt;</description></item><item><title>Desafios e Soluções na Migração de Aplicações para Microserviços</title><link>https://ivaldo.eti.br/pt/blog/desafios-e-solucoes-na-migracao-de-aplicacoes-para-microservicos/</link><pubDate>Wed, 04 Sep 2024 01:36:23 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/desafios-e-solucoes-na-migracao-de-aplicacoes-para-microservicos/</guid><description>&lt;h2 id="desafios-e-soluções-na-migração-de-aplicações-para-microserviços"&gt;Desafios e Soluções na Migração de Aplicações para Microserviços&lt;/h2&gt;
&lt;h3 id="introdução"&gt;Introdução&lt;/h3&gt;
&lt;p&gt;Nos últimos anos, a arquitetura de microserviços tornou-se uma abordagem amplamente adotada por empresas que buscam escalar suas aplicações de forma mais ágil e eficiente. Essa arquitetura permite que grandes aplicações sejam divididas em pequenos serviços independentes, onde cada serviço é responsável por uma parte específica da lógica de negócio. Ao contrário da arquitetura monolítica, onde todos os componentes são interdependentes e executados em um único ambiente, os microserviços oferecem maior flexibilidade para desenvolvimento, implantação e escalabilidade.&lt;/p&gt;</description></item><item><title>Gerando Pdfs Em Blazor Webassembly Com Jspdf E Html2canvas</title><link>https://ivaldo.eti.br/pt/blog/gerando-pdfs-em-blazor-webassembly-com-jspdf-e-html2canvas/</link><pubDate>Mon, 26 Aug 2024 11:07:09 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/gerando-pdfs-em-blazor-webassembly-com-jspdf-e-html2canvas/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Ao projetar e desenvolver aplicações web modernas, frequentemente nos deparamos com a necessidade de gerar documentos PDF a partir de conteúdo HTML. Seja para fornecer relatórios, recibos, ou simplesmente para permitir que os usuários salvem informações em um formato portátil e amplamente aceito, os PDFs se mostram um recurso indispensável.&lt;/p&gt;
&lt;p&gt;No entanto, ao desenvolver aplicações com Blazor WebAssembly, uma estrutura emergente que oferece uma experiência de programação semelhante a uma aplicação cliente/servidor no navegador, a implementação dessa funcionalidade pode apresentar desafios. A interação entre a linguagem C# utilizada no Blazor e as bibliotecas JavaScript comumente utilizadas para a geração de PDFs, como jsPDF e html2canvas, pode ser complicada.&lt;/p&gt;</description></item><item><title>Implementacao Servicos Hospedados Aspnet Core</title><link>https://ivaldo.eti.br/pt/blog/implementacao-servicos-hospedados-aspnet-core/</link><pubDate>Thu, 01 Aug 2024 07:56:16 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/implementacao-servicos-hospedados-aspnet-core/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;No dinâmico mundo da programação, aprender a trabalhar com eficácia em várias estruturas é crucial. Este artigo explora uma funcionalidade importante no universo .NET — os Serviços Hospedados no ASP.NET Core.&lt;/p&gt;
&lt;p&gt;Os serviços hospedados são componentes fundamentais que permitem que as tarefas de longa duração sejam executadas em segundo plano, proporcionando uma maneira elegante de liberar recursos e permitir que as aplicações continuem a funcionar sem interrupções. Em um mundo onde a velocidade é essencial, a capacidade de realizar tarefas em segundo plano tem um valor inestimável. Para aplicações ASP.NET Core, os serviços hospedados são a solução perfeita para a gestão eficaz de tarefas que, de outra forma, poderiam consumir recursos valiosos.&lt;/p&gt;</description></item><item><title>A Importancia De Desenvolver Empatia Pelo Futuro Eu E Futuros Desenvolvedores Escrevendo Codigo Claro E Legivel</title><link>https://ivaldo.eti.br/pt/blog/a-importancia-de-desenvolver-empatia-pelo-futuro-eu-e-futuros-desenvolvedores-escrevendo-codigo-claro-e-legivel/</link><pubDate>Wed, 06 Dec 2023 14:35:51 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/a-importancia-de-desenvolver-empatia-pelo-futuro-eu-e-futuros-desenvolvedores-escrevendo-codigo-claro-e-legivel/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;No mundo do desenvolvimento de software, o código que escrevemos hoje será lido, mantido e expandido por outras pessoas, incluindo nosso futuro eu. A falta de clareza e legibilidade no código pode levar a dificuldades, perda de tempo e aumento de erros. Desenvolver empatia pelo nosso futuro eu e pelos futuros desenvolvedores é fundamental para criar um código sustentável e eficiente. Este artigo abordará a importância dessa empatia e apresentará práticas para escrever código claro e legível.&lt;/p&gt;</description></item><item><title>Padrões de Design de Software: Nem Sempre a Melhor Solução</title><link>https://ivaldo.eti.br/pt/blog/padroes-de-design-de-software-nem-sempre-a-melhor-solucao/</link><pubDate>Mon, 25 Sep 2023 14:35:51 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/padroes-de-design-de-software-nem-sempre-a-melhor-solucao/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Padrões de design de software são frequentemente considerados o santo graal das melhores práticas em engenharia de software. Eles fornecem soluções pré-definidas para problemas comuns, promovendo eficiência e legibilidade. No entanto, cada ferramenta tem suas limitações, e os padrões de design não são exceção. Este artigo tem como objetivo mergulhar nas nuances de quando os padrões de design podem ser mais um obstáculo do que uma ajuda.&lt;/p&gt;
&lt;h2 id="visão-geral-dos-padrões-de-design"&gt;Visão Geral dos Padrões de Design&lt;/h2&gt;
&lt;p&gt;Padrões de design não são apenas soluções técnicas para problemas comuns; eles também servem como uma linguagem comum que pode melhorar a comunicação entre os desenvolvedores. Conceitos como Singleton, Observer e Strategy se tornaram parte do léxico padrão na engenharia de software. No entanto, é crucial entender que esses padrões não são remédios universais, e aplicá-los indiscriminadamente pode ter consequências.&lt;/p&gt;</description></item><item><title>_An Unexpected Error Was Encountered While Executing a Wsl Command</title><link>https://ivaldo.eti.br/pt/blog/_an-unexpected-error-was-encountered-while-executing-a-wsl-command/</link><pubDate>Wed, 16 Aug 2023 14:58:47 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/_an-unexpected-error-was-encountered-while-executing-a-wsl-command/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Se você já mergulhou no universo do desenvolvimento de software em uma máquina Windows, é possível que tenha se deparado com a promissora combinação de Docker e WSL2. Esta dupla, quando opera em harmonia, promete uma experiência fluída e eficaz, aproximando o ambiente de desenvolvimento Windows do universo Linux. No entanto, como muitos de nós descobrimos, nem sempre as coisas correm como esperado.&lt;/p&gt;
&lt;p&gt;Imagine iniciar o seu dia, preparando-se para mergulhar em seu projeto, e ser recebido com a seguinte mensagem de erro:&lt;/p&gt;</description></item><item><title>Gerenciando Autenticação Em Aplicacoes Web Estudo Caso Blazor WebAssembly</title><link>https://ivaldo.eti.br/pt/blog/gerenciando-autentica%C3%A7%C3%A3o-em-aplicacoes-web-estudo-caso-blazor-webassembly/</link><pubDate>Tue, 08 Aug 2023 14:35:51 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/gerenciando-autentica%C3%A7%C3%A3o-em-aplicacoes-web-estudo-caso-blazor-webassembly/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;h2 id="visão-geral-do-desafio"&gt;Visão Geral do Desafio&lt;/h2&gt;
&lt;p&gt;Em aplicações web modernas, o armazenamento seguro de tokens de autenticação e informações associadas é essencial para proteger a integridade e a confidencialidade dos dados do usuário. A questão torna-se ainda mais complexa quando consideramos a necessidade de persistir essas informações entre sessões de navegação, sem comprometer a segurança.&lt;/p&gt;
&lt;p&gt;O desafio é como equilibrar a necessidade de acessibilidade e segurança nesses casos.&lt;/p&gt;
&lt;h2 id="objetivo-do-artigo"&gt;Objetivo do Artigo&lt;/h2&gt;
&lt;p&gt;O propósito deste artigo é explorar uma abordagem específica para esse desafio usando o armazenamento em memória com Blazor WebAssembly, na plataforma .NET.&lt;/p&gt;</description></item><item><title>Mediator Design Pattern: Simplificando Interações em Sistemas Distribuídos</title><link>https://ivaldo.eti.br/pt/blog/mediator-design-pattern-simplificando-interacoes-em-sistemas-distribuidos/</link><pubDate>Sun, 09 Jul 2023 14:35:51 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/mediator-design-pattern-simplificando-interacoes-em-sistemas-distribuidos/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Nos últimos anos, a computação tem testemunhado uma mudança significativa em direção a sistemas distribuídos. A necessidade de escalabilidade, disponibilidade e flexibilidade levou ao desenvolvimento de arquiteturas complexas, onde diferentes componentes de software interagem para fornecer funcionalidades abrangentes. No entanto, à medida que os sistemas distribuídos evoluem, surge um desafio inerente: a complexidade das interações entre esses componentes.&lt;/p&gt;
&lt;p&gt;A comunicação entre partes distintas de um sistema distribuído é essencial, mas frequentemente resulta em um aumento no acoplamento entre os componentes. Conforme novos módulos são adicionados ou alterados, as interações diretas podem levar a uma rede de dependências, tornando a manutenção e a expansão do sistema uma tarefa árdua. É aqui que o Padrão de Design Mediator entra em cena.&lt;/p&gt;</description></item><item><title>A Arte Da Solucao De Problemas Metodologia Aprendizado</title><link>https://ivaldo.eti.br/pt/blog/a-arte-da-solucao-de-problemas-metodologia-aprendizado/</link><pubDate>Sun, 01 Jan 2023 14:35:51 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/a-arte-da-solucao-de-problemas-metodologia-aprendizado/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Em nossa jornada pela vida, enfrentamos uma infinidade de problemas, desde pequenos obstáculos diários até desafios complexos que exigem profunda reflexão e colaboração. Seja no universo da tecnologia, nas ciências, na arte ou na vida cotidiana, a habilidade de abordar e resolver problemas é universalmente valiosa.&lt;/p&gt;
&lt;p&gt;No entanto, enquanto os problemas são uma constante, as soluções não são. E a chave para encontrar essas soluções, muitas vezes, não está na resposta em si, mas na abordagem que adotamos. A metodologia — ou a estrutura e os processos que aplicamos na busca de soluções — desempenha um papel crucial em determinar não apenas se resolvemos um problema, mas quão eficientemente e eficazmente o fazemos.&lt;/p&gt;</description></item><item><title>Automatizacao De Clientes De Api Uma Abordagem Eficiente Com Github Actions E Openapi</title><link>https://ivaldo.eti.br/pt/blog/automatizacao-de-clientes-de-api-uma-abordagem-eficiente-com-github-actions-e-openapi/</link><pubDate>Wed, 26 Oct 2022 16:36:23 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/automatizacao-de-clientes-de-api-uma-abordagem-eficiente-com-github-actions-e-openapi/</guid><description>&lt;h2 id="automatizando-a-geração-de-clientes-de-api-melhore-sua-produtividade-com-github-actions"&gt;Automatizando a Geração de Clientes de API: Melhore sua Produtividade com GitHub Actions&lt;/h2&gt;
&lt;p&gt;No desenvolvimento de software, a integração contínua e a entrega contínua (CI/CD) são fundamentais para aumentar a produtividade e minimizar erros. Um desafio comum é garantir que os clientes de API (componentes que consomem APIs) estejam sempre atualizados com as mudanças nas APIs. A falta de sincronia pode levar a falhas e inconsistências no sistema. Para resolver esse problema, uma estratégia eficaz é automatizar a geração de clientes de API sempre que uma nova versão da API é publicada. Este artigo discute como você pode usar o GitHub Actions para gerar e atualizar automaticamente clientes de API, focando em ferramentas como NSwag e Kiota, para garantir que os clientes de API estejam sempre em conformidade com a versão mais recente da API.&lt;/p&gt;</description></item><item><title>Simplificando O Gateway De Api Do Swagger Ao Ocelot Em Um Passo</title><link>https://ivaldo.eti.br/pt/blog/simplificando-o-gateway-de-api-do-swagger-ao-ocelot-em-um-passo/</link><pubDate>Fri, 26 Aug 2022 16:36:23 -0300</pubDate><guid>https://ivaldo.eti.br/pt/blog/simplificando-o-gateway-de-api-do-swagger-ao-ocelot-em-um-passo/</guid><description>&lt;h2 id="introdução"&gt;Introdução&lt;/h2&gt;
&lt;p&gt;Em um cenário onde microserviços são cada vez mais adotados, o gerenciamento de APIs torna-se uma tarefa crítica. Nesse contexto, soluções como Ocelot surgem como opções poderosas para servir como gateways de API. No entanto, a configuração manual de arquivos &lt;code&gt;ocelot.json&lt;/code&gt; pode ser trabalhosa e propensa a erros. É aqui que entra o nosso projeto: o Swagger to Ocelot Converter.&lt;/p&gt;
&lt;h2 id="o-problema"&gt;O Problema&lt;/h2&gt;
&lt;p&gt;Quem já trabalhou com Ocelot sabe que a configuração do gateway de API é feita através de um arquivo &lt;code&gt;ocelot.json&lt;/code&gt;. Embora seja flexível e poderoso, preencher manualmente este arquivo pode ser uma tarefa demorada, especialmente em projetos com várias APIs e rotas.&lt;/p&gt;</description></item></channel></rss>