2011-04-12 4 views
11

Pour les projets fortement utilisés pour les annotations Java, y a-t-il une suggestion dans l'ordre d'annotation? Afin d'uniformiser le style de code dans l'équipe.Ordre d'annotation Java suggéré?

+1

alphabétique ou dans l'ordre inverse hex =) – somid3

Répondre

6

Je vais dire qu'il n'y en a pas. Je pourrais avoir tort à ce sujet.

Mon raisonnement est qu'il ya des centaines de projets qui ont des annotations, en plus de celles cuites au four en Java, et ceux cuits dans nos environnements de développement (Eclipse en particulier, mais je suis sûr que d'autres ne les ai aussi.)

Donc, avec toutes ces bibliothèques potentiellement compétitives pour "dont en haut" je doute qu'ils seraient d'accord sur une norme.

J'encourage votre équipe à s'asseoir et à prendre des décisions sur ce qui vous convient le mieux.

Facteurs je considère:

  1. qui annotatiosn sont les plus importants? Ils devraient être près du sommet.
  2. Quelles sont les annotations les plus susceptibles d'indiquer des bogues potentiels? Ils devraient être près du sommet.
  3. Quelles sont les annotations susceptibles d'être appliquées à chaque méthode de la classe? Ils devraient être près du fond.
+1

Un bon conseil. Je suis vraiment implicite en suivant ces 3 règles déjà. –

+0

Personnellement, j'ajouterais '0. Le qualificateur d'annotation vient en premier avant l'annotation qualifiée. 'So @Lazy serait avant @Service. Êtes-vous d'accord? –

+4

Je n'aime pas mettre un qualificatif avant l'annotation qualifiée. En lisant "Lazy" c'est un paresseux quoi? Le service me dit que je travaille avec un service, et paresseux rend alors le service plus spécifique. Oui, l'anglais utilise des adjectifs avant les noms, mais la programmation orientée objet (Java) place les objets avant les méthodes et les champs. Quelque chose "sous" l'annotation (un qualificateur à une annotation) peut être vu comme un élément "sous" l'annotation, pas avant. Comme je l'ai dit dans ma réponse, obtenir un accord d'équipe. –

3

Si vous devez imposer une commande, par ordre alphabétique? Sans une certaine connaissance des annotations que vous utilisez, il est difficile de suggérer un ordre rationnel. Peut-être qu'un meilleur classement conviendrait mieux à vous et à votre équipe; et si c'est le cas, si vous documentez quel est l'ordre convenu, la seule chose qui reste à faire est de vérifier qu'il suit l'ordre convenu par l'équipe.

Après avoir parlé à toute votre équipe, vous pourriez ne pas avoir besoin de les commander après tout.

1

Bonne question. Ce n'est pas une science exacte mais personnellement j'essaye d'arranger des annotations d'une "portée large" en haut à une "portée étroite" en bas. Voici un exemple:

@RadioDomain 
@Entity 
@Table(name = "receiver") 
@ReceiverConstraintCheck 
@SuppressWarnings("PMD.ShortVariable") 
public class Receiver { 
    // ... 
}