O que são Bounded Contexts e Context Maps em Domain Driven Design?

O que são Bounded Contexts e Context Maps em Domain Driven Design?

antes só gostaria de deixar claro, este artigo como outros é tirado de sites para próprio aprendizado, talvez encontrem algum erro de tradução, quem poder ajudar melhorar o post, sinta se a vontade, o mesmo para indicar artigos, sempre deixarei a fonte no fim da pagina.

Vamos estar olhando para duas partes do Domain Driven Design, em terminologia bounded contexts e context Maps.

Qual é o modelo de domínio (domain model)?

O Modelo de Domínio é o conhecimento com estruturado que está relacionada a um problema específico. O modelo de domínio em si poderia ser um código, a prosa escrito ou um diagrama, o próprio meio não é realmente importante.

O modelo de domínio centra a sua atenção sobre um problema específico. Esta restrição obriga a realmente chegar ao coração do problema sem ter em conta tudo, desde o mundo exterior.

Isso significa que o modelo de domínio terá a sua própria linguagem interna que representa as coisas importantes que são específicos para um problema.

Se você é iniciando seus estudo em  em  Modelo de Domínio, eu recomendo que você leia pós da semana passada , antes de continuar com esta.

O mundo real dos modelos de domínio coexistindo

A ideia teórica de um modelo de domínio faz muito sentido no mundo da programação. Um modelo de domínio é o conhecimento focalizado de um problema e assim ter uma descrição clara do problema e da solução torna a sua vida como um programador muito mais fácil.

Ter um único modelo é um objetivo nobre, porque um único modelo unificado é, em teoria, mais fácil de obter a sua cabeça em torno.

No entanto, no mundo real da construção de aplicativos para empresas, nunca há apenas um único modelo de domínio. Se você está construindo uma aplicação que toca muitas partes de uma empresa já existente, você provavelmente vai encontrar vários modelos de domínio coexistindo que muitas vezes se contradizem uns aos outros.

Por exemplo, em uma aplicação web típica de comércio eletrônico, o termoproduto provavelmente vai significar algo diferente no sistema de estoque do que no sistema de catálogo. Isso pode significar que os dois sistemas diferentes têm duas idéias diferentes de responsabilidade por esse objeto, ou que o objeto deve ter dois jogos completamente diferentes dos recursos.

Quando os objetos têm várias responsabilidades diferentes para diferentes partes de um aplicativo que pode se tornar monolítica e difícil de trabalhar. O que é mais, quando há vários desenvolvedores trabalhando em problemas diferentes usando os mesmos objetos, inevitavelmente haverá requisitos e a introdução de erros e inconsistências imprevistas conflitantes.

Um modelo de domínio deve ser o conhecimento centrada em torno de um problema particular. Isto limita o âmbito do modelo de domínio de um contexto muito específico. Quando se deparar inevitavelmente essas idéias conflitantes, é hora de dar um passo atrás do Modelo de Domínio.

O que é um Contexto Limitada?

Um Contexto Limitada é a fronteira que envolve um modelo particular. Isso mantém o conhecimento dentro do limite consistente, enquanto ignorando o ruído do mundo exterior.

Isto é benéfico para um número de razões.

Em primeiro lugar você pode modelar os aspectos do problema sem ter que se preocupar com outras partes do negócio. Usando o exemplo anterior, umproduto objeto dentro do sistema de estoque só precisa se preocupar com os métodos e propriedades desse sistema único, em vez de qualquer outra preocupação das empresas que acontece para caber em um objeto chamado de produto .

Em segundo lugar a terminologia dentro de um contexto Limitada pode ter uma definição única, claro que descrevem com precisão o problema na mão.Diferentes departamentos através de uma empresa geralmente tem um pouco diferentes ideias e definições de termos semelhantes, mas muitas vezes isso pode inviabilizar um projeto através de uma falta de clareza e compreensão quando os termos são misturados.

O que é um Contexto do Mapa (Context Maps)?

Quando você começar a pensar sobre os vários subsistemas de um aplicativo como indivíduo Bounded Contextos, você pode perder de vista a visão global do negócio como um todo.

É inevitável que os vários contextos delimitadas de um aplicativo precisa para se comunicar ou compartilhar dados entre si.

Um mapa de contexto é a visão global da aplicação como um todo. Cada contexto Delimitada se encaixa dentro do mapa de contexto para mostrar como eles devem se comunicar entre si e como os dados devem ser compartilhados.

Conclusão

Contexto limitada são uma ferramenta de modelagem muito importante quando se trata de Domínio Driven Development.

Contextos delimitadas permitem dividir um grande problema em problemas muito menores para que você possa se concentrar em aspectos específicos do aplicativo sem ter em conta tudo o resto.

Isto permite-lhe formar uma linguagem consistente em torno desse problema específico para que todos tenham uma definição clara de cada um dos termos importantes.

Normalmente haverá alguns objetos em uma aplicação web que têm definições diferentes em contextos diferentes do aplicativo. Ao dividir a aplicação em contexto Delimitada, você garante que as linhas entre cada contexto são claramente definidos para que a terminologia em torno de idéias e conceitos da aplicação são claramente compreendido.

No entanto, quando você se concentrar em minúcias, muitas vezes você pode perder de vista o quadro maior da aplicação. Um mapa de contexto deve mostrar onde cada Contexto Bounded senta-se em relação aos outros. Há muitas vezes uma grande quantidade de informações importantes das associações de Bounded Contextos e então um mapa de contexto garante que o conhecimento não cair através das lacunas.

fonte: http://culttt.com/2014/11/19/bounded-contexts-context-maps-domain-driven-design/

 

Anúncios