Bounded Context, Por quê usar? – Parte I

Na primeira parte desta série sobre Bounded Context, expliquei de uma forma breve o que é um BC. Com esse entendimento em mente, vamos ver agora quais as vantagens que temos ao utilizá-lo

Ambiguidade

O André, que trabalha na T.I, recebeu um chamado informando que a conta de um determinado funcionário estava bloqueada e o mesmo precisaria utilizá-la com urgência. André fez todos os procedimentos necessários e constatou que não havia problema algum com a conta do usuário, encerrando, assim, o chamado. Alguns minutos depois, ele  recebeu uma ligação deste funcionário falando que o mesmo estava na frente do caixa eletrônico e a conta dele continuava bloqueada. De imediato, André percebeu que houve uma confusão de conceitos. Como ele cuida das contas dos usuários do sistema, logo, ele tratou uma conta como a área dele entende. André, então, informou o funcionário que a área responsável por cuidar das contas correntes era outra área: o RH.

Quando iniciamos a análise de um problema com os especialistas de domínio(domain experts) de cada área, esses tipos de conceitos similares e imprecisos são comuns  e para deixá-los mais claros, tanto para o desenvolvedor quanto para o especialista de domínio, fazemos uso da Linguagem Onipresente (ubiquitous language).

Então, sabemos que, para identificarmos similaridades de conceitos (como no exemplo dado em que conta existe tanto para a T.I quanto para o R.H, sendo assim, podendo gerar uma ambiguidade) precisamos deixar a comunicação entre desenvolvedor e especialista de domínio mais clara, utilizamos a Linguagem Onipresente. Então, como aplicamos isso no nosso modelo de domínio?

Ora, utilizando Bounded Context!

Boundend Context é, então, uma forma de distinguir conceitos similares e, portanto, confusos  no nosso modelo de domínio.Ou seja, é  levar a linguagem onipresente para o espaço de solução, garantindo, assim, a integridade do mesmo.

Podemos dizer de forma resumida então que: bounded context é uma linguagem de delimitação que remove ambiguidade, utilizando UL

Esse tipo de confusão de conceito é um dos problemas que podem acontecer em um modelo monolítico aonde não se faz uso do bounded context.

Imagine uma unica classe conta para tratar tanto da conta de acesso do usuário no sistema quanto da conta corrente do funcionário. Conforme vamos destilando o domínio e tendo novos insights, fica difícil de encaixar comportamentos e as necessidades nessa mesma classe. Não faz sentido para uma conta de um sistema ter saldo, por exemplo.

Nessa primeira parte, podemos ver uma das primeiras vantagens que temos quando fazemos uso de bounded context: identificação de ambiguidade no espaço de solução, isolamento da mesma e integridade do modelo. Nos próximos posts vou comentar sobre mais algumas vantagens que ganhamos ao utilizar BC.

Espero que tenha ajudado 🙂

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 )

w

Conectando a %s