| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2008 16:45:37
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
Lendo o blog do Sergio Taborda me deparei com uma frase:
A tecnologia subjacente pode interceptar chamadas a eles [os Serviços] e injetar capacidades de transação, controle de concorrência, segurança, logging, invocação remota, acoplamento com tencologias e protocolos especificos como CORBA ou SOAP - o que for necessário. O dominio é livre. Não depende de tecnologias, não depende de API, é portável e independente. Não está amarrado a nada nem a ninguém. Não mais DAOs para comunicar com o Banco de Dados. O rei vai nu.
Considerando que o domínio não depende de ninguém, que trabalha somente com suas classes e nada mais, porém que ainda temos que lidar com os dados que vem de alguma forma do usuário e geralmente persisti-los em algum lugar, e ao mesmo tempo deixar isso imperceptível para quem trabalha com as classes do domínio, pergunto:
Era possível fazer isso até, digamos, 5 anos atrás? É possível fazer DDD puro com tecnologia antiga? É possível fazê-lo sem injeções de dependências?
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2008 17:38:23
|
ricardolecheta
GUJ Master
![[Avatar]](/images/avatar/b59c67bf196a4758191e42f76670ceba.jpg)
Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline
|
bom para fazer esta separação vc precisa usar o conteito de interface.. por exemplo se quiser que seu domínio não conheça absolutamente nada de quem implementa o repositorio...
então a resposta é sim.. vc de alguma forma antigamente ia criar uma classe que implementa alguma interface, talvez usando o padrão factory... injeção de dependências é só a forma moderninha...
por exemplo vc coloca um @MinhaClasseAqui ou @MeuEJBAqui e bingo..
This message was edited 2 times. Last update was at 01/11/2008 17:39:00
|
Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2008 18:18:47
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
Bruno Laturner wrote:Lendo o blog do Sergio Taborda me deparei com uma frase:
A tecnologia subjacente pode interceptar chamadas a eles [os Serviços] e injetar capacidades de transação, controle de concorrência, segurança, logging, invocação remota, acoplamento com tencologias e protocolos especificos como CORBA ou SOAP - o que for necessário. O dominio é livre. Não depende de tecnologias, não depende de API, é portável e independente. Não está amarrado a nada nem a ninguém. Não mais DAOs para comunicar com o Banco de Dados. O rei vai nu.
Considerando que o domínio não depende de ninguém, que trabalha somente com suas classes e nada mais, porém que ainda temos que lidar com os dados que vem de alguma forma do usuário e geralmente persisti-los em algum lugar, e ao mesmo tempo deixar isso imperceptível para quem trabalha com as classes do domínio, pergunto:
Era possível fazer isso até, digamos, 5 anos atrás? É possível fazer DDD puro com tecnologia antiga? É possível fazê-lo sem injeções de dependências?
Bom, já que fui citado... so quero esclarecer que nem o artigo nem o problema em foco é DDD. DDD é uma filosofia particular que assenta em Orientação a Objetos e no conceito de Dominio, mas que que lhe acrescenta outras coisas e visa simplificar a comunicação entre tem que desenvolver e quem tem o conhecimento das regras. "Fazer DDD" não faz sentido. Como toda a filosofia ou se segue, ou não. Seguir DDD só é possivel depois que o DDD foi definido, é como torcer para um clube. Só pode torcer depois que o clube existe.
Orientação a Objetos e Dominio são concietos antigos, logo sim seria possivel à 5 anos.
Tlv não acredite quando lhe disse isto, mas EJB é uma tecnologia orientada a dominio e tem mais de 5 anos.
O ponto não é se é possivel, mas se seria possivel com a mesma simplicidade que é hoje. O proprio EJB mostra que a simplicidade foi ganha com o tempo, mas isso poderiamos atribuir a um exagero no design original do EJB.
Acho que os avanços na metalinguagem do java e outras linguagens OO foram os que reais motivadores para a volta ao paradigma de pensar primeiro no dominio e depois no resto. È que o domino não são classes, as classes são as representações do dominio. O dominio é abstrato. Os metadados das classes são mais proximo do nivel de abstração do dominio e por isso, quanto a mim, que quanto mais a metalinguagem (reflection, annotations, etc...) evolui mais facil é construir um modelo e implementação do dominio.
Esse resto da aplicação é normalmente muito igual - cheia de requisitos não-funcioanis - e até por isso existem um bando de frameworks para auxiliar e aumentar a produtividade e o dominio pode brilhar de novo.
Enfim. OO e boa OO sempre foi possivel.
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/11/2008 08:44:02
|
Marcio Duran
GUJ Master
![[Avatar]](/images/avatar/df0e19d29493ef2136fc3e2fc029c054.jpg)
Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline
|
sergiotaborda wrote: (.............)..............................
Acho que os avanços na metalinguagem do java e outras linguagens OO foram os que reais motivadores para a volta ao paradigma de pensar primeiro no dominio e depois no resto. È que o domino não são classes, as classes são as representações do dominio. O dominio é abstrato. Os ...........
"Java incorporou novas features, metalinguagem é um proposito de aspecto e quebra o paradigma da Orientação a Objetos, indo para uma POA"
A programação orientada a aspectos tem como objetivo a separação do código segundo a sua importância para a aplicação, permitindo que o programador encapsule o código secundário em módulos separados do restante da aplicação.
This message was edited 3 times. Last update was at 03/11/2008 08:53:34
|
Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven |
|
|
 |
|
|
|
|