Closed augustohp closed 9 years ago
Eu concordo.
Let's go ahead! Hoje é dia de limpar quintal, mas to aqui!
Acho que agora temos uma versão boa o suficiente do nosso dicionario para comecarmos a pensar no proximo passo, concorda @augustohp? Só que não me sinto feliz com a resposta a pergunta inicial, me parece que ela nao existe ainda, alguem pode formalizar a resposta aqui? @yourwebmaker ? @netojoaobatista ? @lcobucci ?
Minha opnião: Essa issue nasceu num repositorio chamado Order, isso pq evoluimos da discussão do modelo apresentado no Facebook que continha a modelagem de aprovação de Venda de uma maneira muito focada na aprovação utilizando recursos externos. O Order é um dos componentes do domínio de Vendas e o contexto abordado é o uso desse modelo para tratar o lado do cliente e por isso mesmo definimos o termo correto como COMPRA, ou seja, a ocorrencia de uma venda pela visão do cliente. Fizemos Isso para permitir a criação de uma linguagem ubiqua(palavrinha dificil).
O proximo passo seria discutir o que existe dentro desse domínio chamado Vendas(muito dessa discussão foi feita durante a formulacao da linguagem) e como modelar o contexto de Compra.
que acham?
Que problemas vamos resolver?
O problema inicial do post no Facebook seria a modelagem usando DDD resolvendo um contexto de aprovação de compra (originalmente chamado de venda) através de um serviço terceiro de análise de risco.
Para mim e para todos os outros participantes já está bem claro o que é o serviço de análise de risco e sua responsabilidade num contexto de compra. Será um serviço terceirizado que pode participar de uma compra, dependendo do tipo de pagamento.
Definimos um vocabulário e ele deve ser usado daqui em diante.
Acho que o contexto Compra (cliente comprando) já está bem definido até então (claro que poderá mudar em próximas iterações).
Uma venda, para nós, agora, é uma concretização de uma compra e não sei se é necessário discutir sobre isso por agora visto já que temos bastante coisas a serem fazer com compras. Mas ainda posso estar em enganado e queria saber a opinião de vocês quanto a isto.
então podemos dar essa issue por encerrada @yourwebmaker ?
Creio que sim. Ao desenrolar das coisas vamos evoluindo.
Quais os casos de uso que resolveremos e como? Acho que podemos usar o Behat pra isso. Com eles, podemos modelar nossos contextos e domínio, pra atingir uma língua ubíqua.
A lingua ubíqua é o nosso mapa de design. O caminho inverso acho que nem pode ser considerado DDD. O Vaughn Vernon faz um eufemismo e chama isso de DDD-lite mas tanto ele quanto Evans deixam claro que usar os building blocks somente não é DDD.
Nosso vocabulário
Estamos discutindo a nossa linguagem onipresente com a ajuda de um domínio que precisa ser atualizado para refletir esse vocabulário.
@yourwebmaker é nosso
especialista de domínio
e nossoproduct owner
.produto
possui várias edições, todocliente
tem acesso a última independente da edição que comprou.produto
é entregue para ocliente
via e-mail. Com um link único pra ele, com o conteúdo sem DRM.comprar
um ou maisprodutos
.cliente
escolheu um ou maisprodutos
e decidiu umaforma de pagamento
. :eyes:compra
de umcliente
eentregou
oproduto
. :eyes:cliente
escolheu pagar por umacompra
.compra
pode ser dividida em até 3x sem juros quando o total dacompra
é maior que R$100.forma de pagamento
entre ocliente
e ainstituição bancária
.adiquirente
informará o sucesso do pagamento nessa forma. Após avenda
pagar ataxa de operação
praadiquirente
.compra
écancelada
.compra
épré-aprovada
se ocliente
tem comoreceber
oproduto
(e-mail válido).forma de pagamento
e definição da Análise de Risco. Gera umataxa de operação
.cliente
provavelmente irá provocar umafraude
. 1 (um) quando ocliente
provavelmente fez umacompra legítima
.cliente
não vai pagar peloproduto
. :eyes:cliente
não pagar é extremamente baixa. Umacompra legítima
se tornará umavenda
. :eyes:compra
que não se tornouvenda
por algum motivo.venda
oucompra
.Legenda
:construction_worker: Precisa de mais trabalho/informação. Incompleto. :eyes: Em discussão.