Naked objects!?

Oi pessoal, o que vcs entendem por naked objects? Dei uma olhada no site deles mas não entendi muito a idéia e com o demo deles tb não achei nada muito legal (pura ignorância mesmo):P. Bem, pelo que entendi me parece uma maneira de manipular os objetos diretamente, acho que o nome deve ter alguma coisa com isso :P.

Valeu pessoal!

http://www.nakedobjects.org/

O Naked Objects ja foi mencionado algumas vezes aqui no GUJ (prova A, prova B), mas a gente nunca teve uma discussao mais aprofundada sobre ele. Legal vc ter levantado essa bola, Richardson! :smiley:

Alias, ja que eh pra apontar os links, eu ja falei do NO algumas vezes no meu blog, e ja tentei ateh reinventar o treco:

http://www.jroller.com/page/cv/20040201#naked_objects_and_plastic_surgery
http://www.jroller.com/page/cv/20040202#more_on_the_naked_objects
http://www.jroller.com/page/cv/20040211#naked_eclipse_objects

A melhor critica que eu ja vi quanto a implementacao atual do NO foi essa aqui, do Max Andersen (do Hibernate):

http://blog.hibernate.org/cgi-bin/blosxom.cgi/2004/02/12#notsonakedobjects

Lembrando tambem que tem uma serie de artigos na TheServerSide sobre ele:

E, por ultimo, um artigo na java.net:

http://today.java.net/pub/a/today/2003/07/15/nakedaddress.html

O Naked Objects eh um framework para desenvolvimento de aplicacoes que parte do seguinte principio: voce cria as classes de negocio (o modelo da aplicacao), que em tese, sao a essencia do sistema, e o resto (view, persistencia, etc) eh gerenciado automaticamente pelo framework.

Alem disso em termos de usabilidade ele traz um conceito interessante: o usuario manipula diretamente os objetos. Entao se seu sistema tem, digamos, uma entidade Cliente, ao inves de ter telas de pesquisa, cadastro, atualizacao, etc, de clientes, voce tem um icone Cliente e o usuario clica nesse icone e pede “Novo” ou “Listar” (exemplos de acoes, isso eh fornecido automaticamente pelo NO e pode ser configurado). Se ele clicar em “Novo” aparece o formulario para entrada de dados (gerado pelo NO com base na sua classe de negocios). Preenchendo e confirmando, o NO faz a persistencia (e consequentemente o cara vai aparecer no “Listar” na proxima vez que o usuario solicitar a listagem). Se eh bom ou ruim em termos de interface? Nao sei - mas eh diferente. :smiley:

Achei a principio a ideia bem legal, mas a primeira limitacao que vi foi justamente a questao da interface. Pelas imagens que vi achei o visual gerado pelo NO meio “tosco”. Mas eu li que isso pode ser melhorado e aperfeicoado, etc (penso que seja num esquema de plugins ou look 'n feel).

Os links que o cv postou com certeza trazem todas as informacoes necessarias para se conhecer o negocio. O artigo do TheServerSide eh interessante e la rolaram algumas discussoes legais sobre isso (como usar NO num ambiente stateless como a Web, p.ex? :D).

Tambem vi alguma coisa (ou foi impressao minha?) associando Eclipse RCP e NO no blog do cv… mas nao fui a fundo para descobrir o que era… (gancho, gancho…) :wink:

Marcio Kuchma

Pois é. Gostei bastante do log do Max Andersen sobre o Naked Objects. E todos aqueles 3 pontos (A, B e C) que ele delineou (delineou?! :shock: ) no seu texto foram os 3 pontos (A, todo objeto de sistema deve implementar um certo comportamento; B, você precisa usar “wrapper classes das wrapper classes” para criar os atributos da sua classe; C, você não pode usar nenhum java.util.Collection) que me confundiram bastante quando eu comecei a brincar com o NO e, exceto a primeira questão, todo o resto eu considero preciosismos desnecessários. Se a intenção era criar “heurísticas” para a montagem da GUI, era mais fácil conversar com o povo do Hibernate e pedir para ajudá-los a montar um mecanismo de reflexão decente. Mas o legal com os NO é que dificilmente você vai conseguir implementar um Amenic Domain Model ( http://www.guj.com.br/forum/viewtopic.php?p=58563#58563 ):