Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 7 sur 25 PremièrePremière ... 3456789101117 ... DernièreDernière
Affichage des résultats 121 à 140 sur 496
  1. #121
    Invité de passage
    Profil pro Yoann Cerda
    Inscrit en
    novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Yoann Cerda

    Informations forums :
    Inscription : novembre 2009
    Messages : 4
    Points : 1
    Points
    1

    Par défaut

    Je suis en école d'informatique, et après 3 mois de C, un gars m'a montré un bout de code qui ne fonctionnait pas.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void my_putchar(char c)
    {
        write(1, &c, 1);
    }
    
    int main()
    {
        my_putchar('Joyeux noel');
        return (0);
    }
    Il s'est demandé pourquoi tout le monde a rigolé.

  2. #122
    Inactif
    Inscrit en
    février 2003
    Messages
    4 342
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 4 342
    Points : 3 958
    Points
    3 958

    Par défaut

    Citation Envoyé par jpelaho Voir le message
    Juste pour réagir par rapport à ce genre de code que je ne trouve pas si idiot que ca. Genre if(true) ou if(1).

    Il m'est déjà arrivé de faire ca dans mon code. La raison c'est qu'il ya effectivement un test qui doit être mis à ce niveau, je fais le test mais il s'avère que ce n’est pas le bon test alors je l'enlève mais sans supprimer l'instruction if (cela me permet de me rappeler cela plus tard en voyant un "if" qui n'a pas de sens dans le code).

    Bien entendu pour faire une release, il faut enlever le test ou le corriger. Mais ca peut souvent aider de laisser ca dans un code de façon momentané.
    Je préfère, pour ma part, mettre le test en commentaire, et même y ajouter d'autres commentaires afin de rappeler le pourquoi du comment on ne fait plus le test !

  3. #123
    Candidat au titre de Membre du Club
    Inscrit en
    août 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 18
    Points : 11
    Points
    11

    Par défaut

    Citation Envoyé par Gastiflex Voir le message
    A la fac j'ai été en binôme sur un projet avec quelqu'un qui avait réécrit la fonction malloc, car celle de base n'était pas assez "optimisée".
    Ca m'avait bien fait rire.
    C'est pas faux. Malloc est lent. De l'autre côté, il faut être capable de le recoder...

    Citation Envoyé par Gastiflex Voir le message
    On appréciera :
    - le fait de réécrire des fonctions standard
    - le fait de les réécrire DEUX fois
    - l'ordre des paramètres inversé par rapport à la fonction standard
    - cette magnifique façon d'écrire un while dans la première fonction
    La seule chose que je peux défendre c'est le fait de réécrire des fonctions standards : certaines ont des défauts (comme par exemple ne pas tester les pointeurs) ce qui est TRES gênant quand tu cherches un segfault que jamais tu n'irai chercher dans une fonction "officielle" à laquelle tu fais confiance.

  4. #124
    Nouveau Membre du Club
    Inscrit en
    décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : décembre 2007
    Messages : 62
    Points : 26
    Points
    26

    Par défaut Plus mathématiques que code, mais bon

    Un des bouts codes m'ayant fait le plus rire après reprise d'un soft, c'est un calcul de moyenne (en Pascal):

    Code :
    1
    2
    3
    4
    If (pointA.X < pointB.X) then
      moyX:= pointA.X + (pointB.X - pointA.X)/2
    else
      moyX:= pointB.X + (pointA.X - pointB.X)/2;

    ce qui est évidement la même chose (moyX:= (pointA.X + pointB.X)/2 ), seulement quand c'est répété plusieurs fois (en X et en Y aussi), ça devient vite très lourd à lire.

    avec des choses aussi du genre (où maval est un boolean)
    Code :
    1
    2
    3
    4
    if (maval=true) then
      maval:= false
    else
      maval:= true;

  5. #125
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 908
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 38

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 908
    Points : 2 688
    Points
    2 688

    Par défaut

    Citation Envoyé par Daestrik Voir le message
    La seule chose que je peux défendre c'est le fait de réécrire des fonctions standards : certaines ont des défauts (comme par exemple ne pas tester les pointeurs) ce qui est TRES gênant quand tu cherches un segfault que jamais tu n'irai chercher dans une fonction "officielle" à laquelle tu fais confiance.
    Il est souvent plus simple de les encapsuler et de contrôler les paramètres plutôt que de les réécrire.

  6. #126
    Candidat au titre de Membre du Club
    Inscrit en
    août 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 18
    Points : 11
    Points
    11

    Par défaut

    Citation Envoyé par jabbounet Voir le message
    Il est souvent plus simple de les encapsuler et de contrôler les paramètres plutôt que de les réécrire.
    Certes, mais dans le cas d'un strcpy ça reste raisonnable.

  7. #127
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro Arnaud Feltz
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Nom : Homme Arnaud Feltz
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 7 966
    Points
    7 966

    Par défaut

    Une fois j'ai eu droit à un super :

    Code SQL :
    UPDATE champ1 = champ1 FROM uneTable

    Je me suis toujours demandé son utilité (surtout en dehors de toute transaction ...)
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  8. #128
    Inactif
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 894
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 894
    Points : 4 365
    Points
    4 365

    Par défaut

    Citation Envoyé par Arnaud F. Voir le message
    Je me suis toujours demandé son utilité (surtout en dehors de toute transaction ...)
    Déclencher un trigger et/ou une procédure stockée, peut-être ?

  9. #129
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro Arnaud Feltz
    Développeur COBOL
    Inscrit en
    août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Nom : Homme Arnaud Feltz
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : août 2005
    Messages : 5 183
    Points : 7 966
    Points
    7 966

    Par défaut

    Citation Envoyé par Mac LAK Voir le message
    Déclencher un trigger et/ou une procédure stockée, peut-être ?
    J'ai vérifié, t'en fais pas, y a pas
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  10. #130
    Inactif
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 894
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 894
    Points : 4 365
    Points
    4 365

    Par défaut

    Citation Envoyé par Arnaud F. Voir le message
    J'ai vérifié, t'en fais pas, y a pas
    Alors on va dire qu'à une époque lointaine, il y en a eu une, qu'elle a disparu mais pas le code de déclenchement... L'autre hypothèse étant nettement insultante pour le codeur, c'est forcément la première solution, n'est-ce pas ?

  11. #131
    Rédacteur
    Avatar de Tofalu
    Homme Profil pro Christophe Warin
    Technicien maintenance
    Inscrit en
    octobre 2004
    Messages
    9 502
    Détails du profil
    Informations personnelles :
    Nom : Homme Christophe Warin
    Âge : 31
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : octobre 2004
    Messages : 9 502
    Points : 29 627
    Points
    29 627

    Par défaut

    Citation Envoyé par Mac LAK Voir le message
    Déclencher un trigger et/ou une procédure stockée, peut-être ?
    Peut être aussi de vérifier que champ1 respecte toujours une contrainte ou bien de vérifier que le jeu d'enregistrements est updatable. Des raisons, on peut toujours en trouver à posterori, mais est ce qu'il y en avait une sur le moment ?
    Ce message vous a été utile ? Si oui, cliquez sur

  12. #132
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 908
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 38

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 908
    Points : 2 688
    Points
    2 688

    Par défaut

    personellement je vais pencher pour l'hypothèse de mac lak.

    Ceci dit j'ai aussi vu des procédures stockées lancer des exception (Division par zéro) pour sortir en cas d'erreur.

  13. #133
    Inactif
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 894
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 894
    Points : 4 365
    Points
    4 365

    Par défaut

    Citation Envoyé par jabbounet Voir le message
    Ceci dit j'ai aussi vu des procédures stockées lancer des exception (Division par zéro) pour sortir en cas d'erreur.
    J'ai vu ça aussi en C++ : des boucles cassées par des levées d'exception volontaires au lieu d'un simple break... Ou des exceptions levées en traitement nominal (= à chaque appel), le code utile étant dans le catch et la gestion des erreurs dans le try...

  14. #134
    Membre habitué
    Inscrit en
    mars 2007
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 135
    Points : 100
    Points
    100

    Par défaut en c

    if (test);
    {
    code
    }

    C'est bête mais on peut mettre du temps à le voir

  15. #135
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 908
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 38

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 908
    Points : 2 688
    Points
    2 688

    Par défaut

    Citation Envoyé par inconnu652000 Voir le message
    if (test);
    {
    code
    }

    C'est bête mais on peut mettre du temps à le voir
    c'est balot, perso je l'ai vu sur des boucles for

    Code :
    1
    2
    3
    for ( ....) ;
       quelquechose
    ou une variante

    Code :
    1
    2
    3
    4
    for ( ....) 
       quelquechose;
       quelquechose d'autre qui devrais aussi etre dans la boucle;
    comme quoi c'est une bonne habitude de mettre systématiquement des accolades sur les boucles.

  16. #136
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : mars 2006
    Messages : 7
    Points : 11
    Points
    11

    Par défaut

    je suis tombé là dessus aujourd'hui... personnellement je trouve que ça pique un peu les yeux. Le pire c'est que l'appli est bourré de truc du même genre
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (MaClass.maFonction(string1, result) == 0)
    	if (MaClass.maFonction(string2, result) == 0)
    		if (MaClass.maFonction(string3, result) == 0)
    			if (MaClass.maFonction(string4, result) == 0)
    				if (MaClass.maFonction(string5, result) == 0)
    					if (MaClass.maFonction(string6, result) == 0) == 0)
    						if (MaClass.maFonction(string7, result) == 0)
    							return false;
    return true;

  17. #137
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    février 2005
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : février 2005
    Messages : 297
    Points : 271
    Points
    271

    Par défaut

    Citation Envoyé par jabbounet Voir le message
    ou une variante

    Code :
    1
    2
    3
    4
    for ( ....) 
       quelquechose;
       quelquechose d'autre qui devrais aussi etre dans la boucle;
    comme quoi c'est une bonne habitude de mettre systématiquement des accolades sur les boucles.
    J'ai souvent croise ça aussi il y a quelques mois, sur quelques lignes de code comme c'est le cas ici, c'est assez simple a voir, beaucoup moins quand c'est au milieu de pages et de pages de code du même style (souvent mal indente forcement)... Moi qui ai l'habitude de toujours utiliser les accolades

  18. #138
    Membre Expert
    Inscrit en
    juillet 2006
    Messages
    1 537
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 1 537
    Points : 1 788
    Points
    1 788

    Par défaut

    Citation Envoyé par Mac LAK Voir le message
    J'ai vu ça aussi en C++ : des boucles cassées par des levées d'exception volontaires au lieu d'un simple break... Ou des exceptions levées en traitement nominal (= à chaque appel), le code utile étant dans le catch et la gestion des erreurs dans le try...
    Il y a des gens qui en ont fait un style en java. La programmation par exceptions. Selon eux, c'est génialissime, mais je suis pas franchement convaincu.

  19. #139
    Invité régulier
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : Suisse

    Informations forums :
    Inscription : octobre 2009
    Messages : 13
    Points : 5
    Points
    5

    Par défaut

    Citation Envoyé par OWickerman Voir le message
    Le genre de truc que je déteste en PHP, l'utilisation abusive des echo...
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	<?php
    			include ('fonction.inc');
    			titre('Pièces justificatives');
    		echo "<table border='0' width='95%' CELLPADDING='1' align='center' class='txt_tab_tarif'>";
    		echo "<tr><td colspan='2'>";sstitre('Joindre les pièces justificatives suivantes');echo "</td></tr>";
    		echo "<tr><td colspan='2'>(<b>photocopie</b> obligatoirement):</td></tr>";
    		echo "<tr><td colspan='2'>&nbsp;</td></tr>";
    		echo "<tr><td><img src='img/puce2.gif'></td><td>Photocopie du justificatif d'adresse (Eau, EDF...)</td></tr>";
    		echo "<tr><td valign='top'><img src='img/puce2.gif'></td><td>Photocopie de l'avis d'imposition ".(date('Y')-2)." ou ".(date('Y')-1)." (si vous êtes imposable)<br> OU photocopie de la dernière notification de la CAF (".date('Y')." avec le quotient familial)</td></tr>";
    		echo "<tr><td><img src='img/puce2.gif'></td><td>Cachet de l'établissement scolaire pour les primaires, maternelles et collégiens dans le cadre réservé à cet effet.</td></tr>";
    		echo "<tr><td><img src='img/puce2.gif'></td><td>Attestation d'inscription dans l'établissement scolaire pour les élèves fréquentant un lycée</td></tr>";
    		echo "<tr><td colspan='2'>&nbsp;</td></tr>";
    		echo "<tr><td colspan='2' align='center'><a href='#'><img src='img/b_fermer.gif' border='0' onClick='self.close();'></a></td></tr>";
    		echo "</table>";
    	?>
    Cette page la étant simple, ça va encore... J'en ai de pires :
    Celui ci, par exemple, qui, non seulement abuse des echo, mais en plus essaie de sauvegarder des sauts de lignes....
    Ah, oui, la technique des tableaux dans des tableaux est un truc de fourbe. On devrait pendre les gens qui osent faire ça !
    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
    37
    38
    39
    40
    41
    42
    43
    44
    			echo "<form name='rech_iti' id='rech_iti' method='GET' action='rech_iti_res.php' target='_self'>";
    			echo "<table border='0' width='95%' CELLPADDING='0' align='center' class='txt_tab_tarif'>";
    			echo "<tr><td colspan=2 class='txt_sstitre'>Merci de remplir le formulaire suivant</td></tr>";
    			echo "<tr><td colspan=2 class='txt_sstitre'>&nbsp;</td></tr>";
    			echo "<tr><td>Période de départ souhaité</td><td>";
    			echo "<select name='list_per' class='txt_menu_der' id='list_per'>";foreach($tabperiode as $cle=>$valeur){echo "<option class='txt_menu_der' value='".$cle."'>".$valeur."</option>\n";} 
    			echo "</select>";
    			echo "</td></tr>";
    			echo "<tr><td>Heure</td><td>";echo "<select name='heure' class='txt_menu_der' id='heure'>";for($i=0;$i < 24;$i++){echo "<option class='txt_menu_der' value='".$i."'>".$i."</option>\n";}echo "</select> &nbsp; h &nbsp;&nbsp;";echo "<select name='minute' class='txt_menu_der' id='minute'>";for($i=0;$i <= 59;$i{ echo "<option class='txt_menu_der' value='".$i."'>".$i."</option>\n";}echo "</select>&nbsp;&nbsp;mn";
    			echo "</td></tr><tr><td colspan='2'>&nbsp;</td></tr>";
    			
    			//DEPART
    			echo "<tr><td colspan='2'>";
    			echo "<fieldset style='border:2px solid rgb(191, 191, 191);width: 400px'>";
    				echo "<legend class=txt_sstitre>Départ</legend>";
    				echo "<table border='0' align='center' width='80%' CELLPADDING='0' class='txt_menu_der'>";
    				echo "<tr><td>Commune</td><td>";chmpderoul_noSel_free('list_comm_dep','txt_menu_der',$tabcommune,"onchange=\"go('php_ajax/commune_dep.php','')\"");echo "</td></tr>";
    				echo "<tr><td>Rue</td><td>";chmpderoul_mess_free('list_rue_dep','txt_menu_der',$tabrue_dep,'Choisir une commune',"onchange=\"go('php_ajax/rue_dep.php','')\"");echo "</td></tr>";
    				echo "<tr><td>Station</td><td>";chmpderoul_mess_free('list_station_dep','txt_menu_der',$tabstation_dep,'Choisir une rue',"");
    				echo "<div name='blocdepart' id='blocdepart'><input type='hidden' name='sta_dep' id='sta_dep' value='0'></div>";
    				echo "</td></tr>";
    				echo "</table>";
    			echo "</fieldset></td></tr><tr><td>&nbsp;</td></tr>";
    			
    			//ARRIVEE
    			echo "<tr><td colspan='2'>";
    			echo "<fieldset style='border:2px solid rgb(191, 191, 191);width: 400px'>";
    				echo "<legend class=txt_sstitre>Arrivée</legend>";
    				echo "<table border='0' align='center' width='80%' CELLPADDING='0' class='txt_menu_der'>";
    				echo "<tr><td>Commune</td><td>";chmpderoul_noSel_free('list_comm_arr','txt_menu_der',$tabcommune,"onchange=\"go('php_ajax/commune_arr.php','')\"");echo "</td></tr>";
    				echo "<tr><td>Rue</td><td>";chmpderoul_mess_free('list_rue_arr','txt_menu_der',$tabrue_dep,'Choisir une commune',"onchange=\"go('php_ajax/rue_arr.php','')\"");echo "</td></tr>";
    				echo "<tr><td>Station</td><td>";chmpderoul_mess_free('list_station_arr','txt_menu_der',$tabstation_dep,'Choisir une rue',"");
    				echo "<div name='blocarrivee' id='blocarrivee'><input type='hidden' name='sta_arr' id='sta_arr' value='0'></div>";
    				echo "</td></tr>";
    				echo "</table>";
    			echo "</fieldset></td></tr>";
    			
    			echo "<tr><td colspan='2'>&nbsp;</td></tr><tr><td colspan='2'>&nbsp;</td></tr>";
    			echo "<tr><td colspan='2' align='center'><img src='img/b_rechercher.gif' style='cursor:pointer;' border='0'  onClick='testEtValid(\"rech_iti\");'>";
    			
    			 echo "</td></tr>";
    			echo "</table></form>";
    		?>
    Pour infos, quand on m'a demandé de finaliser le site, j'ai du remettre les pages au propre avant de comprendre ce qui s'y passait...
    Quelle solution élégante pour éviter ce problème au fait ? Car c'est vrai qu'on se retrouve parfois vite avec beaucoup de "echo"...

    Après pour ce qui est de mélanger traitement et HTML, c'est sûr que c'est juste infernal à maintenir ensuite...

  20. #140
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 908
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 38

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 908
    Points : 2 688
    Points
    2 688

    Par défaut

    Citation Envoyé par deadalnix Voir le message
    Il y a des gens qui en ont fait un style en java. La programmation par exceptions. Selon eux, c'est génialissime, mais je suis pas franchement convaincu.
    moi aussi je ne suis pas convaincu

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
  •