Banco de dados: Teorema CAP

Alguns deles existem há muito tempo mas se popularizaram a partir de 2010 para suportar o aumento crescente dos dados, das variedades dos dados e das arquiteturas emergentes. O Teorema CAP é uma estratégia para pensar em como selecionar bancos de dados para as arquitetura que se apresentam.

Em resumo há muitos bancos de dados. Alguns deles existem há muito tempo mas se popularizaram a partir de 2010 para suportar o aumento crescente dos dados, das variedades dos dados e das arquiteturas emergentes. O Teorema CAP é uma estratégia para pensar em como selecionar bancos de dados para as arquitetura que se apresentam.

Os 14 tipos de bancos de dados

Os 14 tipos de bancos de dados: Nada impede de amanhã um novo tipo de banco de dados ganhar força, tendo em vista a variedade de dados que é crescente nos tempos atuais. Note que alguns desses bancos suportam múltiplos conceitos ao mesmo tempo. Mas ao final de tudo, analise com cuidado considerando as necessidades tecnológicas, as necessidades de negócio/custo, e as capacidades do time na hora de decidir por utilizar um tipo ou outro.

Nada impede de amanhã um novo tipo de banco de dados ganhar força, tendo em vista a variedade de dados que é crescente nos tempos atuais. Note que alguns desses bancos suportam múltiplos conceitos ao mesmo tempo. Mas ao final de tudo, analise com cuidado considerando as necessidades tecnológicas, as necessidades de negócio/custo, e as capacidades do time na hora de decidir por utilizar um tipo ou outro.

Notification Pattern no DDD

O artigo Notification Pattern no DDD é interessante mas levanta algumas questões importantes sobre o design de código. Não é raro encontrar desenvolvedores defendendo que ele deveria ser utilizado para tudo eliminando o uso de exceptions. Por outro lado, há uma outra corrente que usa exceptions para todas as validações de negócio. Particularmente prefiro um caminho intermediário, utilizando as exceptions que interrompem o fluxo do código quando isso é fundamnetal, caso contrário entidades poderiam ficar não estáveis. Mas também utilizando o notification pattern para validações simples de entidades e quando há a construção de entidades complexas. Bom, o artigo mostrou exemplos e sobrevoou essa polêmica.

O artigo Notification Pattern no DDD é interessante mas levanta algumas questões importantes sobre o design de código. Não é raro encontrar desenvolvedores defendendo que ele deveria ser utilizado para tudo eliminando o uso de exceptions. Por outro lado, há uma outra corrente que usa exceptions para todas as validações de negócio. Particularmente prefiro um caminho intermediário, utilizando as exceptions que interrompem o fluxo do código quando isso é fundamnetal, caso contrário entidades poderiam ficar não estáveis. Mas também utilizando o notification pattern para validações simples de entidades e quando há a construção de entidades complexas. Bom, o artigo mostrou exemplos e sobrevoou essa polêmica.

Injeção de dependência ou Inversão de Controle

Injeção de dependência ou Inversão de Controle Essa é uma confusão comum em muitos devs. O artigo Injeção de dependência ou Inversão de Controle explica SOLID, fala sobre diversos injetores de depenência, explica algumas particularidades que eles possuem. Além disso há exemplos tanto em linguagens de backend quando em frontend. De modo geral é fundamental utilizar para que o acoplamento da aplicação seja controlado, mas deve ser feito corretamente.

Essa é uma confusão comum em muitos devs. O artigo Injeção de dependência ou Inversão de Controle explica SOLID, fala sobre diversos injetores de depenência, explica algumas particularidades que eles possuem. Além disso há exemplos tanto em linguagens de backend quando em frontend. De modo geral utilize injeção de dependência para reduzir o acoplamento. Mas, faça corretamente!

DDD: Variantes e Invariantes

O artigo DDD: Variantes e Invariantes explora esses conceitos com exemplos práticos para ajudar os leitores a compreendê-los completamente, sem que seja necessário dominar o Domain Driven Design. Em resumo, entendo que aprender isso eleva seu nível de consciência sobre arquitetura de sistemas.

Variantes e Invariantes explora esses conceitos com exemplos práticos para ajudar os leitores a compreendê-los completamente, sem que seja necessário dominar o Domain Driven Design. Em resumo, entendo que aprender isso eleva seu nível de consciência sobre arquitetura de sistemas.

A essência da Orientação a Objetos

Esse artigo traz as bases conceituais associadas ao paradigma Orientado a Objetos, mas não apenas as ideias de abstração, encapsulamento, etc. mas as consequências do seu uso. Por conta disso vemos, de modo geral, conceitos como Entropia de Software, Acoplamento e Coesão, e um pouquinho de código por que ninguém é de ferro.

Esse artigo traz as bases conceituais associadas ao paradigma Orientado a Objetos, mas não apenas as ideias de abstração, encapsulamento, etc. mas as consequências do seu uso. Por conta disso vemos, de modo geral, conceitos como Entropia de Software, Acoplamento e Coesão, e um pouquinho de código por que ninguém é de ferro.

Variância no tratamento de tipos

Variância no tratamento de tipos em C#: Variância, Invariância, Covariância e Contravariância: O que é?

Como tornar seu código melhor entendendo variância de tipos? Quando falamos em variância no tratamento de tipos estamos falando dos conceitos de: variância, invariância, covariância e contravariância. Portanto, esse artigo vai explicar um pouco sobre cada conceitos com cenários práticos e a relação que eles têm com o princípio SOLID, ou mais especificamente sobre o Princípio da substituição de Liskov.

Estrutura de camadas e Domain Driven Design

Estrutura de camadas e Domain Driven Design: mitos e fatos

Diferença entre Design System e Arquitetura

Esse é um debate interessante mas me parece que não deveria haver impasse. Na minha visão há também uma questão de tradução para português que nos atrapalha, mas isso também é um problema para os gringos. Design em vários cenários significa projeto e não desenho. Ou seja, design system é um conceito ligado à construção conceitual de um software, com princípios, práticas e afins. Para Eric Evans o Domain Driven é um Design, bem como o SOLID, por exemplo.

Mediator Pattern no Domain Driven Design

Mediator Pattern no Domain Driven Design

O padrão mediator é relativamente simples de entender mas pode se tornar complexo de manter. Além disso ele é muito conveniente quando se trabalha com Domain Driven Design. Assim é possível isolar agregados e garantir comunicação entre eles sem acoplamento: Entenda que isso independe se utiliza-se arquitetura monolitica ou de microserviços. Desse modo o artigo Mediator Pattern no Domain Driven Design demonstrou cenários práticos, diferenetes formas de implementar, com frameworks de terceiros ou sem. Embora os exemplos estejam em C#, eles são facilmente compreensíveis e portáveis para outras plataformas ou linguagens.

O mínimo que precisa saber sobre dotnet CLI

O mínimo que você precisa saber sobre dotnet command line interface (.net CLI)

Esse artigo ‘O mínimo que precisa saber sobre dotnet CLI’ traz um material muito simples e objetivo para quem não tem muita experiência com as linhas de comando do .NET CLI. Esses comandos são fundamentais para o bom entendimento da estrutura dos projetos, bem como relacioná-los, construir ou utilizar pacotes nuget, e afins. Você pode notar que alguns desses comandos podem facilmente ser substutuídos pela alteração direta dos arquivos .csproj, mas são importantes de todo modo. Além disse note como é fácil criar um .gitignore para seu projeto ao invés de ficar procurando um.