{
  "version": "https://jsonfeed.org/version/1",
  "title": "marcelo.txt",
  "home_page_url": "https://blog.marcelomaga.space",
  "feed_url": "https://blog.marcelomaga.space/tag-ddd.json",
  "description": "Posts sobre software, sistemas e arquitetura.",
  "items": [
    {
      "id": "https://blog.marcelomaga.space/linguagem-ubiqua-ubiquitous-language.html",
      "url": "https://blog.marcelomaga.space/linguagem-ubiqua-ubiquitous-language.html",
      "title": "Linguagem Ubíqua (Ubiquitous Language)",
      "content_html": "<p>Durante toda a descrição do cenário que será utilizado no software, o Domain Expert começa a utilizar termos do próprio negocio, porem quando o contexto (departamentos de uma empresa) um outro termo pode ser utilizado para o mesmo termo utilizado anteriormente.</p>\n<p>Para isso é super importante a definição universal do negocio e que posteriormente será utilizado dentro do desenho do sistema.</p>\n<p>Essa linguagem deve ser consistente e detalhada, para facilitar o entendimento e a comunicação.</p>\n<h2 id=\"termos-ambíguos\">Termos Ambíguos<a href=\"#termos-ambíguos\" aria-label=\"Link to heading 'Termos Ambíguos'\" data-heading-content=\"Termos Ambíguos\" class=\"anchor\"></a></h2>\n<p>Dentro de um mesmo subdomínio pode acontecer de ter um termo ter mais de um significado, na criação da linguagem ubíqua precisamos definir a definição para cada termo, definindo todos os significados para o mesmo termo.</p>\n<h2 id=\"termos-sinônimos\">Termos Sinônimos<a href=\"#termos-sinônimos\" aria-label=\"Link to heading 'Termos Sinônimos'\" data-heading-content=\"Termos Sinônimos\" class=\"anchor\"></a></h2>\n<p>Sempre devemos tentar quebrar esse termos, são termos que são utilizados por vários significados.</p>\n",
      "summary": "",
      "date_published": "2026-04-25T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Marcelo Magalhães",
          "url": "https://github.com/Marcelo-maga",
          "avatar": "https://github.com/Marcelo-maga.png"
        }
      ],
      "tags": [
        "ddd"
      ],
      "language": "pt-BR"
    },
    {
      "id": "https://blog.marcelomaga.space/dominio-principal-core-domain.html",
      "url": "https://blog.marcelomaga.space/dominio-principal-core-domain.html",
      "title": "Domínio Principal (Core Domain)",
      "content_html": "<p>O Domínio principal representa o motivo do software existir, oque faz o seu negocio ser diferente de qualquer outro negocio, oque faz ele ser especial??</p>\n<h2 id=\"exemplos\">Exemplos<a href=\"#exemplos\" aria-label=\"Link to heading 'Exemplos'\" data-heading-content=\"Exemplos\" class=\"anchor\"></a></h2>\n<p>O Domínio Principal da nossa Escola são as Aulas e Metodologias\nO Domínio Principal da Netflix são os vídeos\nO Domínio Principal da Azul são os voos\nO Domínio Principal da DHL são seus serviços logísticos</p>\n",
      "summary": "",
      "date_published": "2026-04-25T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Marcelo Magalhães",
          "url": "https://github.com/Marcelo-maga",
          "avatar": "https://github.com/Marcelo-maga.png"
        }
      ],
      "tags": [
        "ddd"
      ],
      "language": "pt-BR"
    },
    {
      "id": "https://blog.marcelomaga.space/contexto-delimitado-bounded-context.html",
      "url": "https://blog.marcelomaga.space/contexto-delimitado-bounded-context.html",
      "title": "Contexto Delimitado (Bounded Context)",
      "content_html": "<p>⚠ Importante: Um contexto delimitado é sempre trabalhado por um time, nunca deve ser compartilhado entre dois, mas um time pode trabalhar em diversos contextos.</p>\n<p>São limites que não são definidos pelos subdomínios, podem ser identificados ao analisar o negocio.</p>\n<ul>\n<li>\n<p>Não existe uma regra para definir o tamanho de um contexto delimitado, tudo vai depender de como o arquiteto analisa e identifica esses contextos. Se a termologia entre dois contextos forem muito parecidas, é uma boa ideia juntar os dois em um contexto delimitado, e o contrario também vale, caso a termologia seja muito diferente, vale a pena em separa em contextos diferentes.</p>\n</li>\n<li>\n<p>A quantidade não é fixa, e varia de acordo com a necessidade do negocio, e não por ser um contexto muito grande precise de um time grande de desenvolvimento, as vezes existem muitas coisas dependentes e não acelerara o desenvolvimento.</p>\n</li>\n<li>\n<p>O numero de contextos pode definir a quantidades de times que vão participar do desenvolvimento, mas não necessariamente será exatamente isso.</p>\n</li>\n<li>\n<p>Se a aplicação for pequena o suficiente, um único contexto pode englobar a aplicação inteira</p>\n</li>\n</ul>\n<p>Essa separação é necessária pois os time criam uma linguagem própria para se comunicar, atrelada a Linguagem Ubíqua e os processos do negocio que estão trabalhando.</p>\n<h1 id=\"trabalhando-com-contextos-delimitados\">Trabalhando com Contextos Delimitados<a href=\"#trabalhando-com-contextos-delimitados\" aria-label=\"Link to heading 'Trabalhando com Contextos Delimitados'\" data-heading-content=\"Trabalhando com Contextos Delimitados\" class=\"anchor\"></a></h1>\n<p>Para fazer a integração de diversos contextos delimitados e consequentemente times diferentes devemos nos atentar e escolher um modelo de integração, e para cada modelo ele supre a necessidade especifica de um cenário.</p>\n",
      "summary": "",
      "date_published": "2026-04-25T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Marcelo Magalhães",
          "url": "https://github.com/Marcelo-maga",
          "avatar": "https://github.com/Marcelo-maga.png"
        }
      ],
      "tags": [
        "ddd"
      ],
      "language": "pt-BR"
    },
    {
      "id": "https://blog.marcelomaga.space/dominio-de-apoio-supporting-domain.html",
      "url": "https://blog.marcelomaga.space/dominio-de-apoio-supporting-domain.html",
      "title": "Domínio de Apoio (Supporting Domain)",
      "content_html": "<p>O Domínio de Apoio ajuda o <a href=\"dominio-principal-core-domain.html\" data-wikilink=\"true\">Domínio Principal (Core Domain)</a> a funcionar, não agrega no produto em si, mas da o suporte necessário para que ele possa funcionar. Ele geralmente vem com logicas simples de fácil identificação, como o CRUD</p>\n",
      "summary": "",
      "date_published": "2026-04-25T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Marcelo Magalhães",
          "url": "https://github.com/Marcelo-maga",
          "avatar": "https://github.com/Marcelo-maga.png"
        }
      ],
      "tags": [
        "ddd"
      ],
      "language": "pt-BR"
    },
    {
      "id": "https://blog.marcelomaga.space/dominio-generico-generic-domain.html",
      "url": "https://blog.marcelomaga.space/dominio-generico-generic-domain.html",
      "title": "Domínio Genérico (Generic Domain)",
      "content_html": "<p>São conjuntos de processos comuns entre negócios e no mercado, são por natureza mais complexos de se implementar e não apresentam vantagens para o negocio e não diferencia o produto dos outros.</p>\n<h2 id=\"exemplos\">Exemplos<a href=\"#exemplos\" aria-label=\"Link to heading 'Exemplos'\" data-heading-content=\"Exemplos\" class=\"anchor\"></a></h2>\n<p>Um Domínio Genérico da Netflix é a parte de faturamento\nUm Domínio Genérico da Azul é a parte de autenticação de seu portal\nUm Domínio Genérico da DHL é a contabilidade</p>\n",
      "summary": "",
      "date_published": "2026-04-25T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Marcelo Magalhães",
          "url": "https://github.com/Marcelo-maga",
          "avatar": "https://github.com/Marcelo-maga.png"
        }
      ],
      "tags": [
        "ddd"
      ],
      "language": "pt-BR"
    },
    {
      "id": "https://blog.marcelomaga.space/ddd.html",
      "url": "https://blog.marcelomaga.space/ddd.html",
      "title": "DDD",
      "content_html": "<p>Material de estudo:</p>\n<pre class=\"marmite-code\"><code class=\"marmite-code-inner language-embed\">title: &quot;DDD do jeito certo&quot;\nimage: &quot;https://i.ytimg.com/vi/2X9Q97u4tUg/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&amp;rs=AOn4CLDxshTo4OwsisclqQs2btY-7hfG2w&amp;days_since_epoch=20227&quot;\ndescription: &quot;Share your videos with friends, family, and the world&quot;\nurl: &quot;https://www.youtube.com/playlist?list=PLkpjQs-GfEMN8CHp7tIQqg6JFowrIX9ve&quot;\naspectRatio: &quot;56.25&quot;\n</code></pre>\n<p><strong>Domain Expert</strong>:  A pessoa que especialista ou que esta inserida diariamente no contexto do problema.</p>\n<h2 id=\"design-estratégico\"><strong>Design Estratégico</strong><a href=\"#design-estratégico\" aria-label=\"Link to heading 'Design Estratégico'\" data-heading-content=\"Design Estratégico\" class=\"anchor\"></a></h2>\n<p>A definição da estratégia do negocio, nos ajuda a entender onde queremos chegar. Entendendo o que queremos fazer e porque queremos fazer.</p>\n<ul>\n<li>Subdomínio (Subdomain)</li>\n<li>Domínio Principal (Core Domain)</li>\n<li>Domínio de Apoio (Supporting Domain)</li>\n<li>Domínio Genérico (Generic Domain)</li>\n<li>Contexto Delimitado (Bounded Context)</li>\n<li>Linguagem Ubíqua (Ubiquitous Language)</li>\n<li>Mapeamento de Contexto (Context Mapping)</li>\n<li>Núcleo Compartilhado (Shared Kernel)</li>\n<li>Relacionamento Cliente/Fornecedor (Customer/Supplier Relationship)</li>\n<li>Conformista (Conformist)</li>\n<li>Camada Anti-Corrupção (Anti-Corruption Layer)</li>\n<li>Serviço de Hospedagem Aberto (Open Host Service)</li>\n<li>Linguagem Publicada (Published Language)</li>\n<li>Caminhos Separados (Separate Ways)</li>\n<li>Bola de Lama (Big Ball of Mud)</li>\n</ul>\n<hr />\n<h2 id=\"design-tático\"><strong>Design Tático</strong><a href=\"#design-tático\" aria-label=\"Link to heading 'Design Tático'\" data-heading-content=\"Design Tático\" class=\"anchor\"></a></h2>\n<ul>\n<li>Entidade (Entity)</li>\n<li>Objeto de Valor (Value Object)</li>\n<li>Agregado (Aggregate)</li>\n<li>Raiz do Agregado (Aggregate Root)</li>\n<li>Repositório (Repository)</li>\n<li>Fábrica (Factory)</li>\n<li>Serviço de Domínio (Domain Service)</li>\n<li>Evento de Domínio (Domain Event)</li>\n<li>Módulo (Module)</li>\n</ul>\n",
      "summary": "",
      "date_published": "2026-04-25T00:00:00-00:00",
      "image": "",
      "authors": [
        {
          "name": "Marcelo Magalhães",
          "url": "https://github.com/Marcelo-maga",
          "avatar": "https://github.com/Marcelo-maga.png"
        }
      ],
      "tags": [
        "ddd"
      ],
      "language": "pt-BR"
    }
  ]
}