OVH Cloud OVH Cloud

[Info] Tutorial Java annotation

9 réponses
Avatar
tibocu
Si vous voulez apprendre ce que sont les nouvelles annotation Java
dans le JDK 1.5.0, je viens d'ajouter un tutorial (gratuit).
http://www.btcweb.com
Cliquez sur l'onglet "Technique".

Thibault

9 réponses

Avatar
Black Myst
Tibo wrote:
Si vous voulez apprendre ce que sont les nouvelles annotation Java
dans le JDK 1.5.0, je viens d'ajouter un tutorial (gratuit).
http://www.btcweb.com
Cliquez sur l'onglet "Technique".

Thibault


Quelques détails sur le document.
- Page 1
* J'ai pas compris "@SuppressWarnings(value={"unchecked"})". A quoi
ca sert de rajouter des warnig ? A quoi correspond ce 'unchecked' ? Bref
une ligne d'explication supplémentaire serait bien venu.
* En bas de page, j'ai cliqué 5 fois sur la fleche pour changé de
page... mais ce n'est pas un lien :-/

- Page 3
* faute de frape "comme une class eou une interface Java" (2x)
* faute de frape "le mebre d'une annotation peut ..."


D'une manière plus général :
Je vois en quoi ca apporte des avantages, mais je vois pas en quoi c'est
super génial, ni en quoi ca va me changé la vie.

- @Override c'est vraiment cool, se protégé contre les erreurs bete est
vraiment bien, mais une solution telque l'ancien deprecated aurrait pu
suffir.

- l'exemple sur les todo est interressant également, mais je ne vois pas
l'utilité d'ajouter du code java pour gérer ça dans mon application
(Est-ce que je livre les classes de gestions des todos aux clients ?)
Je préfère de loin me reposé sur eclipse (qui signale dans une vue
spécial tous les TODO qu'il trouve dans les commentaires... En temps
réel, sans classe supplémentaire.

- l'exemple sur la gestion de la sécurité, je vois pas trop l'interret
par rapport à un appel qui aurrait passé directement la liste des
autorisés dans l'appel de control :
cerbere.verifier( new String[] {"toto", "gege"}, true );
// le true, c'est le parametre d'audit...
C'est peut-etre un peu moins lisible, mais netement moins verbeux

- toutes les annotations qui s'attache à une classe pourrait être une
interface *classique*. Là au moins les annotations sont moins verbeuse.



Bref, je dis pas que c'est pas bien... mais pour le moment je n'arrive
pas à voir en quoi les annotations vont révolutionner ma façon de
travailler.



PS : Et quoi qu''il en soit, il faut que j'attende la version 3.1
d'Eclipse pour en profiter ;-)

Avatar
cilovie
Ruse un peu grossière pour faire de la pub pour la boîte :-(((

"Tibo" a écrit dans le message de news:

Si vous voulez apprendre ce que sont les nouvelles annotation Java
dans le JDK 1.5.0, je viens d'ajouter un tutorial (gratuit).
http://www.btcweb.com
Cliquez sur l'onglet "Technique".

Thibault


Avatar
Black Myst
cilovie wrote:
Ruse un peu grossière pour faire de la pub pour la boîte :-(((


Visiblement, cette personne est un indépendant (il est tout seul dans sa
société) et je pense pas qu'un indépendant cherche du boullot en passant
par fclj !

Le tuto est accessible gratuitement (d'ailleur, il manque une licence
visible sur les droits d'exploitation du document... une FDL par exemple
:-))

Mais peut-etre que toi aussi tu as écrit de super document sur le
developpement java et peut-être que tu n'ose pas nous en faire profité
car ils ne sont hébergé que sur le site ta société ?

Bonne lecture
Black Myst

Avatar
vincent.brabant AT skynet.be
Tibo wrote:

Si vous voulez apprendre ce que sont les nouvelles annotation Java
dans le JDK 1.5.0, je viens d'ajouter un tutorial (gratuit).
http://www.btcweb.com
Cliquez sur l'onglet "Technique".

Thibault



Quelques détails sur le document.
- Page 1
* J'ai pas compris "@SuppressWarnings(value={"unchecked"})". A quoi
ca sert de rajouter des warnig ? A quoi correspond ce 'unchecked' ? Bref
une ligne d'explication supplémentaire serait bien venu.
* En bas de page, j'ai cliqué 5 fois sur la fleche pour changé de
page... mais ce n'est pas un lien :-/

- Page 3
* faute de frape "comme une class eou une interface Java" (2x)
* faute de frape "le mebre d'une annotation peut ..."


D'une manière plus général :
Je vois en quoi ca apporte des avantages, mais je vois pas en quoi c'est
super génial, ni en quoi ca va me changé la vie.

- @Override c'est vraiment cool, se protégé contre les erreurs bete est
vraiment bien, mais une solution telque l'ancien deprecated aurrait pu
suffir.

- l'exemple sur les todo est interressant également, mais je ne vois pas
l'utilité d'ajouter du code java pour gérer ça dans mon application
(Est-ce que je livre les classes de gestions des todos aux clients ?)
Je préfère de loin me reposé sur eclipse (qui signale dans une vue
spécial tous les TODO qu'il trouve dans les commentaires... En temps
réel, sans classe supplémentaire.
C'est justement là qu'il y avait un problème.

En effet, pour retrouver les commentaires TODO dans le code, aucune API
standard n'existait. Chaque EDI l'implémentait à sa façon. Maintenant,
avec les annotations, tout cela est bien standardisé, tu as un API pour
les retrouver. Tous les EDI vont pouvoir utiliser l'API des annotations
pour retrouver les annotations TODO plutôt que d'utliser leur propre
implémentation pour le faire.


- l'exemple sur la gestion de la sécurité, je vois pas trop l'interret
par rapport à un appel qui aurrait passé directement la liste des
autorisés dans l'appel de control :
cerbere.verifier( new String[] {"toto", "gege"}, true );
// le true, c'est le parametre d'audit...
C'est peut-etre un peu moins lisible, mais netement moins verbeux

- toutes les annotations qui s'attache à une classe pourrait être une
interface *classique*. Là au moins les annotations sont moins verbeuse.



Bref, je dis pas que c'est pas bien... mais pour le moment je n'arrive
pas à voir en quoi les annotations vont révolutionner ma façon de
travailler.
Si tu as déjà entendu parlé de XDoclet, tu comprendras aisément

l'utilité des annotations.
Actuellement, avec XDoclet, que se passe-t-il si tu as mal ortographié
un de leur TAG. Et bien il ne se passe rien du tout. Pas d'erreur à la
compilation. Rien. Mais XDoclet n'aura pas fait le boulot que tu aurais
voulu qu'il fasse. Tu peux toujours chercher et te relire avant de
comprendre pourquoi.
Avec les annotations, tu pourras avoir un message d'erreur de
compilation. Et ça, c'est un plus.




PS : Et quoi qu''il en soit, il faut que j'attende la version 3.1
d'Eclipse pour en profiter ;-)




--
Vincent Brabant
----------------
http://fr.netbeans.org/


Avatar
Black Myst
- l'exemple sur les todo est interressant également, mais je ne vois
pas l'utilité d'ajouter du code java pour gérer ça dans mon
application (Est-ce que je livre les classes de gestions des todos aux
clients ?)
Je préfère de loin me reposé sur eclipse (qui signale dans une vue
spécial tous les TODO qu'il trouve dans les commentaires... En temps
réel, sans classe supplémentaire.


C'est justement là qu'il y avait un problème.
En effet, pour retrouver les commentaires TODO dans le code, aucune API
standard n'existait. Chaque EDI l'implémentait à sa façon. Maintenant,
avec les annotations, tout cela est bien standardisé, tu as un API pour
les retrouver. Tous les EDI vont pouvoir utiliser l'API des annotations
pour retrouver les annotations TODO plutôt que d'utliser leur propre
implémentation pour le faire.
Est-ce que l'API standrad défini le tag TODO ? sinon on en revient au

même problème, chaque IDE va définir sont propre tag TODO, et ca ne sera
pas plus inter-opérable !

Bref, je dis pas que c'est pas bien... mais pour le moment je n'arrive
pas à voir en quoi les annotations vont révolutionner ma façon de
travailler.


Si tu as déjà entendu parlé de XDoclet, tu comprendras aisément
l'utilité des annotations.
Actuellement, avec XDoclet, que se passe-t-il si tu as mal ortographié
un de leur TAG. Et bien il ne se passe rien du tout. Pas d'erreur à la
compilation. Rien. Mais XDoclet n'aura pas fait le boulot que tu aurais
voulu qu'il fasse. Tu peux toujours chercher et te relire avant de
comprendre pourquoi.
Avec les annotations, tu pourras avoir un message d'erreur de
compilation. Et ça, c'est un plus.
C'est effectivement un point auquel je n'avais pas pensé. (Je connais

XDoclet, mais je ne l'ai jamais utilisé)


Avatar
tiboweb
Merci Black_point_Myst_chez_free_point_fr pour les remarques, j'ai
corrigé.
D'une manière plus général :
Je vois en quoi ca apporte des avantages, mais je vois pas en quoi c'est
super génial, ni en quoi ca va me changé la vie.


Les annotations ne vont pas changer votre vie, mais permettent
d'améliorer le stockage de métadonnées dans le code par rapport à
javadoc.
Pour le développement J2EE, plus de descripteur de décploiement, un
seul point de maintenance: lorsque le code d'un EJB (par exemple)
change, pas besoin d'aller modifier le descripteur de déploiement XML,
celui-ci étant généré à partir des annotations.

De même, sur projet, une partie des sources peut être généré.

Les annotations ne sont pas une révolution pour le développement de
code, mais cela permettra une simplification notable du codage
lorsqu'ils seront intégrés dans les IDE Java.

- @Override c'est vraiment cool, se protégé contre les erreurs bete est
vraiment bien, mais une solution telque l'ancien deprecated aurrait pu
suffir.
l'ancien deprecated (tag javadoc) n'a pas la même utilité, je ne vous

suis pas...

- l'exemple sur les todo est interressant également, mais je ne vois pas
l'utilité d'ajouter du code java pour gérer ça dans mon application
(Est-ce que je livre les classes de gestions des todos aux clients ?)
Je préfère de loin me reposé sur eclipse (qui signale dans une vue
spécial tous les TODO qu'il trouve dans les commentaires... En temps
réel, sans classe supplémentaire.


Attention, ce n'est qu'un simple exemple, pour illustrer ce que l'ont
peut faire avec les annotations. Entierement d'accord avec vous sur
votre remarque.

- l'exemple sur la gestion de la sécurité, je vois pas trop l'interret
par rapport à un appel qui aurrait passé directement la liste des
autorisés dans l'appel de control :
cerbere.verifier( new String[] {"toto", "gege"}, true );
// le true, c'est le parametre d'audit...
C'est peut-etre un peu moins lisible, mais netement moins verbeux
OK, mais ce n'est qu'un exemple, pas une solution complète.


Ce qui est interressant dans cet exemple, c'est d'utiliser les
annotations avec un AOP (Aspect Oriented Programming). Par exemple,
avec la derniere version de JBoss-AOP, il est possible de dire
qu'avant de déclencher les méthodes possédant l'annotation
@CerbèreInfo, il faut appeler la méthode Cerbère.vérifier(...).


- toutes les annotations qui s'attache à une classe pourrait être une
interface *classique*. Là au moins les annotations sont moins verbeuse.
Non, les interfaces Java sont trés différentes des annotations du JDK

1.5.

Bref, je dis pas que c'est pas bien... mais pour le moment je n'arrive
pas à voir en quoi les annotations vont révolutionner ma façon de
travailler.
Tout dépend, si vous développez sous J2EE, les annotation vont

apporter une simplification.

En fait les annotations Java comblent un manque par rapport à C#. Les
annotations dans c# amènent une simplification considérable du
développement avec les outils microsoft.

PS : Et quoi qu''il en soit, il faut que j'attende la version 3.1
d'Eclipse pour en profiter ;-)
Oui !


Merci pour votre réponse.

Avatar
tiboweb
Si tu as déjà entendu parlé de XDoclet, tu comprendras aisément
l'utilité des annotations.
Actuellement, avec XDoclet, que se passe-t-il si tu as mal ortographié
un de leur TAG. Et bien il ne se passe rien du tout. Pas d'erreur à la
compilation. Rien. Mais XDoclet n'aura pas fait le boulot que tu aurais
voulu qu'il fasse. Tu peux toujours chercher et te relire avant de
comprendre pourquoi.
Avec les annotations, tu pourras avoir un message d'erreur de
compilation. Et ça, c'est un plus.


Vincent,

Oui, les annotations vont permettre d'unifier les multiples solutions
techniques existants dans les API Java pour stocker des méta-données:
javadoc, XDoclet, BeanInfo etc....

Les annotations prendront toutes leur utilité lorsqu'elles seront
intégrées dans les outils Java.

Il reste qu'il n'existe actuellement aucun standard pour la définition
des métas-données. Par exemple, que les annotations TODO puissent être
reconnues dans n'importe quel outil Java.

Sans doute l'étape suivante dans une prochaine version du JDK...

Avatar
tiboweb
Ruse un peu grossière pour faire de la pub pour la boîte :-(((
Ce n'est pas une ruse, au contraire.

Je mets gratuitement en ligne un premier tutorial (d'autres suivront),
en y accédant ca fait des hits sur ma page.
Vous y gagnez, moi aussi.
Good deal.

Avatar
tiboweb
Visiblement, cette personne est un indépendant (il est tout seul dans sa
société) et je pense pas qu'un indépendant cherche du boullot en passant
par fclj !
Ce n'est pas le but en effet. Lorsque je regarde une nouvelle techno,

je rédige un tutorial, puis je le mets en ligne.


Le tuto est accessible gratuitement (d'ailleur, il manque une licence
visible sur les droits d'exploitation du document... une FDL par exemple
:-))
Je vais l'ajouter.