iMaster Developers

William Santos

William Santos

Arquiteto de Software que se diverte pensando e escrevendo sobre princípios, práticas e padrões de design – e, eventualmente, código e desempenho de aplicações. E, também, Microsoft MVP.
  • Publicou
    6
    Artigo(s)
    book
  • Visualizados
    3600
    Vezes
    eye
  • Desde
    2026
    clock
awardArtigos Publicados
William Santos
.NET
Coopera Sharp - Otimização de Query

Olá! Este é um post da seção Coopera Sharp, uma iniciativa do colega Yan Justino que propõe desafios no LinkedIn baseados em códigos com más práticas. Normalmente respondo diretamente pelos comentários mas, desta vez, achei interessante trazer para o blog já que temos uma questão importante de desempenho envolvida. Vamos lá! O Desafio O desafio é otimizar uma query…

William Santos
.NET
Design: Imutabilidade

Este é mais um post da seção Design e, nele, falaremos sobre um conceito fundamental da programação funcional cada vez mais presente no universo orientado a objetos: imutabilidade. A ideia é trazer as motivações, benefícios, e mostrar como é possível implementá-la usando C#. Vamos lá! O que é imutabilidade Imutabilidade é a característica de uma…

William Santos
APIs e Microsserviços
Design: Event Modeling

O que é Event Modeling? Event Modeling é uma técnica de design onde eventos são cidadãos primeira classe. Em vez de pensar no sistema a partir de suas entidades, como é ferto usualmente, começa-se pelo fluxo de eventos possíveis na aplicação. A ideia central é que sistemas são, em essência, uma sequência de fatos. Interessante….

William Santos
.NET
Coopera Sharp - Dependency Explosion

O Problema Como é possível ver neste post temos um serviço com diversas dependências injetadas, o que cria o que chamamos de explosão de dependências no construtor (constructor dependency explosion em inglês). Este serviço executa uma série de passos para tornar possível a criação de um pedido. Esta abordagem é ruim porque, além de já…

William Santos
.NET
Crítica - MediatR: Pra Quê?

O que é o MediatR? Antes de adentrarmos a provocação proposta, vamos entender sobre o que estamos falando. O MediatR se propõe a ser uma implementação do padrão Mediator (em inglês) que, basicamente, é um meio de propagar mensagens sem que seu produtor precise conhecer seus consumidores. Além disso, a biblioteca possui uma implementação que…

William Santos
Back-End
Performance: Structs e Cópias (Defensivas)

Structs: Por quê? Vamos recapitular: structs são uma escolha excelente para em cenários onde alocação de memória é uma questão crítica. Por existirem apenas na stack, tendo portanto uma existência efêmera e não sujeita à ação do Garbage Collector, seu uso afeta positivamente o desempenho de uma aplicação, efeito que pode ser constatado no caminho crítico da…

Publicidade