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 ?

  1. #161
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    Les pires règles sont celles que je subis en ce moment:

    Pour des programmes C
    -Pas de else if
    -Pas de goto (Je rappelle que ça peut être utile pour la gestion d'erreur en C)
    -Un seul return par fonction
    -Pas de break pour sortir des boucles (Donc oui il faut une variable testée à chaque itération pour décider de si on arrête la boucle).
    -Pas de int, que des short

    Le tout en même temps

    Je deviens fou.

  2. #162
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 044
    Points
    32 044
    Par défaut
    Citation Envoyé par Lynix Voir le message
    Pour des programmes C
    -Pas de else if
    est-ce qu'on peut faire un switch sur les booléens en C? Si on ne peut pas(en C# ou java, on ne peut pas, en cobol ou VBA on peut), alors c'est effectivement catastrophique. Sinon, c'est juste une question de style.

    Citation Envoyé par Lynix Voir le message
    -Pas de goto (Je rappelle que ça peut être utile pour la gestion d'erreur en C)
    l'eternel débat : mis dans de mauvaises mains, le goto a des conséquences nucléaires. Il est parfois utile, mais avec toujours un risque élevé. une interdiction compréhensible, bien que parfois lourdingue.

    En Cobol, j'ai vu une variante de cette règle : le seul goto autorisé était le "GO TO FIN-PARAGRAPHE", justement pour la gestion d'erreur(les grands esprits se rencontrent).

    Citation Envoyé par Lynix Voir le message
    -Un seul return par fonction
    Pas de scandale à mon sens là-dessus. Lors des maintenances, ça permet d'éviter certains raccourcis non prévus.

    Citation Envoyé par Lynix Voir le message
    -Pas de break pour sortir des boucles (Donc oui il faut une variable testée à chaque itération pour décider de si on arrête la boucle).
    Même chose que pour le goto - sauf que le danger(et donc l'interêt de la règle) est beaucoup plus discutable. A noter qu'en cobol je n'ai pas de break, donc je me farcis souvent un booléen de sortie de boucle. Je préfère largement l'exit for du VBA. Emmerdant, pas catastrophique.

    Citation Envoyé par Lynix Voir le message
    -Pas de int, que des short
    Urk??? Ils ont bu quoi??? Avant, je trouvais les règles juste contraignantes(sauf peut-être la première), mais ça, c'est clairement du délire. Il arrive quand même fréquemment que fonctionellement on aie à gérer des entiers à 6 chiffres ou plus. Je mange des fichiers à 5 millions d'enregs au petit déjeuner - et 30 millions au diner. Comment je remplis le compteur de ma log si je suis limité à 65535?????

    Sur ce dernier point, clairement, . ajouté à l'interdiction des break, on a sans doute à faire à quelqu'un d'un peu trop théorique, qui cherche à gagner de la mémoire à tout prix, et à ne jamais interrompre le flux du programme.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    est-ce qu'on peut faire un switch sur les booléens en C? Si on ne peut pas(en C# ou java, on ne peut pas, en cobol ou VBA on peut), alors c'est effectivement catastrophique. Sinon, c'est juste une question de style.
    Il n'y a pas vraiment de booléen en C (au sens de type ne pouvant prendre que deux valeurs) mais tout ou presque peut être testé comme booléen.(non null ou non 0 => c'est vrai).

    Et un switch sur variable bool fonctionne en C# , comme sur tout type ordinal.(en Java je n'en sais rien)

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #164
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Par contre, en C# on peut faire des switch sur des strings, alors qu'en C on a généralement besoin de else if(strcmp(param, "--toto")==0)... (Ou bien on fait un switich sur une valeur de hachage)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #165
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 044
    Points
    32 044
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    (.../...)
    Et un switch sur variable bool fonctionne en C# , comme sur tout type ordinal.(en Java je n'en sais rien)
    hum, ça fait un an que je n'ai pas mis les mains sur visual studio, mais je suis à peu près sur que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Switch True {
        Case (a = b) {blabla; Break}
        Case (a = c) 'blabla; Break}
        Case (Else) {blabla; Break}
    }
    ça ne marche pas, là ou en VBA on peut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select case true
        Case a=b:blabla
        Case a=c:blabla
        Case else:blabla
    End select
    (et désolé pour le C# pourri, ca n'est pas ce que je maitrise le mieux. ça doit se voir...).

    Mais bon, tout ça pour dire que suivant le langage, une règle peut être utile, inutile, gênante, ou catastrophique. Pas de break cumulé à pas de Else If(j'avais pas fait le rapprochement), c'est tout à fait digne de ce fil, car il devient impossible de gérer des conditions fonctionnelles un peu recherchées.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    hum, ça fait un an que je n'ai pas mis les mains sur visual studio, mais je suis à peu près sur que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Switch True {
        Case (a = b) {blabla; Break}
        Case (a = c) 'blabla; Break}
        Case (Else) {blabla; Break}
    }
    ça ne marche pas,
    Oui, mais ça c'est pas l'usage d'un switch; cela ressemble plus au Case SQL dans la variante sans valeur de référence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case 
    when (condition1) then (action1) 
    ......
    when (condition_n) then (action_n) 
    else (action_defaut) 
    end [alias_name]
    En l'espèce, un switch c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    switch(variable)
    {
    case constante1 :
    action1();
    break;
    case constante2 :
    action2();
    break;
    }

    Et avec variable de type bool et case sur true et false ça marche très bien. Les "case" ne pouvant se faire que sur des constantes (et je crois que c'est le cas aussi en C, mais ça remonte trop loin; sauf qu'en C on ne peut travailler que sur des ordinaux, car le compilateur transforme cela en une "jump table" en général (souvenirs très lointains d'assembleur x86 ).

    Bref, ne pas utiliser le "else if" est de toute manière sous-optimal dans la pluspart des cas.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #167
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Citation Envoyé par Lynix Voir le message
    -Un seul return par fonction
    -Pas de break pour sortir des boucles (Donc oui il faut une variable testée à chaque itération pour décider de si on arrête la boucle).
    Pour moi, c'est deux bonnes pratiques.

    Le return unique permet d'identifier a coup sur l'unique point de sortie.(ca aide a débugger plus vite)

    Le break ne sert a rien, sauf si on ne sais pas faire la différence entre l'utilisation d'un while, d'un do while et d'un for.
    Ce n'est pas parce que l'on itère une variable que l'on doit passer par un for.

    Pour utiliser un for, il y a plusieurs conditions :
    - Ne jamais changer la variable itérée à l'intérieur de la boucle.
    - ne jamais interrompre la boucle
    - toujours aller du début à la fin de l'itération.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (init i=0;i<50;i++)
    aura toujours 50 itérations, pas une de moins, pas une de plus.

  8. #168
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    Pour moi, c'est deux bonnes pratiques.

    Le return unique permet d'identifier a coup sur l'unique point de sortie.(ca aide a débugger plus vite)
    hum... C'est clair que ca va plus vite pour trouver où mettre le point d'arrêt dans l'IDE.

    Mais, de mon point de vue, si on est obligé de mettre un point d'arrêt sur ce "return", c'est que:
    1. on s'est planté sur les conditions de sorties.
    2. le code est trop complexe pour trouver l'erreur sans le debuggeur.
    3. qu'on aurait peut-être mieux fait de faire des conditions moins complexes et mettre plusieurs return.

    Pour moi, le return unique c'est une règle qui a des avantages mais pas forcément une bonne pratique. Le return multiple a aussi ses avantages...
    Code C : 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
    17
    18
    19
    20
    21
    fonction f(x,y,z) {
      // check pre-conditions
      if (condition on x,y,z)
        return ERROR_INVALID_PARAMETERS;
     
      for(...) {
        t=(x+y)/z;
        u=(2*t-x*y)+(x/t);
     
        // check invariants
        if (t<u)
          return ERROR_COMPUTATION_FAILURE;
      }
      result = 2*t+u;
     
      // check post-confitions
      if (condition on result) 
        return ERROR_INVALID_RESULT;
     
      return result;
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #169
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Le "un seul return par fonction", je le trouve nuisible s'il s'applique aussi aux vérifications des paramètres: Ça encourage un "code boomerang" de if dans des if dans des if...

    Une fois la validation terminée par contre, je temps à y adhérer dès qu'une fonction alloue la moindre ressource (une fonction de recherche qui n'alloue aucune ressource tend à retourner dès que ce qu'on cherche est trouvé, par contre).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Pour moi, le return unique c'est une règle qui a des avantages mais pas forcément une bonne pratique. Le return multiple a aussi ses avantages...
    Je suis d'accord mais je trouve que ton exemple n'est pas pertinent. Avec les langages actuels (Java, C#, ...) la pratique pour les conditions d'erreurs est plutôt de lever une exception. (bon, c'est vrai aussi que l'exemple est en js ....).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  11. #171
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 044
    Points
    32 044
    Par défaut
    @bluedeep : ton switch, si(et seulement si) ma variable est booléenne, il ne sert pas à grand chose : autant faire un bête if. Et, si on a besoin de plus d'un test, d'un else if.

    Je ne connaissais pas le CASE SQL, mais c'est exactement de celà dont je voulais parler. C'est un outil puissant, qui permet de remplacer les else if. Si on a ni l'un ni l'autre, ni le break ni le goto pour faire autrement, ça tourne à la torture.

    Et soudain, grâce à ce débat(et toutes vos remarques fort pertinentes), je comprends mieux la complainte de ce pauvre Lynix : une seule règle à la con, ça se contourne. Quand tous les contournements sont interdits, il devient difficille de programmer.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  12. #172
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Je suis d'accord mais je trouve que ton exemple n'est pas pertinent. Avec les langages actuels (Java, C#, ...) la pratique pour les conditions d'erreurs est plutôt de lever une exception. (bon, c'est vrai aussi que l'exemple est en js ....).
    Me semble qu'on m'a toujours dit le contraire.
    Les Exceptions sont lourd à traité

    puis bon quelle est la différence entre un return -1; et un throw new Exception? :p


    for (init i=0;i<50;i++)
    aura toujours 50 itérations, pas une de moins, pas une de plus.
    Perso quand je fais une recherche j'utilise un for avec un break;
    Et dans des codes complexes je trouve qu'il est parfois plus facile d'identifier des return et de break que des if en casquade
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(int i=0;i<lst.Count;i++)
    {
        if (lst[i] == elementRechercher)  return lst[i]
    }
    Element = CreerElement
    return element
    ou
    Code : 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
    int i=0;
    while(!trouver && i<lst)
    {
        if (lst[i] == elementRechercher) 
        {
            element = lst[i]
            trouver = true
        }
         i++;
    }
    if(!trouver)
    {
     Element = CreerElement
    }
    return element;
    Si on met uniquement un breakpoint sur le return on ne saura pas si l'element a été crée ou trouvé dans la liste.
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  13. #173
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Me semble qu'on m'a toujours dit le contraire.
    Les Exceptions sont lourd à traité

    puis bon quelle est la différence entre un return -1; et un throw new Exception? :p
    Les exceptions ont plusieurs avantages :
    - elles sont rapides, en particulier lorsque l'exception est rare. Si c'est un comportement courant, on doit utiliser un if.(bref, on utilise pas les exceptions pour remplacer le if).
    - Elles ont un nom, un contenu, un détail... bref, elles sont bien plus parlante et détaillées qu'un "-1"
    - Elles font partie des règles générales. On a créé les exceptions pour gérer les erreurs, utiliser un autre système va rendre la tache plus difficile pour les autres développeurs.
    - elle peuvent passer très facilement d'un niveau à l'autre de programmation... elle ont cette capacité a traverser les couches bien pratique selon le besoin.
    - elles permettent de concentrer le code sur le besoin fonctionnel d'un coté, et les erreurs de l'autre(on les voit facilement)

    Pour toutes ces raisons, au moins, je pense qu'il est largement préférable de se servir des exceptions si on les as à notre disposition.

  14. #174
    Membre éprouvé Avatar de Grom61736
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2013
    Messages : 169
    Points : 1 144
    Points
    1 144
    Par défaut
    Convention : Tout doit être passé dans l'URL.
    On ne veut pas de variables de session ni de données qui transitent par POST.

    Tout, tout dans l'URL même les mots de passe...

  15. #175
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 122
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Grom61736 Voir le message
    Convention : Tout doit être passé dans l'URL.
    On ne veut pas de variables de session ni de données qui transitent par POST.

    Tout, tout dans l'URL même les mots de passe...
    HA moi j'ai eu exactement l'inverse et tout devait passer en post et on devais toujours rester sur www.toto.com, donc adieu les favoris pour l'utilisateur

    Sinon une petite remarque sur les returns multiples, je pense que ceux qui sont pour n'ont pas eu à faire de test unitaire dessus...
    Quand on va de l'avant on avance !!!!

  16. #176
    Membre averti
    Avatar de Snack3r
    Homme Profil pro
    Doctorant à l'Université Cheikh Anta Diop de Dakar
    Inscrit en
    Octobre 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Doctorant à l'Université Cheikh Anta Diop de Dakar
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 118
    Points : 444
    Points
    444
    Par défaut
    Bonsoir

    Quand à moi, ça me dérangeais qu'une if en Java n'accepte qu'une valeur boolean surtout si on a l'habitude en C de mettre des entiers au lieu d'une expression dans if ^_^
    C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie.

  17. #177
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Citation Envoyé par snack3r Voir le message
    Bonsoir

    Quand à moi, ça me dérangeais qu'une if en Java n'accepte qu'une valeur boolean surtout si on a l'habitude en C de mettre des entiers au lieu d'une expression dans if ^_^
    En fait, j'étais comme ça pendant mes premières années de codage C et C++, mais j'ai fini par me rendre compte qu'écrire du code explicite et lisible était plus important qu'écrire du code "compact" et "malin". Depuis, je fais explicitement toutes mes comparaisons (à commencer par celles à NULL), sauf pour les variables vraiment Booléennes (y compris les typedef int BOOL; et autres joyeusetés pré-C99).

    Edit: Cela va de pair avec le fait de garder à l'esprit que strcmp() ne retourne pas un Booléen.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #178
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Citation Envoyé par Médinoc Voir le message
    écrire du code explicite et lisible était plus important qu'écrire du code "compact" et "malin".
    Et c'est même plus important de mon point de vue que d'écrire du code respectant des règles. Les règles sont faites pour être de temps en temps brisées. Si nous respections toutes les règles, nous ne serions que des machines.

    A+

    Pfeuh

  19. #179
    Membre du Club Avatar de MorganGeek
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2011
    Messages : 16
    Points : 46
    Points
    46
    Par défaut
    Je préfère un code un peu moche au départ mais qui permet une application qui fonctionne que du code propre d'une application qui ne marche pas. Ensuite au fil du temps, le refactoring permet d'améliorer encore et encore le code. Mais quand on fait du prototypage ou autre pratique similaire, la beauté du code n'importe pas vraiment, le but est de prouver au plus vite que ça fonctionne et ensuite d'améliorer, ajouter des briques petit à petit (à mon sens)

  20. #180
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Il faut faire gaffe, j'ai déjà vu du prototype (enfin maquette mais c'est pareil) se retrouver en production.

    Bah quand la personne a développé la maquette sans code optimisé ou mise en forme (en pensant ne faire qu'une maquette) , quand tu dois le reprendre derrière tu souffres.
    Tout énigme a une solution ! Tout est question de discipline !

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