Comments on: DDD e DTO http://philcalcado.com/2007/06/07/ddd-e-dto/ Software e Batatas Fri, 06 Jan 2012 20:32:15 +0000 http://wordpress.org/?v=2.7.1 hourly 1 By: O Projeto « Java Learning http://philcalcado.com/2007/06/07/ddd-e-dto/comment-page-1/#comment-101662 O Projeto « Java Learning Thu, 23 Oct 2008 19:57:35 +0000 http://fragmental.com.br/blog/?p=358#comment-101662 [...] - Domain Driven Design : DDD, Shoes & Shoes, e tem uma matéria muito legal do Sérgio Lopes na Mundo Java 3 (que eu não tenho [...] [...] - Domain Driven Design : DDD, Shoes & Shoes, e tem uma matéria muito legal do Sérgio Lopes na Mundo Java 3 (que eu não tenho [...]

]]>
By: Leandro Ribeiro http://philcalcado.com/2007/06/07/ddd-e-dto/comment-page-1/#comment-52610 Leandro Ribeiro Sat, 09 Jun 2007 20:40:14 +0000 http://fragmental.com.br/blog/?p=358#comment-52610 Mais uma vez obrigado! Mais uma vez obrigado!

]]>
By: pcalcado http://philcalcado.com/2007/06/07/ddd-e-dto/comment-page-1/#comment-52399 pcalcado Fri, 08 Jun 2007 23:11:40 +0000 http://fragmental.com.br/blog/?p=358#comment-52399 Ok, então saímso do domínio específico e entramos no conceito geral. Dados históricos geralmente usados uma vez a cada vida para fazer alguma auditoria ou coisa que o valha. No mundo dos objetos estes dados estão ligados à entidade como quaisquer outros. Normalmente você teria uma lista de projetos pelos quais o funcionário passou e em algum lugar (uma classe associativa, talvez) o motivo e dados de entrada e saída. Lembre-se que apra objetos não existe persistência. Sendo assim não existe dentre objetos conceitos como guardar e recuperar do banco de dados, tudo está *sempre* em memória. Obviamente isto é inviável, então utilizamos um DataMapper ou algo que o valha para fazer o carregamento do bancod e dados ser o mais transparente possível. Bem, no caso dos dados históricos o seu DAO (ou Hibernate, ou JPA...) vai se responsabiliar por isso. Do ponto de vista do objeto o histórico está disponível, mas ele não vaie star em memória. Quando alguém disparar um caso de uso que requeira o uso do histórico sua camada de persistência deve ser esperta o suficiente para recuperá-lo. Isso pode ser tão simples quanto um lazy-loading ou tão complexo quanto mandar um email para alguém pedindo a fita com os dados expurgados. Ok, então saímso do domínio específico e entramos no conceito geral. Dados históricos geralmente usados uma vez a cada vida para fazer alguma auditoria ou coisa que o valha.

No mundo dos objetos estes dados estão ligados à entidade como quaisquer outros. Normalmente você teria uma lista de projetos pelos quais o funcionário passou e em algum lugar (uma classe associativa, talvez) o motivo e dados de entrada e saída.

Lembre-se que apra objetos não existe persistência. Sendo assim não existe dentre objetos conceitos como guardar e recuperar do banco de dados, tudo está *sempre* em memória.

Obviamente isto é inviável, então utilizamos um DataMapper ou algo que o valha para fazer o carregamento do bancod e dados ser o mais transparente possível. Bem, no caso dos dados históricos o seu DAO (ou Hibernate, ou JPA…) vai se responsabiliar por isso.

Do ponto de vista do objeto o histórico está disponível, mas ele não vaie star em memória. Quando alguém disparar um caso de uso que requeira o uso do histórico sua camada de persistência deve ser esperta o suficiente para recuperá-lo. Isso pode ser tão simples quanto um lazy-loading ou tão complexo quanto mandar um email para alguém pedindo a fita com os dados expurgados.

]]>
By: Leandro Ribeiro http://philcalcado.com/2007/06/07/ddd-e-dto/comment-page-1/#comment-52345 Leandro Ribeiro Fri, 08 Jun 2007 18:21:53 +0000 http://fragmental.com.br/blog/?p=358#comment-52345 Esta pessoa continua na “empresa” e pode ser aproveitada em oturos projetos? <em>Sim</em> Se não, ela pode voltar? A princípio parece estranho sim, mas o que é a saída da pessoa? <em>É o ato de ela deixar um projeto...</em> É uma entidade? <em>A saída eu não enxerguei como uma entidade não</em> É só um dado solto no espaço? <em>Não ele é relacionado a saída de uma pessoa de um dado projeto.</em> Tudo depende do domínio. Entendi, mas mesmo se o domínio (ou mini mundo) "parece" requer historicos do porquê as pessoas deixaram os projetos, poderia eu estar totamente errado ao ler isso dentro da entidade projeto ? Se no entendimento do negócio, conhegui entender que eles tem uma entidade com uma propriedade quase nunca usada... o que devo fazer com ela? Lembrando que ela faz parte do dominio. Com suas indagações me lembrei, eu entendi essa saida e motivo como um relacionamento entre pessoas e projetos, com a criação de uma outra entidade para representar essa "equipe tecnica" e suas relações entrada saida.... O foco é provalvmente se tenho um objeto no qual sua propriedade é quase nunca utilizada ou muito utilizada por outra entidade provavelmente ele é de outro entendimento (classe) ? Desde já obrigado. Esta pessoa continua na “empresa” e pode ser aproveitada em oturos projetos?
Sim

Se não, ela pode voltar?

A princípio parece estranho sim, mas o que é a saída da pessoa?

É o ato de ela deixar um projeto…
É uma entidade?
A saída eu não enxerguei como uma entidade não

É só um dado solto no espaço?
Não ele é relacionado a saída de uma pessoa de um dado projeto.

Tudo depende do domínio.

Entendi, mas mesmo se o domínio (ou mini mundo) “parece” requer historicos do porquê as pessoas deixaram os projetos, poderia eu estar totamente errado ao ler isso dentro da entidade projeto ?

Se no entendimento do negócio, conhegui entender que eles tem uma entidade com uma propriedade quase nunca usada… o que devo fazer com ela? Lembrando que ela faz parte do dominio.

Com suas indagações me lembrei, eu entendi essa saida e motivo como um relacionamento entre pessoas e projetos, com a criação de uma outra entidade para representar essa “equipe tecnica” e suas relações entrada saida….

O foco é provalvmente se tenho um objeto no qual sua propriedade é quase nunca utilizada ou muito utilizada por outra entidade provavelmente ele é de outro entendimento (classe) ?

Desde já obrigado.

]]>
By: pcalcado http://philcalcado.com/2007/06/07/ddd-e-dto/comment-page-1/#comment-52336 pcalcado Fri, 08 Jun 2007 16:45:01 +0000 http://fragmental.com.br/blog/?p=358#comment-52336 Esta pessoa continua na "empresa" e pode ser aproveitada em oturos projetos? Se não, ela pode voltar? A princípio parece estranho sim, mas o que é a saída da pessoa? É uma entidade? É só um dado solto no espaço? Tudo depende do domínio. Esta pessoa continua na “empresa” e pode ser aproveitada em oturos projetos? Se não, ela pode voltar?

A princípio parece estranho sim, mas o que é a saída da pessoa? É uma entidade? É só um dado solto no espaço? Tudo depende do domínio.

]]>
By: Leandro Moreira http://philcalcado.com/2007/06/07/ddd-e-dto/comment-page-1/#comment-52318 Leandro Moreira Fri, 08 Jun 2007 13:24:28 +0000 http://fragmental.com.br/blog/?p=358#comment-52318 Lendo o artigo veio me uma antiga dúvida na mente. Definindo um problema para gerencia de pessoas... defino uma classe de pessoa. [pessoa-------] |-cpf-----------| |-nome--------| |-motivoSaida| ---------------| |+sair()Z-----| __________ Uma pessoa tem os atributos básicos cpf, nome etc,,, porém quando está pessoa sair (do projeto, local, ou qualquer outra coisa isso nesse momento não importa) ele deverá dizer o motivo da sua saida.... O que eu deveria fazer com este comportamento e estado de saida da pessoa? Parece estranho manter ele na mesma classe, sendo que ele quase não vai ser usado,,, parece fugir um pouco ao contexto do objeto pessoa em si. Sobre isso, eu estou paranoico, não compreendendo direito ou tem algo "cheirando mal" nessa modelagem (ou pensamento)? Lendo o artigo veio me uma antiga dúvida na mente.

Definindo um problema para gerencia de pessoas… defino uma classe de pessoa.

[pessoa-------]
|-cpf———–|
|-nome——–|
|-motivoSaida|
—————|
|+sair()Z—–|
__________

Uma pessoa tem os atributos básicos cpf, nome etc,,, porém quando está pessoa sair (do projeto, local, ou qualquer outra coisa isso nesse momento não importa) ele deverá dizer o motivo da sua saida….

O que eu deveria fazer com este comportamento e estado de saida da pessoa? Parece estranho manter ele na mesma classe, sendo que ele quase não vai ser usado,,, parece fugir um pouco ao contexto do objeto pessoa em si.
Sobre isso, eu estou paranoico, não compreendendo direito ou tem algo “cheirando mal” nessa modelagem (ou pensamento)?

]]>