Bounded Context, Por que usar ? – Parte II

Continuando a série sobre bounded context, vou comentar mais alguns benefícios que ganhamos ao utilizar BC.

Crescimento de complexidade

Modelos monolíticos possuem a tendência de acumular muitos conceitos de domínio e cuidam de muitas regras de negócio, facilitando, assim, que o desenvolvedor cometa erros de conceito, sobrecarregando um objeto de domínio com comportamentos que fazem sentido para uma área, mas não para outra.  Faz-se necessário lembrar que sobrecarregar um domínio dessa forma é claramente uma violação do SRP.

Múltiplos times

Outro problema que temos com modelos monolíticos é que eles se tornam ineficientes quando estamos trabalhando com vários times de desenvolvimento.

Imagine o seguinte cenário: um time precisa realizar o deploy de uma feature, porém existe outro time que está trabalhando e é necessário esperar que eles também realizem o check-in de suas atividades para realizar o deploy. Esse tipo de problema é comum quando estamos trabalhando em grandes aplicações que possuem um único modelo.

Múltiplos modelos

A separação explícita de conceitos ambíguos que é realizada, quando fazemos uso de bounded context, nos força a deixar de trabalhar com um modelo monolítico e a começar a pensar em múltiplos modelos. Sendo esse um excelente efeito colateral que evita esses tipos de problemas.

Conclusão

Existem muitos outros benefícios que o uso de bounded context traz, não vou navegar por todos, mas o que precisamos tem em mente é que, utilizando bounded context, conseguimos dividir os problemas( tornando-os ainda menores) e, consequentemente, conseguimos diminuir a complexidade de ter que lidar com uma única grande dificuldade.

Essa divisão também pode ser aplicada no número de pessoas resolvendo essas questões, pois se torna mais fácil ter mais de um time trabalhando em um projeto, cada um focado em um desses pequenos problemas, já que dessa forma você terá problemas resolvidos de forma mais ágil, algo muito importante em uma equipe que utiliza metodologias ágeis.

No meu próximo e ultimo post sobre essa série, vou mostrar na prática como trabalhar com bounded context utilizando Entity framework.

Referências

Patterns, Principles and Practices of Domain Driven Design

Domain Driven Design

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s