Mirror 1.3

É com muito orgulho que a equipe de desenvolvimento do Mirror anuncia o lançamento da versão 1.3 do projeto.

A principal mudança que o projeto teve foi a adição de ReflectionProviders, um conjunto de interfaces que permite que o usuário utilize seu próprio código para fazer reflection.

Além disso, a documentação foi traduzida para português (estará no site em pouco tempo), foi adicionado javadoc à maioria das classes e métodos públicos e alguns bugs foram arrumados (como não rodar com java 5).

Site oficial do projeto:
http://projetos.vidageek.net/mirror/mirror/

Documentação em português:

http://projetos.vidageek.net/mirror-pt/mirror/

Projeto interessante.

Parabéns.

Espero ter revisto também os exemplos disponibilizados no site do projeto, pois a maioria não refletia o que pretendia fazer e/ou não funcionava com os métodos apresentados.
Mas de qualquer forma parabéns pelo projeto.
Abraços!!

Olá,

Andei dando um olhada, mas bem, você tem certeza que esse código é extremamente… legível?

Mirror.on(target).set().field(fieldName).withValue(value);

Imagina que voce tem 100 linhas iguais a essa. É extremamente visível?

No mais parece um projeto interessante.

Grato.

[quote=AUser]Olá,

Andei dando um olhada, mas bem, você tem certeza que esse código é extremamente… legível?

Mirror.on(target).set().field(fieldName).withValue(value);

Imagina que voce tem 100 linhas iguais a essa. É extremamente visível?

No mais parece um projeto interessante.

Grato.[/quote]

…tente ler 100 linhas do código anterior a esse exemplo que você mencionou (eu disse 100 linhas ou seja 10 vez o bloco de código), e depois tente ler as mesmas 100 linhas que você comentou.

O projeto Mirror se propõe a ser uma DSL para facilitar o uso de Reflection.
Se você analisar, com o uso do Mirror você consegue “LER” o que aquela ação se propõe a fazer.
Essa é a idéia…

Abs’[]

[quote=AUser]Olá,

Andei dando um olhada, mas bem, você tem certeza que esse código é extremamente… legível?

Mirror.on(target).set().field(fieldName).withValue(value);
[/quote]

Fica melhor se reescrito assim

Mirror .on(target) .set() .field(fieldName) .withValue(value);

E, com certeza, muito, mas muito mais legível que isto:

try { Class<?> clazz = target.getClass(); Field field = clazz.getDeclaredField(fieldName); field.setAcessible(true); field.set(target, value); } catch (....)

Com 100 linhas destas em uma mesma classe, legibilidade é o menor dos problemas. :twisted: