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

Humour Informatique Discussion :

Quelle est la règle de codage la plus étrange que vous avez été forcé de suivre ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    A priori tous les IDE permettent le paramétrage du nombre d'espace "écran" associés à un caractère "tab", non ?
    Moui, encore faut il avoir le réflexe de le faire AU DEBUT du projet, pas quand on en est à 100000 lignes/150 fichiers sources

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    En java, l'utilisation de retour multiple est déconseillée par le "Code Convention". D'ailleurs, ça me rappelle un bug, au lieu d'utiliser un "break" pour quitter une boucle, le développeur à utiliser un return qui lui a éjecté de la fonction qui retourne un void .

    Pour le Code Style, on a l'habitude de créer un Template dans eclipse et on le partage pour tous les développeurs.

    Quelles règles de codage étranges avez-vous dû suivre ?
    On ne nous a pas laissé un tag auto-fermante pour déclarer des beans ou des propriétés des beans dans un fichier de configuration de spring.
    Utiliser
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <bean id="id1" class="com.package.class1">
    </bean>
    <bean id="id2" class="com.package.class2">
    	<property name="id1" ref="id1"></property>
    </bean>
    à la place de
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <bean id="id1" class="com.package.class1" />
    <bean id="id2" class="com.package.class2">
    	<property name="id1" ref="id1" />
    </bean>


  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 210
    Par défaut
    Perso je trouve plus lisible des return au début et au milieu que de s'amuser a vérifier si ma fonction fait encore quelque chose.

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2007
    Messages : 891
    Par défaut Indentation
    Pour l'indentation, il y a bien plus inteligent et souple : la tabulation. Ainsi en changeant le nombre d'espace d'une tabulation, chacun adapte le formatage. Deplus, à taper c'est plus rapide (ne serais-ce que pour éffacer 3*3=9 espaces= 3 tabulation ).
    Dans les codes indenté par des espaces vous remarquerez qu'ils sont toujours mal indenté car à un moment on à rajouté des espaces au pif. Je travaille beaucoup en directement en prod sous VIM qui ne rajoute pas automatiquement les espaces mais qui permet d'indenter rapidement le code en tabulation.

  5. #5
    Membre très actif

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Par défaut
    Citation Envoyé par abriotde Voir le message
    Pour l'indentation, il y a bien plus inteligent et souple : la tabulation. Ainsi en changeant le nombre d'espace d'une tabulation, chacun adapte le formatage. Deplus, à taper c'est plus rapide (ne serais-ce que pour éffacer 3*3=9 espaces= 3 tabulation ). Dans les codes indenté par des espaces vous remarquerez qu'ils sont toujours mal indenté car à un moment on à rajouté des espaces au pif.
    C'est exactement l'inverse en pratique : un dev a appuyé trois fois sur tab et la parenthèse se situe pile poil aligné avec le code du dessus et l'autre dev qui affichera le même code avec une tabulation de 2 au lieu de 4 verra une le code décalé et par conséquent beaucoup moins lisible. Alors qu'avec des espaces, dans tous les cas, on l'a mis à un endroit, et sur tous les ordis, ça apparaît au même endroit.

    Citation Envoyé par abriotde Voir le message
    Je travaille beaucoup en directement en prod sous VIM qui ne rajoute pas automatiquement les espaces mais qui permet d'indenter rapidement le code en tabulation.
    Pareil. Dan mon .vimrc :

    set expandtab
    set tabstop=4
    set shiftwidth=4

    Comme ça en appuyant sur tab ça fait ce que tu décris (= une fois sur tab), ça décale de 4 et en plus au lieu d'un caractère tabulation ce sont des espaces !


  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Fraichement embauché sur un produit codé par des générations de stagiaires, j'ai voulu mettre en place des conventions de codage et un semblant d'architecture pour harmoniser tout ça. Le chef de projet m'a répondu que la seul règle à suivre était de ne pas utiliser de convention de codage car "ça frustre le développeur et lui fait perdre son temps. Tu débute et moi j'ai 20 ans d'expérience alors crois moi quand je te dis que ça sert à rien !".
    Résultat, un code illisible mélangeant a peu près tout ce qu'on peu trouver...

    Je suis partir au bout de 3 mois et la boite à coulé 6 mois après...

    Sinon dans le genre règle pas vraiment stupide mais un peu lourdingue, obligation de toujours mettre un else après un if. On se retrouve alors avec ça un peu partout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ( toto )
    {
      [...]
    }
    else
    {
      // NOTHING
    }

  7. #7
    Membre éprouvé Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Par défaut
    Citation Envoyé par pyros Voir le message
    Sinon dans le genre règle pas vraiment stupide mais un peu lourdingue, obligation de toujours mettre un else après un if. On se retrouve alors avec ça un peu partout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ( toto )
    {
      [...]
    }
    else
    {
      // NOTHING
    }
    L'idée derrière cette règle c'est de mettre au moins une trace dans le else (ne serait-ce qu'un std::cout) pour voir quand tu tombes dans ce cas précis, ça peut te faire gagner un temps précieux de recherche. Juste mettre un commentaire NOTHING effectivement c'est lourdingue et surtout ça sert à rien...

  8. #8
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 746
    Par défaut
    Citation Envoyé par NevilClavain Voir le message
    Moui, encore faut il avoir le réflexe de le faire AU DEBUT du projet, pas quand on en est à 100000 lignes/150 fichiers sources
    Au contraire, tout l’intérêt d'indenter proprement avec des tabulation, c'est qu'on peut changer ça à n'importe quel moment sans que ça ait le moindre impact.
    Tout le monde peut régler la taille des tabulation à la valeur qu'il souhaite personnellement sans impacter les autres.

  9. #9
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Par défaut
    L'obligation de commencer mes requêtes SQL... Même pour 2 lignes, je crois que ce fut un moment de solitude...

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 223
    Par défaut
    Que tout le monde utilise la même indentation me parait indispensable, préfixé les noms des variables par leur type très utile, surtout quand on utilise un EDI à peu près potable (avec autocomplétion donc) pour se retrouver rapidement dans la jungle des variables. En revanche l'inversion de l'indentation, c'est vrai que c'est un peu étrange, j'imagine que c'est pour que le code

    Dans les conventions auxquelles j'ai du, celle à laquelle j'ai eu le plus de mal à me faire est que les noms de variables, de fonctions, de classes... et les commentaires doivent être en français.

    J'ai beau parlé assez mal a anglais, quand il s'agit de coder, il me faut toujours plusieurs minutes de réflexions pour trouver un nom en français alors que le nom en anglais est souvent rapide à trouver (sans doute, outre l'habitude, du fait que l'intégralité des docs d'API que j'ai devant les yeux en permanence sont en anglais).

    A l'opposé, la convention la moins utilisée mais que j'ai trouvée la plus utile dans mon expérience passée (en fait une convention qui m'a été imposée dès mes premières d'étude) est de ne pas hésiter à utiliser des noms de variables descriptifs (donc assez long). Ça semble n’avoir aucun intérêt sur le moment, mais quand on reprend le code (la plupart du temps écrit par d'autres, quand ce n'est pas par des intérimaires de passage) plusieurs mois après, on se rend compte à quel point ça facilite les choses.

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 210
    Par défaut
    Citation Envoyé par olreak Voir le message
    préfixé les noms des variables par leur type très utile, surtout quand on utilise un EDI à peu près potable (avec autocomplétion donc) pour se retrouver rapidement dans la jungle des variables.
    Si tu as une jungle de variable il y a peut-être un problème ailleurs

  12. #12
    Membre Expert
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 789
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Si tu as une jungle de variable il y a peut-être un problème ailleurs
    Dans du COBOL typiquement, le nombre de variables peut vite devenir très important (et ça peut vite avoir un côté "jungle") même pour des programmes relativement simples. Dès lors, il est judicieux de bien les nommer (si possible avec du fonctionnel) et éviter les variables de type I, J, K dans des tableaux à trois dimensions afin de faciliter la maintenance.

  13. #13
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Darkzinus Voir le message
    Dans du COBOL typiquement, le nombre de variables peut vite devenir très important (et ça peut vite avoir un côté "jungle") même pour des programmes relativement simples. Dès lors, il est judicieux de bien les nommer (si possible avec du fonctionnel) et éviter les variables de type I, J, K dans des tableaux à trois dimensions afin de faciliter la maintenance.
    En l'espèce, l'usage de la notaion hongroise Sys n'est pas ou peu critiqué dans le cadre des languages non objet. En revanche, c'est très critiqué dans le contexte des langage OO.

  14. #14
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Citation Envoyé par Darkzinus Voir le message
    Dans du COBOL typiquement, le nombre de variables peut vite devenir très important (et ça peut vite avoir un côté "jungle") même pour des programmes relativement simples. Dès lors, il est judicieux de bien les nommer (si possible avec du fonctionnel) et éviter les variables de type I, J, K dans des tableaux à trois dimensions afin de faciliter la maintenance.
    C'est totalement vrai pour du COBOL qui n'a que des variables globales à l'intérieur d'un module donné. Ca l'est moins pour d'autres langages plus isolés. Même dans un langage assez vieux comme le VBA, on a en général suffisement de possibilité d'encapsulation pour ne pas avoir de confusion. Tout au long du programme COBOL, I aura une et une seule valeur, et c'est pour ça qu'il faut éviter. Par contre, dans ma macro VBA, I sera différent de procédure en procédure, de fonction en fonction.

    En bref : ce qui est intelligent dans un environnement précis peut devenir catastrophique dans un autre. Et il faut se méfier des règles absolues : elles sont généralement toutes issues d'un contexte, et à prendre avec des pincettes hors dudit contexte.

  15. #15
    Membre Expert
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 789
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    C'est totalement vrai pour du COBOL qui n'a que des variables globales à l'intérieur d'un module donné. Ca l'est moins pour d'autres langages plus isolés. Même dans un langage assez vieux comme le VBA, on a en général suffisement de possibilité d'encapsulation pour ne pas avoir de confusion. Tout au long du programme COBOL, I aura une et une seule valeur, et c'est pour ça qu'il faut éviter. Par contre, dans ma macro VBA, I sera différent de procédure en procédure, de fonction en fonction.

    En bref : ce qui est intelligent dans un environnement précis peut devenir catastrophique dans un autre. Et il faut se méfier des règles absolues : elles sont généralement toutes issues d'un contexte, et à prendre avec des pincettes hors dudit contexte.
    Tout à fait d'accord, cela dépend effectivement des langages. Au final on en revient toujours à la question du codage "intelligent". Et globalement, les normes de codage pour un site, même si elles peuvent sembler contraignantes permettent un théorie de garantir une certaine homogénéité. En théorie, dis-je, car rien n'empêche de coder malgré tout n'importe comment sans se soucier de la maintenant derrière.

  16. #16
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 210
    Par défaut
    Citation Envoyé par Darkzinus Voir le message
    Dans du COBOL typiquement, le nombre de variables peut vite devenir très important (et ça peut vite avoir un côté "jungle") même pour des programmes relativement simples. Dès lors, il est judicieux de bien les nommer (si possible avec du fonctionnel) et éviter les variables de type I, J, K dans des tableaux à trois dimensions afin de faciliter la maintenance.
    Mais si tu fais du COBOL, tu as un problème encore plus graveuh

  17. #17
    Membre Expert
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 789
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Mais si tu fais du COBOL, tu as un problème encore plus graveuh
    Non aucun, j'ai plaisir à travailler sous l'éditeur ISPF

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par olreak Voir le message
    En revanche l'inversion de l'indentation, c'est vrai que c'est un peu étrange, j'imagine que c'est pour que le code
    Arf ta phrase s'est achevée abruptement. Moi qui espérais enfin un élément de réponse sur cette étrange règle après 3 pages

    Des idées sur la question ?

  19. #19
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    Citation Envoyé par MorganGeek Voir le message
    Des idées sur la question ?
    De mémoire, le pourquoi de cette règle (indentation inversée) a déjà été mentionné : éviter, dans le cas de if, for, while ou autres blocs du même genre, et plus ou moins imbriqués les uns dans les autres, d'avoir un effet "boomerang" : le code se décale de plus en plus vers la droite jusqu'à une "pointe", puis se décale dans l'autre sens formant alors, visuellement un > géant.

    Cet effet peut nuire à la lecture du code en imposant un scrolling horizontal, des plus déplaisant.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Merci de la réponse très claire !

Discussions similaires

  1. Réponses: 48
    Dernier message: 07/12/2010, 17h44
  2. Réponses: 48
    Dernier message: 07/12/2010, 17h44
  3. Réponses: 14
    Dernier message: 13/08/2010, 11h14
  4. [VBA-E]DatePart ? Quelle est la règle ?
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2010, 13h17

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