Bounded Context: Desbravando as fronteiras do seu negócio – Resumo

Olá, tudo bem? No dia 24/10/2016, aconteceu a segunda live da Software em contexto, sendo assim, vou tentar sintetizar os principais pontos que foram falados no cast, com o objetivo de ajudar a consolidar ainda mais o conteúdo. Espero que gostem 🙂

Domínio, Subdomínio e Contextos delimitados

Ao meu ver, identificar e até mesmo explicar o que é um contexto delimitado (ou bounded context) é sempre um desafio. Sendo assim, para conseguirmos ter uma ideia exata sobre o que é um contexto delimitado, acredito que precisamos ter uma ideia clara do que é um Domínio e um subdomínio antes.

Domínio

O domínio (ou domain) refere-se a todo o domínio do negocio de uma organização. Quando estamos trabalhando no desenvolvimento de um e-commerce, por exemplo, o domínio é toda regra de negocio que envolve a venda do produto até a chegada ao cliente final. O domínio é esse todo.

É importante que não se confunda domínio com modelo de domínio, que é um tema que falaremos mais adiante.

Subdomínio

Você concorda que, desenvolver um software olhando somente para o domínio não é uma tarefa fácil? É tanta coisa para olhar que nossos olhos acabam perdendo o foco e nos confundindo.

can-you-find-it
É como procurar o panda no meio dos bonecos de neve

Entretendo, se focarmos nossos olhos para pontos específicos do negócio, nós conseguiremos  diminuir a complexidade, facilitando a identificação e resolução dos nossos problemas.

O domínio de um e-commerce poderia ser dividido em algumas partes como: a área de faturamento, a de entrega dos produtos, a área de vendas, a de compras e etc.

Ora, se a composição de todas essas áreas formam o nosso domínio, então podemos crer que cada uma é um subdomínio. Sendo assim, Conseguimos definir que, um subdomínio é uma parte especifica do domínio.

Subdomínios de suporte

É aquele parte do seu domínio que é essencial, mas não é o core do negócio. No cenário de um e-commerce, poderíamos dizer que o contexto de logística é um subdomínio de suporte, pois sem ele não conseguimos controlar a entrega dos produtos aos clientes, entretanto, não faz parte do nosso core, que é a venda de produtos.

 

Subdomínio Genérico

É aquele subdomínio que não captura nada de especial para o negócio, mas é importante para o domínio. Poderíamos dizer que, um subdomínio que cuida do atendimento ao cliente online se enquadra neste cenário. Apesar de não gerar nada em especial para o negocio, é importante para termos uma ideia da satisfação do cliente e identificar pontos de melhoria.

Core do domino (Core domain)

É a parte do domínio que é o mais importante, o que garante o sucesso do negocio. Aqui é onde o maior esforço deve ser depositado. No nosso exemplo, podemos dizer que é subdomínio que cuida da venda dos produtos.

Bounded Context

Agora que identificamos os subdomínios do nosso domínio, temos várias partes especializadas em resolver um problema. Para resolvermos estes problemas, precisamos dedicar um tempo em entender como cada área funcionada, qual o fluxo do processo e quais as regras de negocio.

Toda essa etapa de destilação do domínio irá nos proporcionar um conhecimento profundo daquela área especifica, onde vamos identificar nomenclaturas e regras utilizadas para definir os processos. Toda essas informações são obtidas através dos especialistas de domínio daquela área.

Todas essas informações serão utilizadas para realizarmos a implementação de  uma solução para o problema. Podemos dizer então que, um bounded context é a implementação de solução como um software, realizada para atender um problema especifico, onde seus limites são delimitados pela linguagem onipresente (UL), capturada no processo de destilação.

Voughn Vernon cita em seu livro, Implementing Domain-Driven-Design que, um bounded context é, principalmente, uma delimitação linguística. Isto porque é a UL que irá definir os limites do seu BC. Por este motivo que é de extrema importância o processo de destilação e entendimento do domínio que se está trabalhando.

Conclusão

Como proposto no inicio do post, comentei os principais pontos abordados no nosso bate papo online. Conseguimos ter uma definição do que é um domínio, um subdomínio, os tipos de subdomínio que conseguimos encontrar e onde “mora” o bounded context, além de sua definição.

Espero que tenha conseguido ajudar você a entender um pouco melhor sobre o tema abordado. Caso você tenha alguma duvida, critica ou sugestão, mande um e-mail para a  software em contexto: contato@software-em-contexto.com.br

Para concluir, gostaria de deixar um exercício para que pratique a ideia de identificação de subdomínios e bounded context:

proposta-de-exercicios-cast-bounded-context_-desbravando-as-fronteiras-do-seu-negocio

 

Se você ainda não assistiu nosso ultimo cast, não perca tempo e já da uma conferida 🙂

 

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s