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

JavaScript Discussion :

Ecriture de code que je déteste


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut Ecriture de code que je déteste
    Bonjour à tous,

    Est-ce que l'on pourrait cesser d'écrire des conditions en JS de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Projector.start === null) Projector.start = timestamp;
    C'est franchement illisible lorsqu'il y a 20 000 lignes de codes à inspecter. Merci d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (Projector.start === null){
        Projector.start = timestamp;
    }
    En respectant l'indentation qui va avec. Merci.
    C'est tout de même pas compliqué, BORDEL DE M...

    Les accolades, faut pas hésiter à les utiliser, juste parce que "T'ES PAS TOUT SEUL AVEC TON CODE..."

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 127
    Par défaut
    Salut

    Oui on pourrait cesser.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    je ne comprends pas trop le but de ton post, coup de gueule ?

    Oui c'est une mauvaise façon de faire, entre bien d'autres.

    Pourquoi ne pas commencer à le dire au(x) principal(aux) concerné(s) que tu as rencontré(s).

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    C'est vrai, il faut mieux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Projector.start = Projector.start || Math.round(+new Date() / 1000);

  5. #5
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    ESLint est ton ami.

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Citation Envoyé par NoSmoking
    je ne comprends pas trop le but de ton post, coup de gueule ?
    Oui, je râle Je dois me farcir 37 000 lignes de codes de ce genre, avec des commentaires quand le ou les mecs ont eu le temps d'en mettre, et de l'indentation merdique. Et pour l'indentation, merci d'utiliser la touche TAB, pas 2 ou 3 espaces (le nombre varie selon la générosité du codeur). Si ce n'était que des cas isolés, ça irait, mais j'ai l'impression que ce genre d'écriture se généralise...

    ça va me faire une bonne semaine je crois lol

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (Projector.start === null) && (Projector.start = timestamp);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Projector.start= (Projector.start === null)? timestamp : Projector.start ;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 489
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 489
    Par défaut
    3615 MAVI
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  9. #9
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (Projector.start === null) && (Projector.start = timestamp);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Projector.start= (Projector.start === null)? timestamp : Projector.start ;
    Ou comment économiser 3 lignes pour rendre son code illisible. Même pas sûr que ce genre de code puisse être correctement tracé par le débuggeur...

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Fait une simple recherche avec beautifier javascript, tu économiseras bien du temps par la suite.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Projector.start= (Projector.start === null)? timestamp : Projector.start ;
    tant qu'à faire sauvons quelques caracteres grace à la coercion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Projector.start+=(Projector.start==null)*timestamp;{
        }
    ps: j'ai pris soin de rejouter les accolades et l'indention.

  12. #12
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par zecreator Voir le message
    Oui, je râle Je dois me farcir 37 000 lignes de codes de ce genre
    Tu as une option --fix sur ESLint qui te fixe automatiquement une grande partie de ces problèmes. Tu devrais peut être jeter un oeil à cet outil !

  13. #13
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Citation Envoyé par galerien69 Voir le message
    tant qu'à faire sauvons quelques caracteres grace à la coercion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Projector.start+=(Projector.start==null)*timestamp;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Projector.start=Projector.start||timestamp;
    plus court encore...

    ceci dit, je commence à loucher du coté d'ESLint, mais je n'ai rien vu qui y parle de prés ou de loin qui permette de régler le style, au moins en Allman (le plus reconnu), même si je penche plutôt pour le Whitesmiths (qui semble boudé par le reste de la planète)
    https://fr.wikipedia.org/wiki/Style_...le_Whitesmiths

  14. #14
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Non mais j’ai pas besoin d’un outil pour m’expliquer un code, à partir du moment où il est correctement codé. Après si le standard c’est de coder salement, alors oui, ESLint devient un Outil indispensable au codeur. Quelle tristesse...

  15. #15
    Invité
    Invité(e)
    Par défaut
    Projector.start=Projector.start||timestamp;
    non car 0!=null

  16. #16
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    ESLint ne sert pas à t'expliquer le code, il sert à garantir qu'un style consistant sera appliqué partout, c'est à dire exactement ce que tu reproches au code sur lequel tu travailles de ne pas avoir.

    L'idée c'est d'avoir un système automatisé qui va te dire "à la ligne 38 du fichier toto.js t'as pas respecté le style (règle bidule violée), à la ligne 23 du fichier titi.js t'as violé la règle truc", et t'auras la possibilité de réexécuter l'outil avec l'option --fix pour corriger ça automatiquement.

    Si tu te rajoutes des hooks de precommit / prepush qui exécutent ton linter + tes tests tu t'assures d'avoir une code base propre dans ta branche d'intégration des devs.

    Citation Envoyé par zecreator
    si le standard c’est de coder salement, alors oui, ESLint devient un Outil indispensable au codeur.
    ESLint (ou autre) est indispensable pour les projets sérieux parce que tout le monde fait des erreurs à ce niveau, même les plus expérimentés. Ça permet aux débutants de s'appuyer sur un outil automatique avec une superbe doc pour progresser et ça évite aux plus anciens de perdre du temps avec le style lors des revues de code.

    Il y a de plus en plus de boites et de projets opensource ou tu ne pourras pas ajouter une contribution sans passer ce genre de vérification exactement comme l'exécution de suites de test.

    Tu as tort de prendre ça de cette manière, c'est à peu près comme refuser les tests automatisés parce que "tester c'est douter".

  17. #17
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Tu as tort de prendre ça de cette manière, c'est à peu près comme refuser les tests automatisés parce que "tester c'est douter".
    Et comment tu appliques ESLint, sur du code vieux de 10 ans, où il y a eu 15 développeurs qui codaient différemment ? Non, parce que tu te doutes bien que j'ai essayer d'appliquer des rêgles de style. mais sur du code archi-pourri, et écrit de 20 manières différentes, ça ne sert à rien. Voire, c'est pire...

    Sans compter des morceaux de code qui sont présents et qui ne sont jamais utilisés. J'aurais pas perdu ma semaine, mais mon sommeil sans doute...

  18. #18
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Ben si t'as pas de tests automatisés pour vérifier que le fix ne casse rien effectivement ça risque d'être un peu chaud avec 30K+ LoC.

    Mais il y a quand même un bon paquet de choses qui peuvent être fixées automatiquement sans risquer de casser ton code, à commencer par l'indentation et les tab au lieu des espaces.

  19. #19
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut
    Je suis un développeur "old school". A l'époque, quand j'ai appris le métier, on m'a enseigné les bons réflexes. Et je dois bien avouer que aujourd'hui, je ne comprends pas cette confiance aveugle qu'ont les développeurs pour les systèmes qui "réécrivent" le code à leur place.

    Même si aujourd'hui dans mon métier, on me l'impose, je ne peux pas m'empêcher de reformuler le code car souvent (très souvent même), ma réécriture est plus optimisée, et je sourie quand l'un de mes collègues me remercie d'avoir indenté comme il faut et placé des commentaires compréhensibles sur un script qui lui aurait demandé 6 jours à comprendre.

    Après, oui niveau délais, je suis souvent dans les choux. Mais mon code est ultra propre lol.

  20. #20
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2018
    Messages : 16
    Par défaut
    Bonjour,

    Utiliser des raccourcis, n'est pas forcement synonyme d'illisibilité.

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // Excuse d'avance la tabulation ne fonctionne pas sur cette éditeur de code
    let test=false;
     
    (test)?console.log('VRAIE'):console.log('FAUX');
    test=true;
     
    (test)?console.log('VRAIE'):console.log('FAUX');
    test=false;
     
    if(test){
      console.log('VRAIE');
      test=false;}
     else{
      console.log('FAUX');
      test=true;}

    Je ne vois pas en quoi c'est illisible, j'aime bien, cela simplifie le code et le rend plus dégustatif.
    Chacun sa méthode et je pense que votre problème c'est surtout l'indentation qui peut vite être exécrable.

    C'est surtout que vous avez l’habitude d'un code formulait d'une certaine manière et on vous le change, c'est un peu comme utiliser un autre langage de programmation, essayez le shell c'est bien sympa

Discussions similaires

  1. Que fait cette ligne de code
    Par netsupra dans le forum jQuery
    Réponses: 2
    Dernier message: 06/05/2014, 11h57
  2. Que signifie cette ligne de code ?
    Par ysahel dans le forum Débuter
    Réponses: 3
    Dernier message: 22/01/2010, 13h07
  3. Que fait cette ligne de code svp ?
    Par selmani300 dans le forum C++
    Réponses: 34
    Dernier message: 24/03/2009, 21h53
  4. Que fait cette ligne de code ?
    Par ANOVA dans le forum MATLAB
    Réponses: 9
    Dernier message: 17/07/2008, 09h20
  5. Que signifie cette syntaxe de code ?
    Par SPACHFR dans le forum C
    Réponses: 4
    Dernier message: 02/05/2007, 13h24

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