Engineering a Compiler (2nd edition), de Keith Cooper e Linda Torczon é, sem dúvidas, uma das melhores referências para qualquer um interessado em desenvolver um compilador ou entender como um compilador funciona. [tweet]O desenvolvimento de compiladores demanda a aplicação de práticas e padrões que ajudam qualquer programador a escrever código melhor.[/tweet] Em tempo, […]
Notificación de evento
De vez en cuando, algunos enfoques de desarrollo parecen convertirse en un patrón recurrente. Después de un tiempo viendo a las empresas adoptar (a veces sin justificación real) arquitecturas basadas en microservicios, estamos viendo un creciente interés en arquitecturas basadas en eventos. En esta y otras publicaciones, presentaremos algunos conceptos fundamentales y patrones recurrentes para […]
Melhorando a performance de aplicações .NET com “Value Types” bem implementados
Esta publicação está disponível em vídeo, ampliada e revisada, no canal da EximiaCo. Neste post, vamos abordar como implementar “Value Types” corretamente e melhorar a performance de nossas aplicações. NOTA: Este post foi escrito, originalmente, em inglês. Esta tradução foi produzida a pedido de um leitor. Se você gosta do nosso conteúdo e gostaria de […]
Critérios objetivos para diferenciar “Entidades” e “Objetos de Valor”
Em DDD, como identificar, facilmente, uma “entidade” e um “objeto de valor”? Em debates sobre DDD, embora, esse não seja o tema mais fundamental, sem dúvidas, é o um dos mais recorrentes. Para tentar responder a questão acima, evitamos definições conceituais mais profundas (que são muito bem tratadas nos livros do Evans e do Vernon) […]
Sobre quando o derrière de Kim Kardashian gerou um desafio arquitetural
Imagine-se no seguinte cenário: O ano é 2014! Você é o responsável pelo site de uma revista impressa, de grande circulação, que recebe em sua versão digital cerca de 100 mil visualizações diárias. Tudo vai bem até que seu telefone toca. Do outro lado da linha há alguém “lembrou” de avisar que será publicada uma […]
Start by thinking about the User Experience
There are two recurring claims associated with DDD: 1) It is most recommended for developing systems with more complex domains and; 2) It must start by spelling out the ubiquitous language of the domain. By all means, a CRUD system does not need DDD! Any attempt to adopt DDD practices and standards in CRUD systems […]
Por que o YouTube precisa “mentir” para seus usuários?
Imagine que você precisa implementar uma solução como o YouTube. Seus requisitos parecem simples, exceto pela escala! Para renderizar uma página de vídeo, você precisaria: Recuperar título, descrição, duração, e outras informações meta associadas ao vídeo; Estabelecer o streaming do vídeo (de acordo com formatos suportados pela rede e pelo device do usuário) Recuperar e incrementar […]
Working Effectively with Legacy Code
Working Effectively with Legacy Code, de Michael Feathers, que possui tradução para o Português, trata de forma muito pragmática um tema que será relevante, em algum momento, para qualquer profissional de tecnologia: manutenção e evolução do legado. É neste livro que Feathers afirma que todo código sem testes automatizados é legado. Extremismos a parte, as […]
Obsessão por tipos primitivos
Esta publicação está disponível em vídeo, ampliada e revisada, no canal da EximiaCo. Com frequência, em nossas consultorias, encontramos códigos que fazem uso excessivo de tipos primitivos. public class Employee { public string Id { get; set; } public string Name { get; set; } public string Cpf { get; set; } public decimal Salary […]
Ubiquitous Language
Domain-driven design (DDD) is not a new subject (Eric Evans formalized the concept over a decade ago). However, it is curious how, until today, the basic concepts on the subject arouse interest, especially in .NET communities. Even stranger is how these same concepts are misinterpreted. The foundation of DDD lies in the concept of the […]