quinta-feira, 8 de junho de 2017

O Livro da capa Azul


O termo DDD (Domain Driven Design) surgiu nesse livro da Capa Azul:


O livro é um épico da arquitetura de Software. É uma daquelas poucas referências que vai sobreviver ao tempo, e servirá de base para muita coisa no futuro. Porém, definitivamente não é um livro fácil. Eric Evans é o Tolkien do desenvolvimento de Softwate, ele meio que escreve em parábolas. :)

Brincadeiras à parte, o que tenho a dizer sobre O livro é que você precisa ler! Mas essa não deve ser a sua primeira leitura sobre DDD. Se você está começando agora, não comece pelo livro da capa azul, ele vai te trazer mais dúvidas do que certezas, e possivelmente poderá te desmotivar à entrar no mundo do DDD.

Comece por esse livro aqui:


Esse livro da InfoQ, escrito por Abel Avram e Floyd Marinescu, é considerado um Resumo do Livro do Evans, mas mais do que isso, eles conseguiram captar a essência do DDD e expor de uma forma simples e fácil de entender. Se você não tem nenhuma experiência em DDD, deve definitivamente começar por esse livro.

Outro motivo para começar por aqui é que o livro no formato PDF, é GRATUÍTO!! Então não tem desculpa, é só baixar e ler. 

Ahh, mas é em Inglês, como faço?

Bem... nesse caso só tenho uma a dizer:

Aprenda a Ler e Ouvir em Inglês o mais rápido possível! Esse é o requisito número 1 para quem quer ser um programador. As melhores referências (livros, vídeos, artigos, etc) são em Inglês. 

Para usar um termo do DDD (que veremos em um artigo futuro), o Inglês é a Ubiquotous Language do Software!

terça-feira, 6 de junho de 2017

O que é e porque devo me preocupar com DDD?



DDD significa Domain Driven Design, ou em português: Desenvolvimento Dirigido ao Domínio. A ideia é orientar todo o processo de arquitetura e modelagem do software, única e exclusivamente ao Domínio do negócio ao qual o software deverá atender. 

Ou seja, o DDD te força a manter o foco no Problema à ser resolvido, e não na forma como será implementada a Solução. Domain Driven Design é uma filosofia. 

O termo DDD e as principais ideias que o permeiam, foram cunhadas por um sujeito chamado Eric Evans, no livro Domain Driven Design – Atacando a complexidade no coração do software.

 

Esse livro está para a Orientação à Objetos assim como o livro Análise Estruturada Moderna de Edward Yourdon, esteve para Análise e Desenvolvimento de Sistemas nas décadas de 70, 80 e 90. Décadas que antecederam à popularização das Linguagens Orientadas à Objetos.



Se existe uma forma correta de arquitetar e modelar software com a Orientação à Objetos, é através do Domain Driven Design. Eric Evans sugere o seguinte Mapa para expor os elementos do DDD, e como eles se relacionam:



Não vou entrar nos detalhes do DDD nesse artigo, isso ficará parar os próximos. Mas tem uma coisa que é importante deixar claro aqui: 

Porque devo me preocupar com DDD? 

Tenha em mente que o objetivo do DDD é elevar ao máximo a tempo de vida da sua aplicação, e garantir a qualidade do código que deu origem a ela.

Pense no DDD como a melhor forma para preservar o código que você escreve, para que ele sobreviva o máximo possível ao tempo, às novas tecnologias, aos requisitos que não foram previstos, e à uma das variáveis mais impactantes no tempo de vida do software, você!

segunda-feira, 5 de junho de 2017

C# 7 - Pattern Matching

Uma das novidades do C# 7 é o chamado Pattern Matching.

Veja o código do método QualTipo. Ele identifica o tipo do objeto, e já declara de forma inline uma variável do tipo identificado no matching.


Essa funcionalidade se torna ainda mais interessante quando utilizada em um switch:


Note que além de identificar o tipo do objeto, também é possível aplicar condições através da clausula when, para fazer um matching mais específico.