Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 4 sur 25 PremièrePremière 1234567814 ... DernièreDernière
Affichage des résultats 61 à 80 sur 496
  1. #61
    Nee
    Nee est déconnecté
    Nouveau Membre du Club
    Inscrit en
    mai 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : mai 2002
    Messages : 47
    Points : 34
    Points
    34

    Par défaut

    Moi j'ai vu quelque chose comme ça en PHP, il fallait y penser :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    try {
      if (! uneFunction()){
         throw new Exception();
      }
    } catch(Exception $e){
       return false;
    }
    we are the knights who said nee !

  2. #62
    Inactif
    Inscrit en
    septembre 2008
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 357
    Points : 439
    Points
    439

    Par défaut

    Citation Envoyé par bubulemaster Voir le message
    En java :

    Code :
    1
    2
    3
    4
    5
    for(...) {
    StringBuffer sb = new StringBuffer() ;
    sb = new StringBuffer()
    ....
    }
    On aurait pu sortir la déclaration de la variable sb de la boucle.
    Et l'instancier deux fois de suite

    Le classic :
    Code :
    1
    2
    3
    4
    5
    6
    7
    private int longueur(List liste) {
        return liste.size();
    }
    
    private void ajouter(List liste, String chaine) {
        liste.add(chaine) ;
    }
    Ca m'étonne pas qu'on dise que Java est lent quand on voit ça

    Ah, précision, la personne était programmeuse Java depuis 5 ans
    Bof, le compilo optimise tout ça.

  3. #63
    Invité de passage
    Inscrit en
    août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 4
    Points : 4
    Points
    4

    Par défaut

    Bonjour,

    Des perles, ont n'en vois souvent, souvent marrantes.

    En voila une pour moi :
    Lors d'un stage(en seconde) dans le réseau informatique d'une mairie(je ne venais pas pour du PHP), lorsque mon maitre de stage a vu que je connaissais le PHP il à sauter sur l'occasion pour me faire débugger une application réseau de gestion.

    Le but du code était de sélectionner certaines personnes dans une liste grâce à un statut...
    La boite à mis la clé sous la porte(ce que je comprends maintenant), et ne pouvait donc pas assurer la maintenance, et donc l'application ne sélectionnait pas en fonction du critère.
    Je vous laisse voir :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $statut = (isset($_POST['statut']))?$_POST['statut']:'all';
    
    if($statut == 'all'){
    $rq = "SELECT * FROM table WHERE statut='all'";
    }elseif($statut == 'chose'){
    $rq = "SELECT * FROM table WHERE statut='all'";
    }//Sur 7 critères
    ...
    <select name="statut"><option value="all">Tous</option><option value="chose">Chose</option>//de même sur 7 critères</select>
    C'est assez marrant, ce que l'on peut faire pour ce compliquer la vie.

    Yacodo

  4. #64
    Candidat au titre de Membre du Club
    Inscrit en
    novembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : novembre 2006
    Messages : 22
    Points : 13
    Points
    13

    Par défaut

    Citation Envoyé par Alain Defrance Voir le message
    Par contre c'est faux de dire que == ne marche pas il a juste un comportement un peu spécial. Il ne compare pas les valeurs mais les adresses en mémoire. Le fait est que dans ce cas préci pour peu que l'on passe un litéral à la méthode convert, le programme marchera normalement. En effet la JVM implémente le pattern flyweight qui construit un parc de données pour les littéraux. De ce fait les littéraux sont partagés dans tous le programme. Puisqu'ils sont partagés alors quand on fait "1" == "1", alors on compare les deux adresses, qui pointent vers la même instance en mémoire, et qui du coup est égal. En fait on fait un test qui ne fait pas ce qu'on veut mais qui au final donnera le bon résultat. Pour être certain que le code marche il faudrait non pas utiliser value mais value.intern(). Pour plus de détails pous pouvez lire ce billet.
    J'avais écrit ça une fois sans faire gaffe en Java, et je m'en suis rendu compte dans le debugger. Maintenant, voilà pourquoi je me permets de faire un commentaire : le compilateur (Java 6) avait remplacé le == par un appel à equals sans me le dire, et le watch du debugger que j'avais fait par copier/coller n'avait pas fait cette substitution. Il m'en a fallu du temps pour comprendre ça...

  5. #65
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : mars 2004
    Messages : 624
    Points : 635
    Points
    635

    Par défaut

    Citation Envoyé par Furikawari Voir le message
    Bof, le compilo optimise tout ça.
    Oui mais bon, ça veut dire que la personne n'a pas vraiment compris le Java et même la programmation.
    Pour qu'un compilateur optimise, il faut qu'il y ait des programmeurs qui est compris la programmation et la programmation à la one again.

    Pour me rattrapé je me suis rappelé d'un code comme ça :
    Code :
    1
    2
    3
    4
    int a ;
    String b;
    StringBuilder c;
    ...
    Que des variables à 1 lettre, sympa ça ! Mais bon, c'est vrai que la personne qui avait fait ce code était un artiste

  6. #66
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : septembre 2006
    Messages : 572
    Points : 582
    Points
    582

    Par défaut

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (resultat <= 10) {
       traitement();
    }
    else if (resultat > 10) {
      autreTraitement();
    }
    else {
       traitement(); // oui oui, le meme qu'au dessus, on sait jamais.
    }

  7. #67
    Candidat au titre de Membre du Club
    Inscrit en
    novembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : novembre 2006
    Messages : 22
    Points : 13
    Points
    13

    Par défaut

    Alors moi, je pense que le truc le plus incroyable a été de chercher un jour sous quelle condition je recevais la valeur "E000:R" via un socket TCP. Je suis tombé sur le code suivant :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        if(
            !checkTag(session->barcode, "TRANSIT") &&
            (
             (!strcmp(mode, F_IT) && ((g_comlabel!=0 && !checkTagValue(session->barcode, "TYPE", "COMMON")) || checkTag(session->barcode, "RELABEL")) && (session->isnprint || !checkTagValue(session->barcode, "CPEX", "N"))) ||
             (!strcmp(mode, "RELABEL") && !strcmp(szStr1, "FR")) ||
             (!strcmp(mode, F_IT) && checkTag(session->barcode, "REBUILD")) ||
             (g_comlabel && strcmp(mode, F_IT) && strcmp(mode, "RELABEL") && (!checkTagValue(session->barcode, "TYPE", "COMMON") /*|| checkTagValue(session->barcode, "EXPORT", "Y")*/) && (session->isnprint || !checkTagValue(session->barcode, "CPEX", "N")) ) ||
             (!g_comlabel && strcmp(mode, F_IT) && strcmp(mode, "RELABEL") && checkTag(session->barcode, "RELABEL")) ||
             (g_frinitcheck && !strcmp(mode, F_IT) && !checkTag(session->barcode, "COMIMP") && checkTagValue(session->barcode, "TYPE", "COMMON") && !frCheckRoute(session->barcode))
            ) 
          )
        {
            strcpy(data, "E000:R");
            // Autres trucs imbitables
        }
    À ce jour, je ne sais toujours pas quelle est la condition réelle, même si j'ai résolu mon problème par un autre moyen

  8. #68
    Expert Confirmé
    Avatar de Pill_S
    Homme Profil pro Séb Piller
    Consultant informatique
    Inscrit en
    janvier 2004
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Nom : Homme Séb Piller
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2004
    Messages : 1 887
    Points : 2 808
    Points
    2 808

    Par défaut

    Citation Envoyé par bubulemaster Voir le message
    Que des variables à 1 lettre, sympa ça ! Mais bon, c'est vrai que la personne qui avait fait ce code était un artiste
    Bof, moi ça me choque pas, du moment que ce sont des variables locales... c'est même plus clair je trouve...

    Qui n'a jamais programmé une boucle for avec un compteur "i"?

    Ne renonce jamais

  9. #69
    Membre émérite
    Inscrit en
    avril 2003
    Messages
    780
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 780
    Points : 889
    Points
    889

    Par défaut

    Une que j'aime bien
    Code :
    1
    2
    3
    if (condition == true) {
           [...]
    }

  10. #70
    Invité régulier
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    4
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2009
    Messages : 4
    Points : 5
    Points
    5

    Par défaut

    Dans mon ancienne équipe, il y avait un morceau de code qui nous a fait marré pendant longtemps et qui me fait marrer encore en y pensant

    On bossait sur des interfaces graphiques SWING et il y avait une correction de bug qui consistait à griser un champ. La correction faite par le développeur, ça marchait correctement. Seulement, on a été intrigué par le gris qui était légèrement différent que les autres champs. On est allé voir dans le code et la fou rire général, ça donné ça :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    JTextField textField = new JTextField();
    
    // Passage du text field à non éditable.
    textField.setEditable(false);
    
    // Mais comme le text field actif, il n'est donc pas grisé, alors on change la
    //couleur du champ!!
    textField.setBackground(Color.GRAY);

  11. #71
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2008
    Messages : 495
    Points : 267
    Points
    267

    Par défaut

    Code :
    1
    2
    3
    4
    5
    6
    7
    $req_sql = "SELECT parrain FROM membres WHERE id=$id";
    $req = mysql_query($req_sql);
    while ($row = mysql_fetch_assoc($req))
    {
         $varparrain = $row["parrain"];
    }
    mysql_free_result($req);
    C'était le seul moyen que j'avais pour lancer une requête ...
    Codez toujours en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

  12. #72
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : mars 2004
    Messages : 624
    Points : 635
    Points
    635

    Par défaut

    Je viens de tomber à l'instant sur ce code :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    try {
        try {
            ...
        } catch (TrucException e) {
            throw new VenteException("message") ;
        }
        
        ...
        
        try {
            ...
        } catch (TrucException e) {
            throw new VenteException("message") ;
        }
    
        ...
            
        try {
            ...
        } catch (TrucException e) {
            throw new VenteException("message") ;
        }
    } catch (VenteException e) {
        JournalException ex = new JournalException() ;
        ex.setMessage(e.getMessage) ;
        throw ex ;
    }
    Je pense qu'on peut lever l'exception JournalException directement non ?

  13. #73
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 911
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 39

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 911
    Points : 2 965
    Points
    2 965

    Par défaut

    une state machine avec 70 états, et un bon paquet de transition entre ces derniers.

    a maintenir dans un soft c'est le pied

  14. #74
    Membre éprouvé

    Inscrit en
    janvier 2007
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : janvier 2007
    Messages : 422
    Points : 411
    Points
    411

    Par défaut

    Vu en COBOL: La vraie programmation séquentielle.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    AFFICHAGE DE L'ECRAN ET SAISIE
    
    SI ERREURS DE SAISIE
       AFFICHAGE DE L'ECRAN ET SAISIE
       
       SI ERREURS DE SAISIE
          AFFICHAGE DE L'ECRAN ET SAISIE
         
           SI ERREURS DE SAISIE
              AFFICHAGE DE L'ECRAN ET SAISIE
    
               SI ERREURS DE SAISIE
                  On quitte le programme. 
                  Parce que bon, on a laissé à l'utilisateur quatre chances, non?

  15. #75
    Membre éclairé
    Homme Profil pro Jérémy
    Ingénieur développement logiciels
    Inscrit en
    mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérémy
    Localisation : France

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

    Informations forums :
    Inscription : mai 2005
    Messages : 513
    Points : 390
    Points
    390

    Par défaut

    Citation Envoyé par grunt2000 Voir le message
    Vu en COBOL: La vraie programmation séquentielle.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    AFFICHAGE DE L'ECRAN ET SAISIE
    
    SI ERREURS DE SAISIE
       AFFICHAGE DE L'ECRAN ET SAISIE
       
       SI ERREURS DE SAISIE
          AFFICHAGE DE L'ECRAN ET SAISIE
         
           SI ERREURS DE SAISIE
              AFFICHAGE DE L'ECRAN ET SAISIE
    
               SI ERREURS DE SAISIE
                  On quitte le programme. 
                  Parce que bon, on a laissé à l'utilisateur quatre chances, non?
    je crois que l'on tient un des meilleurs code là ...
    Jérémy
    Ingénieur Conception et Développement

  16. #76
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 13 820
    Points : 24 813
    Points
    24 813

    Par défaut

    Citation Envoyé par Népomucène Voir le message
    Il y a quelques temps, j'ai été appelé pour modifier un programme en VBA (une application Access)
    Manifestement, le mec qui avait codé voulait économiser sur les lignes de code ;
    et plutôt que d'aller à la ligne pour chaque instruction, j'ai eu droit à :
    Code :
    Dim t As Date: Debug.Print "début": t = DateAdd("s", 10, Now()): While t > Now(): Wend: Debug.Print "fini"
    Tous les modules étaient écrits comme ça (la peur des espaces blancs sans doute ).
    Le client était étonné que je mette deux jours à déboguer un truc tout con
    J'ai commencé à tripatouiller du code au début des années 1980, quand les processeurs étaient en 8 bit et la mémoire vive de 1 kilo-octets (oui les p'tits jeunes, vous avez bien lu ! ).

    A l'époque, on programmait en Basic interprété et on utilisait souvent la ligne à multiples instructions séparées par : parce que tout ce qui était écrit dans le programme allait dans la mémoire, notamment je crois me souvenir les numéros de lignes et les commentaires. Du coup on économisait les lignes et quand le programme (ou le bout de programme) fonctionnait, on supprimait les commentaires !

    Je me souviens avoir passé quelques heures à traquer le moindre caractère inutile sur un programme pour qu'il tienne en mémoire !

    Aujourd'hui c'est l'inverse !
    Depuis que j'examine des programmes PHP faits par d'autres, je suis très étonné de voir des paquets de require qui chargent des paramètres et des fonctions inutilement chargés ou lancées dans le contexte où elles se trouvent.
    Un exemple : OBM charge dès le démarrage un tas de paramètres concernant par exemple le calendrier avant même qu'on soit entré dans l'application. Et nous ne nous servons même pas de la fonction de calendrier de ce logiciel !
    Ce serait vraiment plus dur de charger les paramètres du calendrier seulement quand on veut utiliser cette fonction ?

    Et quand dans un programme on a de l'objet, du procédural, des modules ne contenant que des fonctions, d'autres contenant du code actif et des fonctions qui ne seront pas forcément utilisées dans le module où elles se trouvent, du mélange de Perl, PHP, HTML (avec ou sans echo), javascript, CSS... c'est galère pour s'y retrouver.

    Tout ça pour dire que l'extrait cité en tête de ce message vient peut-être d'un dinosaure de l'informatique dans mon genre et qui a gardé de mauvaises habitudes de sa jeunesse.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  17. #77
    Modérateur
    Avatar de Bisûnûrs
    Profil pro Josselin
    Développeur Web
    Inscrit en
    janvier 2004
    Messages
    9 732
    Détails du profil
    Informations personnelles :
    Nom : Josselin
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2004
    Messages : 9 732
    Points : 17 643
    Points
    17 643

    Par défaut

    Bon, c'est peut-être pas le pire que j'ai pu voir, mais voici un exemple de code qui m'a été donné de voir :

    Code :
    formate_code(document.form_sites.ban_code_js_<?php echo $id_ban; ?>,'<scr'+'ipt language="javascript" type="text/javascript" src="<?php echo $chemin; ?>/ban.php?ban=<?php echo $id_ban; ?>&url='+escape(document.form_sites.site_url.value)<?php if (in_array("style",$parametres)) echo "+'&params=id_style%3D'+document.form_sites.choix_style.value"; if (in_array("MB directe",$parametres)) echo "+'&params=bg%3D'+document.form_sites.bg.value+'%26txt%3D'+document.form_sites.txt.value+'%26link%3D'+document.form_sites.link.value"; ?>+'"></scr'+'ipt>');
    Une ligne de 547 caractères.

    Mieux :

    Code :
    onclick="if(confirm('En cliquant sur OK vous ne supprimez que le sous-domaine \''+sous_domaine[f.choix_style.options[f.choix_style.selectedIndex].value]+'\'.\n(Le style \''+f.choix_style.options[f.choix_style.selectedIndex].text+'\' ne sera pas supprim?)\n\n/!\\ ATTENTION /!\\ \n les inscrits que vous avez avec cette marque blanche seront irr?m?diablement perdus !\n\n\nEtes-vous s?r ?')&&confirm('Etes-vous vraiment s?r de vouloir supprimer les marques blanches \''+sous_domaine[f.choix_style.options[f.choix_style.selectedIndex].value]+'\' et tous les inscrits que vous avez g?n?r?s avec celles-ci ?')){document.location='?page=delete_style&domaine='+f.choix_style.options[f.choix_style.selectedIndex].text}">
    Une ligne de 713 caractères.

    Je dois en avoir une qui traine de plus de 800 caractères mais je n'arrive pas à remettre la main dessus.


    Sinon, le pire que j'ai pu voir, c'est des noms de variables/fonctions PHP avec des accents.

    Ah non, que dis-je, c'était juste pour me mettre dans le bain, après il a fallu que ce soit les noms de bases/tables/champs MySQL qui prennent tous les caractères spéciaux et espaces imaginables.

  18. #78
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : avril 2004
    Messages : 265
    Points : 357
    Points
    357

    Par défaut

    Citation Envoyé par phantomass Voir le message
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public interface NombresConstantes {
    
    	/** 0 */
    	int CONST_0 = 0;
    
    	/** 1 */
    	int CONST_1 = 1;
    
    	/** 2 */
    	int CONST_2 = 2;
    
    	/** 3 */
    	int CONST_3 = 3;
    
    	/** 4 */
    	int CONST_4 = 4;
    
    	/** 5 */
    	int CONST_5 = 5;
    
    	/** 6 */
    	int CONST_6 = 6;
    
    	/** 7 */
    	int CONST_7 = 7;
    
    	/** 8 */
    	int CONST_8 = 8;
    
    	/** 9 */
    	int CONST_9 = 9;
    
    	/** 10 */
    	int CONST_10 = 10;
    /* Et ça continue jusqu'à 100*/
    }
    Déjà une une classe de constante pour référencer des nombres entiers, c'est très difficile d'y trouver un intérêt.
    Mais le pire est à venir . C'est l'usage de ces constantes dans le programme.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String[] valeurs = new String[NOMBRE_COLONNE];               
    valeurs[0] = rs.getString("ChampA");                         
    valeurs[1] = rs.getString("ChampB");                         
    valeurs[2] = rs.getString("ChampC");                         
    valeurs[NombresConstantes.CONST_3] = rs.getString("ChampD"); 
    valeurs[NombresConstantes.CONST_4] = rs.getString("ChampE"); 
    valeurs[NombresConstantes.CONST_5] = rs.getString("ChampF"); 
    valeurs[NombresConstantes.CONST_6] = rs.getString("ChampG"); 
    valeurs[NombresConstantes.CONST_7] = rs.getString("ChampH");
    On remarquera l'usage mixte de constante et de nombre pour les indices du tableau.
    Et ca continue de plus belle.
    Code :
    monBean.setChampFoncctionnel("1".equals(valeur.substring(2, NombresConstantes.CONST_3)));
    Dans une même instruction, 3 manières de représenter un nombre.

    Que s'est il passé dans la tête du développeur ?
    Bonjour,

    ça m'a fait rire, j'ai eu le même, mais j'ai eu l'explication, quand on utilise checkstyle (ou d'autres outils surement), on peut interdire l'utilisation de "magic number" (de nombres utilisés en dur, en toutes logique si j'utilise le nombre 32 dans un programme il a une signification et je peux donc lui créer une constante ayant un nom qui ait un sens) mais certains développeurs ne comprenant pas pourquoi ils ont une erreur (ou un warning) et a qui on n'a pas expliqué les principes de bases de la qualité de codes font ce genre d'abbérations.

    C'est de la qualité pour faire plaisir à l'outil => on abouti à l'inverse d'un code de qualité.

  19. #79
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 911
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 39

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 911
    Points : 2 965
    Points
    2 965

    Par défaut

    vu en fortran77 (code que j'ai vite corrigé quand je suis tombé dessus) des saut dans des étiquette à l'intérieur de blocs.

    on me pardonnera la syntaxe ça fait longtemps que je n'en ai pas fait


    imaginez que votre code tombe sur un else sans le if associé.....


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
       
          <quelque part>
           goto Etiq
       
    
          < plein de code entre les deux histoire de ne pas le voir tout de suite> 
    
    
             if X = Y THEN
    etiq      
                 Traitement           
             Else
    etiq2       
                Traitement2
             endif

  20. #80
    Expert Confirmé
    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    1 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 1 688
    Points : 2 942
    Points
    2 942

    Par défaut

    Citation Envoyé par CinePhil Voir le message
    Tout ça pour dire que l'extrait cité en tête de ce message vient peut-être d'un dinosaure de l'informatique dans mon genre et qui a gardé de mauvaises habitudes de sa jeunesse.
    D'après le client, il s'agit d'un programmeur "jeune" (<30 ans !)
    qui a depuis émigré au Vietnam pour monter sa boîte de développement là-bas
    Aux dernières nouvelles, il refuse d'assurer la maintenance à distance de son application.
    Je me demande bien pourquoi
    ·· −· −−· ·· ·−· ··− −− ·· −− ··− ··· −· −−− −·−· − ·
    · − −·−· −−− −· ··· ··− −− ·· −− ··− ·−· ·· −−· −· ··
    D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
    First, make it work. Then, make it fast. Finally, make it user-friendly.
    Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •