Fermer la notification
Kosminea est un site communautaire de partage et d'échanges autour de nombreux sujets.
En vous inscrivant, vous pourrez participer aux discussions, personnaliser votre profil, naviguer sans publicité, et proposer vos propres fiches pour partager vos centres d'intérêt.
Fermer la notification
Pour vous permettre de profiter au mieux de Kosminea, nous utilisons des cookies. En navigant sur ce site, vous en acceptez l'usage.
Pour plus d'infos, cliquez ici.

Dis-voir ! Tes "joies" du code

Discussion dans 'Technologies de l'Information & Communication' démarrée par cill, 13 Mars 2013.

Publicité

  1. cill
    Hors-ligne

    cill Matière noire

    Inscrit:
    3 Mars 2012
    Messages:
    1.838
    Un certain moteur de recherche vous aidera à savoir qui l'a écrit..

    Il l'a demandé: aussitôt dit, aussitôt fait.

    Ce topic est un moyen d'exprimer les pires/bon code que vous ayez vu ou que vous aviez écrits.
    Faites partager vos liens, vos astuces, vos conseils sur ces petits codes, c'est ici que ça se passe.

    En aucun cas, ce topic ne sert de résolution de problème et, dans ce cas, veuillez créer un nouveau topic lié à votre problème.


     
  2.  
  3. Dareen
    Hors-ligne

    Dareen Nébuleuse Mister Kosminea

    Inscrit:
    1 Mars 2012
    Messages:
    2.744
    Au boulot on a racheté une boite. Forcément c'est bibi qui s'y colle et qui a dû faire une jolie intégration sur le code existant.
    Le code ? Non, du caca en barre, un petit extrait approchant :
    Code:
    <table>
    
    
    
                                      <tr><td nowrap>XXXX
    </td>
      
    
                </tr>
    Ou :
    Code:
    <font color="#FFFFFF"><strong><i>TITRE</i></font></strong>
    Et tant qu'à faire des jolies variables telles que :
    $curry --> Curry ? WHAT !
    Des jolis tableaux comme $tab1 et $tab2, merci les titres explicites
    Et des affichages de données SQL telles que : echo $row[46] (nan mais va y que je te sors un mysql_fetch_row sur 50 champs)

    Les premières fois où je suis entré dans le code c'était folflorique. Et je ne vous parle pas du design qui est un tableau dans un tableau dans un tableau dans un tableau etc.. impossible à débuger.
     
    cill aime ceci.
  4. cill
    Hors-ligne

    cill Matière noire

    Inscrit:
    3 Mars 2012
    Messages:
    1.838
    Voici une de mes expériences.

    Voici mon code pourri pour généré la fréquence que je veux (fais en langage C):
    Cette chose devait me permettre de générer 40kHz sur une broche de mon microcontrôleur.
    C'est ce que j'appelle "la beauté de la laideur"==> c'est moche mais ça marche :3

    Code:
    /*
    This function is used to generate 40KHz
    */
    void generate40KHz() {
        pin_on();
        pin_off();
        pin_on();
        pin_off();
        pin_on();
        pin_off();
        pin_on();
        pin_off();
        pin_on();
        pin_off(); 
    }
     
    void pin_off() {
        set_GPIO_off(...);
    /*Those next instructions do nothing but 1 clock each*/
        Nop();
        Nop();
        Nop();
        Nop();
        Nop();
        Nop();
    }
     
    void pin_on() {
        set_GPIO_on(...);
    /*Those next instruction do nothing but 1 clock each*/
        Nop();
        Nop();
        Nop();
        Nop();
        Nop();
        Nop();
    }
     
    
    Édité 13 Mars 2013
    J'avoue que c'est tellement plus simple avec des variables explicites.
    Les titi, toto, tutu, tata et autres joyeuseté...non merci.

    J'ai même vu une fonction qu'il l'appelait "gogo" pour lancer une autre fonction.
    Au début, c'est rigolo sauf qu'il le fais appel plusieurs fois (><').

    Du coup la personne je l'ai surnommé: http://fr.wikipedia.org/wiki/Inspecteur_Gadget
     
  5. ManOnDaMoon
    Hors-ligne

    ManOnDaMoon Matière noire Admin Kosminea Modo TIC

    Inscrit:
    2 Février 2012
    Messages:
    1.796
    Pendant ma dernière année d'école d'ingé, j'ai pu participer à la maintenance du site web de la FédéGN (Fédération Française des Jeux de Rôles Grandeur Nature), des gens très sympa mais qui n'ont vraiment pas eu de bol avec leurs précédents développeurs.
    Leur site : http://www.fedegn.org

    On a essayé de nettoyer un peu, mais c'est le travail d'une vie.

    Rien que pour l'exemple, on peut afficher la source et voir, tout en bas
    HTML:
    </div>
    </body>
    </html><h1></h1>
    Sans parler du MVC avec la vue "générée" à la volée dans le contrôleur.
     
    cill et Dareen aiment ceci.
  6. Dareen
    Hors-ligne

    Dareen Nébuleuse Mister Kosminea

    Inscrit:
    1 Mars 2012
    Messages:
    2.744
    En effet je viens de voir sur firebug le beau h1 à la fin, c'est quand même... étonnant :p Y'a même un css qui se nomme "styles/elfe35.css", ça sent le geek :p
     
  7. Krssst
    Hors-ligne

    Krssst Matière noire

    Inscrit:
    13 Mars 2012
    Messages:
    325
    Bah, il faut adapter sa manière de coder à ce qu'on veut. C'est pas joli, mais pour ce genre de choses où on souhaite juste avoir un petit programme pour faire ce qu'on veut pour jeter après, le but c'est juste d'arriver le plus vite possible et avec le plus de cheveux possible au résultat. Sinon on se retrouve à passer 3h à coder un bidule qui servira 30 minutes. En tout cas ce que tu as fait ne me choque pas plus que ça :)
     
  8. ManOnDaMoon
    Hors-ligne

    ManOnDaMoon Matière noire Admin Kosminea Modo TIC

    Inscrit:
    2 Février 2012
    Messages:
    1.796
    cill et Krssst aiment ceci.
  9. Dareen
    Hors-ligne

    Dareen Nébuleuse Mister Kosminea

    Inscrit:
    1 Mars 2012
    Messages:
    2.744
    Code:
    marypoppins = (superman + starship) / god; 
    T'es sérieux ? XD
    Je vais m'en inspirer afin de faire un cadeau d'adieu le jour où je partirai de ma boite.

    Tient j'ai une petite question pour vous, vos variables comme vous les initialisez ?
    - Avec un espace entre le égal et les variables (EX: $var = 1; )
    - Sans espace entre le égal et les variables (EX :$var=1; )
     
  10. whyktor
    Hors-ligne

    whyktor Polymère

    Inscrit:
    6 Octobre 2012
    Messages:
    537
    Pour l'initialisation avec espace pour ma part.
     
  11. Krssst
    Hors-ligne

    Krssst Matière noire

    Inscrit:
    13 Mars 2012
    Messages:
    325
    Avec un espace. De même, un espace entre les opérateurs aussi, sauf les parenthèses et sauf quand j'ai l'impression que c'est mieux sans ou que j'oublie.

    Je sais pas, sans espace ça paraît juste moche. Puis, mettre des espaces permet de séparer les choses à vue d'œil sans avoir à parcourir méticuleusement chaque ligne.

    Après, autant l'espace à l'affectation ça me paraît être un acquis, autant je pense que les débats sur "if (" ou "if(" (je préfère le second : pour moi une paire de parenthèses entourée d'espaces c'est une expression ; les parenthèses du if sont des éléments obligatoires et n'ont pas le même sens que des parenthèses d'expression. Ceux qui préfèrent le premier choix doivent penser le contraire), le retour à la ligne ou non avant une ouverture de bloc et autres joyeusetés peuvent occuper beaucoup de gens très longtemps pour pas grand chose. Le tout c'est que tout le monde dans le projet soit d'accord :)
     
  12. ata555
    Hors-ligne

    ata555 Matière noire Yéti

    Inscrit:
    1 Mars 2012
    Messages:
    363
    Un mix des deux... $var= 1;

    Mes codes sont assez moches, mais je m'améliore...
     
  13. cill
    Hors-ligne

    cill Matière noire

    Inscrit:
    3 Mars 2012
    Messages:
    1.838
    Dans les moments de révision et surtout quand j'ai vraiment péter un plomb :

    Rien à voir avec du code mais ce type d'erreur je l'ai vu de nombreuse fois sur l'environnement virtuel que je bossais
    Code:
    problem in line: "brain = learnMoreForEnergy();"
    $system-B-Body, access violation, reason=stackOverflow, nerve address = 17654368XXXX10020XXXXX,
    Person=00000000000B0D1, PS=0000001B
     
    Want to reset ?(Yes/No) NO ! ! ! ! !
    Reset Accomplished
    $"..."
     
  14. ManOnDaMoon
    Hors-ligne

    ManOnDaMoon Matière noire Admin Kosminea Modo TIC

    Inscrit:
    2 Février 2012
    Messages:
    1.796
    Avec espace. C'est une habitude prise après avoir été forcé à suivre les normes de code de mon école, et personnellement je trouve ça plus lisible.
    De même pour les accolades qui sont toutes seules isolées sur une ligne dans mon code. J'ai vraiment du mal à distinguer les blocs lorsque je vois
    Code:
    if (true) {
        return true;
    } else {
        return false;
    }

    SI on suit ton raisonnement, il ne faudrait pas non plus d'espace entre la parenthèse fermante et le "else" :ange:
     
  15. Krssst
    Hors-ligne

    Krssst Matière noire

    Inscrit:
    13 Mars 2012
    Messages:
    325
    Accolade fermante tu veux dire ? Les accolades délimitent des blocs ; elles n'ont rien à voir pour moi avec des parenthèses.
    Pour moi, c'est saut de ligne avant et après les accolades ouvrantes et fermantes, sauf en cas de "else" (je le mets alors après l'accolade fermante (et avec un espace, évidemment)). Après, y en a qui préfèrent ne pas revenir à la ligne avant l'accolade ouvrante ; là encore le débat peut durer longtemps :)
     
  16. Jean-michel
    Hors-ligne

    Jean-michel Matière noire

    Inscrit:
    9 Mai 2012
    Messages:
    84
    Une façon de faire des conditions toute bête que j'avais trouvé génial

    PHP:
    $i == && $jeanpierre 'Dominique';
     
    cill, Krssst et whyktor aiment ceci.
  17. Dareen
    Hors-ligne

    Dareen Nébuleuse Mister Kosminea

    Inscrit:
    1 Mars 2012
    Messages:
    2.744
    Les gars je vous aime. De la même manière j'ai l'habitude de mettre des espaces afin de bien comprendre le code, mais ce n'est pas le cas de mon chef. Lui ne met pas d'espace et du coup son code est parfois difficile à suivre malgré qu'il soit bon. Et quand celui ci vient faire quelques modifs dans mes applis 100% perso j'aime pas ça du tout :p Vous aussi vous ne supportez pas quand les autres viennent taper dans votre code pour y mettre un gros caca ? :p

    Et comment tu fais lorsque tu as une concaténation ? Regarde :
    Code:
    $var = 'salut';
    $var.= 'pierre';
    C'est quand même plus lisible que :
    Code:
    $var= 'salut';
    $var.= 'pierre';
    Non ? ^^

    Jean-michèle, je n'arrive pas à comprendre ton code :p
    En fait si i est à 0, $jeanpierre aura comme valeur Dominique ? Quitte à choisir je préfère ça comme syntaxe :
    PHP:
    $jeanpierre = ($i == 0) ? 'Dominique' NULL;
    Ça permet d'initialiser une variable que la condition soit bonne ou fausse ^^ (par contre j'ai lu que cette syntaxe semble être plus gourmande en ressource à haute dose que le if classique, de même que le case, à vérifier).
     
  18. Krssst
    Hors-ligne

    Krssst Matière noire

    Inscrit:
    13 Mars 2012
    Messages:
    325
    Pour la concaténation, l'espace ne fait pas tout :
    Code:
    $a = "manger";
    $a .= "manger";
    Après, rien n'interdit de mettre deux espaces avant le premier égal.

    Pour le code de Jean-michel, l'idée est que dans un &&, on évalue d'abord la première condition, et si elle est fausse, pas besoin d'évaluer la seconde condition. Une affectation retourne la valeur affectée, et j'imagine que ça gêne pas PHP d'assimiler une chaîne de caractères à un booléen.
    Donc
    Code:
    $i == 0 && $jeanpierre = "Dominique"; 
    va tester si "$i == 0" est vrai. Si ce n'est pas vrai, alors de toutes façons la condition est fausse donc pas besoin d'évaluer "$jeanpierre = Dominique;". Si c'est vrai, pour avoir la valeur de l'ensemble (le et logique des deux conditions ; au cas où le deuxième membre serait faux), il faut évaluer "$jeanpierre = "Dominique";". Ça va retourner quelque chose, qui va être considéré comme vrai ou faux par PHP, mais de toutes façons la valeur finale de la condition nous importe peu : on souhaitait juste que l'affectation sur $jeanpierre soit effectuée quand $i avait pour valeur zéro, et c'est ce qui se passe.

    Oui, c'est à vomir :)
     
  19. ata555
    Hors-ligne

    ata555 Matière noire Yéti

    Inscrit:
    1 Mars 2012
    Messages:
    363
    Si xD
    Ça fait un moment que je n'ai plus dû concaténer "à la PHP", j'ai sans doute perdu l'habitude de mettre l'espace avant...
     
  20. Jean-michel
    Hors-ligne

    Jean-michel Matière noire

    Inscrit:
    9 Mai 2012
    Messages:
    84



    C'est tout à fait ça.
    Pour info je l'ai vu la première fois dans un code minifier en javascript que j'ai du modifier...​
    C'est très souvent utilisé pour les codes compressés.​
     
  21. cill
    Hors-ligne

    cill Matière noire

    Inscrit:
    3 Mars 2012
    Messages:
    1.838
    Ah je comprends un truc : Le compilateur interprète toujours sur la première condition à gauche (quelque soit le langage utilisé) ?
     

Partager cette page