Mensagens enviadas por: RafaelRio
Índice dos Fóruns » Perfil de RafaelRio » Mensagens enviadas por RafaelRio
Autor Mensagem
sergiotaborda wrote:Parabéns. Desculpe não ter continuado o dialogo , mas estou meio sem tempo.

Tranqüilo, Taborda! Mesmo porque ainda não está tudo resolvido (diria que 50%) apesar das minhas vibrações. O cliente que usa a factory está ok. No entanto, ainda estou com problemas em mapear o manager da anotação para a fábrica e instanciar o manager correto via reflection (isso eu ainda não sei se tem jeito) . Também tenho que arranjar outra forma de declarar e inicializar o cache.

sergiotaborda wrote:Vc reparou que usa um Long como tipo generico fixo (ou seja, é sempre um long e não extends Long) ? Isso significa que na realidade isso é um tipo estático
Se as suas chaves são sempre Long não precisa definir o tipo como generico.

Tava achando estranho você não ter comentado ainda sobre isso. Eu taquei Long aí pra simplificar, mas vou ter que definir qual o tipo da chave primária também.

A verdade é que eu ainda não decidi exatamente o que fazer com a chave primária. Se eu seguir sua sugestão, todas as entidades terão que ter ID tipo Long; se eu precisar definir o tipo como argumento na factory, terei que expor os clientes a esse tipo de detalhe...

Mas isso é o de menos agora, não estou preocupado. A prioridade é fazer a coisa funcionar direito (eliminar todos os warnings), e, conforme eu for progredindo, eu escrevo aqui. É claro que estou interessado em sugestões!
Aehh!! Não é que tem jeito?!

Pra fazer funcionar declarei

e incializei com a factory invocando o método com o argumento de tipo


A idéia é pedir "me dê um gerenciador para tal entidade", assim o cliente não precisa saber quem é a implementação do manager para tal entidade. Esses detalhes ficam com a factory. Ao mesmo tempo, usar classes genéricas, seguir o mantra open for extension, closed for modification e utilizar reflection na factory para evitar montes de if/elses.
Estou esperando! Você não tem um blog ou algum meio de publicar um artigo sobre tratamento de exceções com AOP?

Meu maior interesse é trazer essa técnica para desktop (Swing), tratar exceções num único lugar. A forma como eu tenho resolvido isso parece funcionar, mas soa como gambiarra. Creio que AOP seja a resposta.
agodinhost wrote:quote]Cara, não estou sendo sarcástico, baixe os punhos. Só disse que eu nunca ouvi falar - mesmo, não sou dono da verdade ok?

Beleza, tranqüilo! Não era pra soar agressivo.
A intenção foi indicar minhas fontes, assim a gente não fica só no bla, bla, bla.
agodinhost wrote:
RafaelRio wrote:Pelo espanto você deve desconhecer que a Irlanda é uma tremenda exportadora de softwares. Não tenho nem idéia do porquê você colocou vários pontos de interrogação em União Européia.
Nunca ouvi mesmo, sry.

Não entendi porque "sry"... No site da Softex e outras associações do gênero você pode encontrar vários estudos interessantes sobre esse assunto, inclusive um cujo tema é justamente China x Brasil x Índia (meio idoso - 2004).
agodinhost wrote:
RafaelRio wrote:... fornecedoras de ERP e afins, como Microsiga, Politec, com SAP, Oracle, etc.
Microsiga é 100% brasileira (pelo menos era, pode ter mudado). Politec nunca ouvi falar, a Oracle não é americana não? sei que o oráculo é grego, serve?

Pois é, foi justamente o que eu disse. Brasil (com Microssiga e Politec, no exemplo) concorrendo com União Européia (SAP), Oracle (States). Que parte não ficou clara?
WilliamSilva wrote:
A Politec fornece softwares de última geração para a marinha dos Estados Unidos. Isso tudo mostra que nós competimos com todo mundo, inclusive com os States e até com Israel, justamente onde eles são fortes e reconhecidos (softwares para fins bélicos). Num mundo globalizado, qual a novidade?
Mais a competência de algumas empresas como Politec , CESAR, e outras poucas com CMM, não refletem a nossa realidade pois a "competência " é deles não podemos nos aproveitar disso.

Se você parar pra pensar vai ver que o que disse não tem sentido. Que tal uma Microsiga, Politec [seu exemplo preferido aqui...] na Etiópia, Bolívia, Peru, México [seu país subdesenvolvido ou emergente "preferido" aqui...]?

Uma empresa não nasce, e muito menos cresce, isolado de seu ambiente. É preciso ter estrutura e pessoas capacitadas para isso. O CESAR não fica no Porto Digital em Recife? Esse Porto Digital existe justamente pra isso, concentrar empresas, faculdades, mão-de-obra e o que for necessário para aproveitar a sinergia dessa concentração de força. Absurdo pensar em "eles" vs. "nós".

Depois, eu só dei exemplos meio óbvios (exceto o SIVAM). Brasil e softwares é muito mais do que Politec e Microsiga.
WilliamSilva wrote:Nunca vamos nos igualar realmente a China ou a India pois...

Arrrrghhh! Sai fora!! Quem quer ser igual Índia ou China?
cleriston wrote:...dia o Chineses vão "acordar" e não aceitar mais as más condições de trabalho (baixos salários e etc).

Claro, quando todos os 500.000.000 de chineses desempregados conseguirem seu lugar ao Sol. Até lá... Vão ficar na espera mesmo?
Não tem como comparar a Indústria de softwares com textil, calçadista. Tem muita diferença.
agodinhost wrote:
RafaelRio wrote:Na verdade, nós competimos com Índia, China, Irlanda, México, União Européia, States...


Faltou Argentina, infelizmente!!!

Irlanda???
União européia???

Exato! Pelo espanto você deve desconhecer que a Irlanda é uma tremenda exportadora de softwares. Não tenho nem idéia do porquê você colocou vários pontos de interrogação em União Européia.

Um exemplo que me vem logo de cara, é a competição de empresas brasileiras fornecedoras de ERP e afins, como Microsiga, Politec, com SAP, Oracle, etc.

A Politec fornece softwares de última geração para a marinha dos Estados Unidos. Isso tudo mostra que nós competimos com todo mundo, inclusive com os States e até com Israel, justamente onde eles são fortes e reconhecidos (softwares para fins bélicos). Num mundo globalizado, qual a novidade?

O Brasil é muito forte em certas áreas (financeira, telecomunicações, empresarial, energética) e pioneiro em outras (E-Gov). O software que controla o SIVAM foi desenvolvido aqui.

Agora nunca ouvi falar de uma empresa Argentina de peso, muito menos de uma indústria Argentina de softwares capaz de fazer frente a alguém.
RafaelRio wrote:Porém,
compilador wrote:found : java.lang.Class<capture#886 of ? extends iboi.domain.service.manager.Manager><? extends iboi.domain.Entity,java.lang.Long>>
required: java.lang.Class<iboi.domain.service.manager.Manager><E,java.lang.Long>>
domainManagerClassAnnotation.value();

O compilador está embaçando com o <E extends Entity> na assinatura de getManager, dizendo que é diferente do <? extends Entity> de value em ManagerClass.

Pra mim era óbvio que as duas coisas são o mesmo, mas o mundo (e a JDK) não são cheios de surpresas?

Agora ficou mais claro o porquê disso. O parâmetro de tipo em <E extends Entity> de getManager pode ser diferente do parâmetro de tipo em <? extends Entity> de ManagerClass. Isso estava na minha cara! O compilador não tem como verificar duas coisas diferentes que vão ser definidas em tempo de execução.

O erro eu solucionei com Class<? extends Manager> domainManagerClass.... Ou seja, de volta a estaca zero.

Será que tem jeito?
Na verdade, nós competimos com Índia, China, Irlanda, México, União Européia, States...

Terceirização existe em qualquer área, e depende da estratégia de uma empresa optar por ela ou não.

Falar em terceirização necessariamente implica em serviços não essenciais à missão de uma empresa, geralmente de baixo valor, como limpeza ou o que for.

Portanto, se estiver com medo de perder emprego pra "um terceiro", seja na China, Índia ou aqui mesmo no Brasil, rala muito, até chegar ao ponto de não ser fácil substituir suas competências por um trabalhador razoável. Assim você garante o seu emprego e o seu $$$.
Boa sugestão!

Fiz as mudanças sugeridas, mas ainda não funcionou. Ao invés de warnings, estou com erro agora.

value em ManagerClass ficou um pouco diferente do que você propos para poder funcionar.


Class<Manager><? extends Entity, Long>> faz mais sentido do que Class<? extends Manager> , que era como estava antes.



De novo, Class<Manager><E, Long>> domainManagerClass... está mais exato do que antes, Class<? extends Manager> domainManagerClass...

Porém,
compilador wrote:found : java.lang.Class<capture#886 of ? extends iboi.domain.service.manager.Manager><? extends iboi.domain.Entity,java.lang.Long>>
required: java.lang.Class<iboi.domain.service.manager.Manager><E,java.lang.Long>>
domainManagerClassAnnotation.value();

O compilador está embaçando com o <E extends Entity> na assinatura de getManager, dizendo que é diferente do <? extends Entity> de value em ManagerClass.

Pra mim era óbvio que as duas coisas são o mesmo, mas o mundo (e a JDK) não são cheios de surpresas?
sergiotaborda wrote:Class <? extends Entity> não serve. Experimenta


Não podes usar '?'. O que tu queres é vincular todos os tipos Manager à entidade que passas com o argumento e que é referenciada por E.


Isso não vai dar certo, Taborda. domainManagerClass é uma instância de Class, não de Manager.



Eu uso a anotação ManagerClass na entidade pare definir qual o seu Manager. <EDITADO> Isto é, qual a sua classe Manager, e não uma instância dessa classe. A instância eu quero obter pela factory. </EDITADO>

<EDITADO value="de novo">Onde você viu Class <? extends Entity> ??</EDITADO>
ramilani12 wrote:Bom acho que vale apena , AOP é tese da minha monografia da Pos-Graduacao:
Meu estudo de caso transformei um sistema em O.O para AOP técnicas que ficaram elegantemente reutilizáveis:

Tecnicas de Tracing e Loging
Tecnicas de Captura de Excecoes
Tecnicas em atualizar uma GUI

Captura de exceções através de AOP, taí uma coisa que me interessa bastante. Sua monografia vai estar publicada na Internet?
Eu apostaria em Swing.
sergiotaborda wrote:Tb tens que declarar <E> em todos os Manager dentro do método como em


Eu fiz isso, Taborda.

A pedido, segue o código inteiro (mas creio que as outras partes não são muito relevantes).

Quando instancio um Manager via reflection, eu ainda obtenho um Manager sem parâmetro de tipo:
found : capture#7 of ? extends iboi.domain.service.manager.Manager
required: iboi.domain.service.manager.Manager<E,java.lang.Long>
domainManager = domainManagerClass.newInstance();


Como visto, domainManagerClass é apenas uma instância de Class<? extends Manager>.

Alguma idéia?
 
Índice dos Fóruns » Perfil de RafaelRio » Mensagens enviadas por RafaelRio
Ir para:   
Powered by JForum 2.1.8 © JForum Team