IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[Conventions]Méthodes et paramètres


Sujet :

Langage Java

  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut [Conventions]Méthodes et paramètres
    Bonjour,

    Je suis en train de me poser une question sur les conventions de codage. J'ai déja regardé dans le tutoriel sur developpez.com et rien n'en parle.

    Ma question est la suivante, quand on appelle une méthode avec plusieurs paramètres (dison x(a,b,c,d,e) ), comme organise t'on les paramètres, faut-il les mettre sur plusieurs lignes ou alors on les mets seulement sur plusieurs lignes si on a pas la place en largeur pour tous les mettre les uns à cotés des autres.

    Donc faut-il écrire :

    Ou alors plutôt écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    z = x(
      a,
      b,
      c,
      d,
      e);
    Ou encore le premier paramètre sur la première ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    z = x(a,
      b,
      c,
      d,
      e);
    Et pareil pour la déclaration de la méthode en question, faut il les écrire tous sur une ligne ou un par ligne ?

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Type x(Type a, Type b, Type c, Type d, Type e){
     
    }
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public Type x(
       Type a, 
       Type b, 
       Type c, 
       Type d, 
       Type e){
     
    }


    P.S. S'il n'y a pas de conventions sur ce sujet, qu'est ce que vous vous employez comme façon de faire ?

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Je ne sais pas s'il y a une convention sur le sujet, mais perso cela dépend du nombre de paramètres ou de leur type.
    J'essaye de choisir la disposition que me paraît la plus clair (la moins bord****** ) au premier coup d'oeil.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void method(int a, int b) {
        // ...
    }
     
    public void method( int i1, String s1, 
                        int i2, String s2,
                        int i3, String s3) {
         // ...
     }
    Pour résumer je fait plutôt du cas par cas.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Idem, je ne suis pas expert mais je ne crois pas qu'il existe une convention la dessus.
    Personnellement j'utilise les 2 manieres (aussi bien pour les appels que pour les declarations), en fonction de la taille des parametres, histoire que le code reste lisible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String result = method(parameter.substring(0, parameter.length() - 4),
                           parameter.substring(parameter.length() - 4));
    String result = method("java", ".exe");

  4. #4
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Salut

    Citation Envoyé par wichtounet
    on les mets seulement sur plusieurs lignes si on a pas la place en largeur pour tous les mettre les uns à cotés des autres.
    Pour ma part, j'utilise plutôt cette méthode. Je rentre les paramètres sur la même ligne et s'il y en a trop, je vais à la ligne. Pourtant, dans la javadoc, je déclare chaque paramètre sur une ligne disctincte donc pas très cohérent

    Ensuite je préfèrerais ces formes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    z = x(
      a,
      b,
      c,
      d,
      e
      );
    Histoire d'encore mieux séparer. Ca me rappelle aussi le codage PHP de cette façon. Cela permet aussi de mieux commenter les paramètres pour les gens n'utilisant pas la javadoc.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Type x(Type a, Type b, Type c, Type d, Type e){
     
    }
    Dans ce cas-là, j'essaie principalement de regrouper les paramètres par type. Par exemple, si j'attends 3 String et 2 Integer en paramètre, je vais ordonner de façon à pas mélanger les types, question d'esthétisme

    Voilà mon opinion et mes "mauvaises?" habitudes

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Mon opinion c'est que j'en ais pas et que je laisse Jalopy tout faire à ma place

    Sinok, assisté primaire

  6. #6
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    sinok terrible. M'enfin je rigole mais je vais me le prendre je pense

  7. #7
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Sinon il y a les conventions de code de Sun (voir chapitre 4 "Indentation") suivies par défaut par Checkstyle.

  8. #8
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Dans les conventions de Sun, il ne disent rien là-dessus. Par contre, dans les exemples avec Jalopy, il met chaque paramètre sur une ligne.

    J'hésite un peu, mais je pense que je vais rester comme actuellement, avec tout sur une ligne et un retour à ligne s'il faut.

  9. #9
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Moi je fais confiance à Ctrl+Shift+F (dans eclipse)

  10. #10
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Bonjour

    Je croyais que tu utilisais Eclipse Wichtounet ?

    Comme l'a écris ®om

    Citation Envoyé par ®om
    Moi je fais confiance à Ctrl+Shift+F (dans eclipse)
    Tu as même la possibilité de mettre les conventions de Sun comme formatteur (Preferences -> Java -> Code Style -> Formatter, de mémoire donc il peut avoir des variantes). Tu peux également configurer le formatteur à ta guise

  11. #11
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Oui, je l'utilise.

    Mais pour configurer correctement le Formatter, faut bien connaître les conventions, non ?

  12. #12
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Perso,

    Je trouve qu'une ligne doit correspondre au début d'une ligne lisible sans faire
    mumuse avec les ascenceurs et finir parelilement

    180 char max non ??

    wichtounet t as l air d etre un putain de bon apprenti si j étais chef je t engagerais

  13. #13
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Citation Envoyé par wichtounet
    Oui, je l'utilise.

    Mais pour configurer correctement le Formatter, faut bien connaître les conventions, non ?

    Non !
    Je radote :

    Préférences -> Java -> Code Style -> Formatter -> dans select a profile : "Java Conventions" (voilà pô besoin de les connaitre)

    180 char max non ??
    Arf c'est déjà énorme !!! Il faut au moins un écran 1936 pouces. Chez moi je ne vais pas plus loins que la colonne 80 ! Héritage du COBOL

  14. #14
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par yann2
    Non !
    Je radote :

    Préférences -> Java -> Code Style -> Formatter -> dans select a profile : "Java Conventions" (voilà pô besoin de les connaitre)
    Bon, d'accord, si tu prends directement les conventions Java. Mais dans ce cas-là, pour ce qui est des appels de méthode, il met tout sur une ligne et retourne à la ligne si plus de place. Tandis que si tu prends l'autre formatteur par défaut (Eclipse Built-in je crois), il te met chaque paramètre sur une ligne différente.

    Donc que faire

    Citation Envoyé par yann2
    Arf c'est déjà énorme !!! Il faut au moins un écran 1936 pouces. Chez moi je ne vais pas plus loins que la colonne 80 ! Héritage du COBOL
    En effet, 180 c'es trop, mais je trouve que 80 c'est pas assez, je préfère du 100 ou un peu supérieur.

  15. #15
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Bonjour

    J'ai même fait la recherche pour toi (recherche de 'code convention' sur le site java.sun.com) :

    http://java.sun.com/docs/codeconv/ht...nvTOC.doc.html

    et avec ce lien tu peux voir que plusieurs variables d'une méthode sont sur la même ligne (il y a un saut uniquement si tu arrives à la colonne limite).

    yann

Discussions similaires

  1. méthode avec paramètre
    Par MaitrePylos dans le forum Ruby on Rails
    Réponses: 9
    Dernier message: 21/06/2007, 09h26
  2. [D7] Méthode pour paramétrer une application
    Par paros59 dans le forum Delphi
    Réponses: 6
    Dernier message: 18/06/2007, 23h50
  3. Réponses: 1
    Dernier message: 11/06/2007, 17h44
  4. Méthode en paramètre.
    Par vincent0 dans le forum C++
    Réponses: 10
    Dernier message: 27/09/2006, 15h08
  5. Réponses: 7
    Dernier message: 06/05/2006, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo