Functional DDD em C# Parte 3: Railway Oriented Programming, Monads e Garantia de Estado'

Functional DDD em C# Parte 3: Railway Oriented Programming, Monads e Garantia de Estado

Esta é a terceira parte da série sobre programação funcional em C#. Se a Parte 2 foi sobre compor o domínio, aqui é sobre compor o domínio com falhas sem mentir no contrato. Caso tenha perdido: Records não são apenas DTOs (e você está perdendo a melhor parte) Functional DDD em C# Parte 2: Entidades, Comportamento e Composição Duas perguntas surgiram com frequência nos posts anteriores: ‘Por que sempre um factory method?’ e ‘O que é esse Result<>?’. Hoje vamos responder ambas. Identificar o problema que elas resolvem e entender a aplicação correta. ...

December 26, 2025 · 12 min · João Bateloche
Functional DDD em C# Parte 2: Entidades, Comportamento e Composição

Functional DDD em C# Parte 2: Entidades, Comportamento e Composição

Domínio como composição Ao modelar o domínio funcionalmente, pensamos fundamentalmente em composições — tanto de tipos quanto de funções. As ideias táticas do DDD, como Raízes de Agregação e Bounded Contexts, não só se aplicam aqui, como ganham uma expressividade nova, livre do peso do gerenciamento de estado da Orientação a Objetos clássica. Para termos uma base de comparação, veja como modelaríamos uma entidade Cart simplificada em C# tradicional (OO): ...

December 18, 2025 · 7 min · João Bateloche
O poder do .editorconfig para times e IAs

Codifique sem pensar (em estilo): O poder do .editorconfig para times e IAs

Tenho visto uma enxurrada de ‘arquivos de regras’ para IAs nas redes, focados em performance e redução de alucinações. Mas e para os humanos do time? Diferente dos agentes, nós não inferimos padrões instantaneamente. Pelo contrário: gastamos energia cognitiva refletindo sobre detalhes triviais, como a formatação de um if ou um loop, o que cumulativamente leva à fadiga de decisão. Para piorar, muitas vezes ignoramos os padrões por perguiça. Um comportamento que, curiosamente, estudos recententes indicam que as IAs também aprenderam. ...

December 10, 2025 · 5 min · João Bateloche
Records não são apenas DTOs (e você está perdendo a melhor parte)

Records não são apenas DTOs (e você está perdendo a melhor parte)

Você provavelmente já usa records no C#. Eles chegaram, reduziram aquele boilerplate insuportável de construtores e Deconstructs, e viraram o padrão oficial para DTOs em APIs. Mas se você parar por aí, está deixando dinheiro na mesa. O C# sempre foi uma linguagem orientada a objetos, e por sinal, a melhor em termos de expressividade. Porém, nossos domínios podem se beneficiar muito das técnicas de programação funcional, inclusive se tornando ainda mais expressivos e seguros. ...

December 9, 2025 · 5 min · João Bateloche
Automatizando o suporte interno com RAG

Automatizando o suporte interno com RAG

Informação dispersa e o custo invisível “Como eu peço um banco de dados novo?”, “E um repositório?”, “Não sei como pedir reembolso, me ajuda?”. Quantas mensagens dessas circulam na sua empresa todo dia? E cada vez que alguém gasta tempo para responder, quanto custa? E quando seu projeto fica parado esperando uma resposta dessas ou você achar a informação perdida em alguma página no Sharepoint ou Confluence? E se, usando apenas o que você já tem hoje na sua infraestrutura, fosse possível reduzir centenas de e-mails e mensagens por mês e economizar dezenas de horas de pessoas-chave? ...

November 27, 2025 · 10 min · João Bateloche