Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Implementando software guiado a negócio

Implementando software guiado a negócio

Um modelo reflete bem uma linguagem Ubíqua dentro dos termos do Domain driven design, manter ele consistente significa que ele ainda está fazendo apenas o que ele precisa fazer, ele não está fazendo além, é comum e natural que um modelo evolua a ponto de se tornar inconsistente e assim necessitando de uma refatoração, nessa talk falo um pouco sobre alguns conceitos iniciais DDD e qual a importância do modelo no ciclo de vida de uma aplicação.

Avatar for Mattheus Cassundé

Mattheus Cassundé

March 15, 2025
Tweet

More Decks by Mattheus Cassundé

Other Decks in Programming

Transcript

  1. ./cassunde Desenvolvedor de software com +10 anos de experiência, é

    apaixonado por Java e seu ecossistema assim também como boas práticas da engenharia e arquitetura de softwares
  2. Domínio de Negócio Fala sobre a principal área de Atividade

    da Empresa Transporte rápido e confiável de encomendas Oferece produtos de alta qualidade sobre a cultura do café. Atender às necessidades diárias dos consumidores
  3. Domínio de Negócio Cada Domínio de Negócio tem objetivos Oferecer

    melhor Experiência de entregas Oferecer melhores preços
  4. Domínio de Negócio Cada Domínio de Negócio tem objetivos Oferecer

    melhor Experiência de entregas Oferecer melhores preços Oferecer as melhores ferramentas para aplicações Oferecer as melhores formas de precificação
  5. Sub Domínio Ajudam a atingir os objetivos do Domínio de

    Negócio Precisam interagir entre si
  6. Core Generic Sub Domínio Existem tipos de subdomains Centraliza funcionalidades

    que diferenciam a empresa no mercado Centraliza funcionalidades importantes mas que podemos terceirizar
  7. Core Generic Support Sub Domínio Existem tipos de subdomains Centraliza

    funcionalidades que diferenciam a empresa no mercado Centraliza funcionalidades importantes mas que podemos terceirizar Centraliza funcionalidades que apoiam principalmente os core subdomains
  8. Core Sub Domínio Existem tipos de subdomains Centraliza funcionalidades que

    diferenciam a empresa no mercado Criam barreira para concorrentes Em caso de falha ocasionam prejuízo para empresa São complexos Estão sempre em evolução Não precisa ser técnico (Joalheria) Devem ser implementados em casa
  9. Generic Sub Domínio Existem tipos de subdomains Centraliza funcionalidades importantes

    mas que podemos terceirizar Todos os concorrentes usam da mesma forma Não entrega diferenciais de mercado São complexos e difíceis de implementar
  10. Support Sub Domínio Existem tipos de subdomains Centraliza funcionalidades que

    apoiam principalmente os core subdomains Não oferecem diferenciais comercial Não precisa ou raramente são otimizado Não precisa de técnicas complexas de desenvolvimento de software São simples
  11. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Sub Domínio Core Core Notification Domínio de Negócio
  12. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Sub Domínio Core Core Generic Core Notification Supporting Domínio de Negócio
  13. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Sub Domínio Core Core Generic Core Notification Supporting Domínio de Negócio Podemos terceirizar
  14. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Sub Domínio Core Core Generic Core Notification Supporting Domínio de Negócio Temos diferenciais de mercado
  15. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Sub Domínio Core Core Generic Core Notification Supporting Domínio de Negócio Se falhar não trás prejuízo
  16. Marketplace Financial Experience Core Credit Card Payment Core Authorize Capture

    Rollback Caso de uso coerente Caso de uso Domínio de negócio
  17. Foco no negócio Com o mapeamento dos Domínios de Negócio

    e seus Sub domínios as decisões no Design de um Software ficam mais eficientes
  18. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Foco no negócio Core Core Generic Core Notification Supporting Domínio de Negócio
  19. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Foco no negócio Core Core Generic Core Notification Supporting Domínio de Negócio
  20. Marketplace Customer Service Seller Center Financial Experience Help Desk Case

    Routing Core Foco no negócio Core Core Generic Core Notification Supporting Domínio de Negócio Quais os dados do cliente são necessários ? Quais dados do pedido são necessários ?
  21. Especialista de Domínio Product Owner Engineer/UI/UX Conhecimento Modelo Mental Requisitos

    Refinamento Linguagem Ubíqua Implementação Especialidades Processo de desenvolvimento
  22. Especialista de Domínio Product Owner Engineer/UI/UX Traduzir Linguagem Ubíqua Traduzir

    Traduzir Traduzir Conhecimento Modelo Mental Requisitos Refinamento Implementação
  23. Especialista de Domínio Product Owner Engineer/UI/UX Linguagem Ubíqua Linguagem Ubíqua

    Conhecimento Modelo Mental Requisitos Refinamento Implementação
  24. Linguagem Ubíqua "Linguagem ubíqua é uma linguagem de negócio" Se

    no Modelo Mental tem um termo chamado de Order, quando qualquer desenvolvedor ver o termo Order no código saberá que é a mesma coisa que o Especialista de domínio está falando.
  25. Linguagem Ubíqua "Linguagem ubíqua é uma linguagem de negócio" Deve

    ter apenas um significado Deve ser preciso e consistente Evitar suposições Todo os stakeholders devem usar Deve explicar características e comportamentos
  26. Deve ter apenas um significado dentro de um contexto Linguagem

    Ubíqua "Linguagem ubíqua é uma linguagem de negócio"
  27. Modelos e Modelos Inconsistentes Não é uma cópia do mundo

    real É uma forma que abstrai a complexidade desnecessária É feito para resolver um problema em específico Modelo
  28. Cada mapa é para resolver um problema específico Modelos e

    Modelos Inconsistentes Modelo Trânsito Metrô
  29. Modelos e Modelos Inconsistentes Seller Conceito inicial do seller não

    contempla Serviço 1 Serviço 2 Serviço 3 Delivery Data Financial Data
  30. Modelos e Modelos Inconsistentes Seller Conceito inicial do seller não

    contempla Serviço 1 Serviço 2 Serviço 3 Delivery Data Financial Data Dependências Extras
  31. Modelos e Modelos Inconsistentes Seller Conceito inicial do seller não

    contempla Serviço 1 Serviço 2 Serviço 3 Delivery Data Financial Data Dependências Extras x
  32. Modelos e Modelos Inconsistentes Seller Conceito inicial do seller não

    contempla Serviço 1 Serviço 2 Serviço 3 Delivery Data Financial Data Dependências Extras x x
  33. Business Domain Sub Domain Linguagem Ubiqua Model Consistente Resume Core

    Evolução Contínua Tentar ao máximo ser consistentes
  34. Business Domain Sub Domain Linguagem Ubiqua Model Consistente Resume Core

    Evolução Contínua Facilita Tentar ao máximo ser consistentes