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

La taverne du Club : Humour et divers Discussion :

[Tutoriel] L'art de programmer salement

  1. #101
    Membre expert

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

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Citation Envoyé par ManusDei Voir le message
    C'est ton code ?
    Ha ça pourrait. dans ma jeunesse, j'ai dû coder un truc comme ça.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  2. #102
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    C'est moche de balancer ses collègues ! Plus que ce code je pense...
    Vu que le mec se prend pour un expert du code, est hyper désagréable et passe son temps à repasser sur chacun de mes fichiers pour les réécrire selon sa vision du code lisible et performant, je n'ai aucun scrupule.

    Allez, un petit autre juste pour rire :

    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
    17
    18
    <?php
            //.....
       
    	if ((($val['logged'] && $this->auth->isLoggedIn()) || !$val['logged']) &&
            (!isset($val['auth']) || (isset($val['auth']) && ($functions->arrcomp($val['auth'], $auth) || in_array('superadmin', $auth))))) {
            $result[$key] = array();
            $result[$key]['name'] = $this->template->translate($key);
            $result[$key]['key'] = $key;
    
            if (isset($val['menu'])) {
                if (is_array($val['menu'])) {
                    $result[$key]['menu'] = $this->renderMenu($val['menu'], $lang, $auth);
                } else if (substr($val['menu'], 0, 8) == 'callback' && !strstr($_SERVER['REQUEST_URI'], 'api')) {
                    $callback = explode('.', preg_replace('/.*\((.*)\).*/', '$1', $val['menu']));
                    $path = __DIR__ . '/../bundles/' . $callback[0] . '/controllers/' . $callback[1] . '.php';
    
                    //...

  3. #103
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Vu que le mec se prend pour un expert du code, est hyper désagréable et passe son temps à repasser sur chacun de mes fichiers pour les réécrire selon sa vision du code lisible et performant, je n'ai aucun scrupule.
    Ça, plus le type dit fort qu'il est bon, plus c'est suspect.
    Le vrai bon, tu le repères rapidement en voyant toutes les personnes qui passent religieusement à son bureau et parce qu'il ne fait pas particulièrement de bruit (Il est bien occupé et il n'a pas besoin de plus de taf !)
    Aussi, tu le repères quand tu passes sur du code désarmant de simplicité (tu aurais fais ça avec le double de lignes) et où tu y découvres deux-trois fonctionnalités dont tu ignorais l'existence.

  4. #104
    Membre expert

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

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Vu que le mec se prend pour un expert du code, est hyper désagréable et passe son temps à repasser sur chacun de mes fichiers pour les réécrire selon sa vision du code lisible et performant, je n'ai aucun scrupule.
    Voilà on y est. C'est exactement le sujet de ce topic. Des mecs qui pensent faire mieux que les autres... Voire que si c'est pas eux qui on pondu le code, c'est forcément de la merde...
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  5. #105
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Voilà on y est. C'est exactement le sujet de ce topic. Des mecs qui pensent faire mieux que les autres... Voire que si c'est pas eux qui on pondu le code, c'est forcément de la merde...
    Pour sa défense, je pense que le mec est atteint d'un Asperger assez prononcé, et il est donc fort probable que lire 10 instructions imbriquées sur une ligne lui paraisse parfaitement naturel. Le problème, c'est que les gens comme ça, pour être un atout pour l'équipe, ont besoin d'être cadrés. Les avoir comme chef de projet est généralement une très mauvaise idée puisqu'en plus d'avoir une vision très personnelle d'un certain nombre de règles à appliquer et suivre religieusement, ils ne sont pas capable d'imaginer que d'autres personnes puissent penser autrement.

  6. #106
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zecreator Voir le message
    C'est moche de balancer ses collègues ! Plus que ce code je pense...
    Faut être honnête. Quand on bosse dans la programmation, il y a 99.9% de chances que les codes degueulasses que l'on croise viennent de collègues.

  7. #107
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Faut être honnête. Quand on bosse dans la programmation, il y a 99.9% de chances que les codes degueulasses que l'on croise viennent de collègues.
    Du coup, on peste, on gueule, on pourri la gueule de tout le monde, et on annonce qu'on va péter les genoux de celui qui a commis cette atrocité... Avant de tomber dans un silence de mort quand on se rend compte que c'est notre créature, notre chose, notre commit...
    Je ne suis pas mort, j'ai du travail !

  8. #108
    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 056
    Points
    32 056
    Par défaut
    Citation Envoyé par eulbobo Voir le message
    Du coup, on peste, on gueule, on pourri la gueule de tout le monde, et on annonce qu'on va péter les genoux de celui qui a commis cette atrocité... Avant de tomber dans un silence de mort quand on se rend compte que c'est notre créature, notre chose, notre commit...
    Tiens, je ne suis pas le seul à avoir vécu ça.
    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.

  9. #109
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tiens aujourd'hui
    J'avais un cas edge case à reproduire en unit test.
    Du coup je vais chercher le test de base pour le modifier avec le edge case.
    pas moyen de trouver le test de base de la fonctionnalité.
    Je remonte à la fonctionnalité dans l'historique des commits pour voir ce qui a été commit avec, histoire de trouver le test
    pas de test relevant commité avec.
    Mais qui a négligé le test?
    Ha ben c'est moi

  10. #110
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Allez, un petit bout de code sur lequel je suis tombé pour relancer le topic :

    Nom : m71m7x97gf3z.png
Affichages : 568
Taille : 45,8 Ko

  11. #111
    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 056
    Points
    32 056
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Allez, un petit bout de code sur lequel je suis tombé pour relancer le topic
    C'est indenté(semble-t-il correctement, même si ce genre de langage, ça n'est pas ma came, donc je ne suis pas sur), et les rares mots qu'on trouve sont dans une langue identifiable.

    Après, c'est sur, pour avoir la moindre idée de ce que ça fait, c'est plus compliqué. Sur comment, ben un prépare un tableau à renvoyer, on cherche quelquepart dans les données ce qui correspond à la clef data qu'on a entré, et on fait pas mal de recherches derrière. La tuyauterie est lisible. Mais à quoi elle sert???

    Un bel exemple, parce-que je suis sur que l'auteur croit que son truc est lisible. J'ai sans doute commis des trucs de ce genre, moi-même, parfois. On comprend en gros chacune des actions unitaires, et si on sait à quoi ça sert, on peut même sans doute le débogguer. Et c'est là qu'est l'os : "à quoi ça sert???"
    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. #112
    Membre extrêmement actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 104
    Points : 2 573
    Points
    2 573
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Allez, un petit bout de code sur lequel je suis tombé pour relancer le topic :
    Complexité cyclomatique : OVER NINE THOUSAAAAAAAAND !!!
    "If the revolution ain't gon' be televised
    Then fuck, I'll probably miss it" - Aesop Rock

  13. #113
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Le pire programme que j'aie vu est un programme écrit en Adélia 400 (pour ceux qui ne connaîtraient pas c'est un L4G avec des mots clés en Français qui génère du RPG pour AS400).

    Le premier SI était en ligne 10 et le FIN lui correspondant plus de 1.000 lignes plus loin !!! Bien entendu entre les 1.000 lignes il y avait d'autres conditions du même genre.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  14. #114
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 460
    Points : 6 064
    Points
    6 064
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Allez, un petit bout de code sur lequel je suis tombé pour relancer le topic :
    Je viens de m'exercer à analyser ce code.

    $data est un tableau associatif (disons, de type MapAMapBC) qui associe à chaque clé (disons, de type A) un tableau associatif (disons, de type MapBC) qui associe à chaque clé (disons, de type B) une valeur (disons, de type C).
    $search est un tableau de valeurs de type C.

    Premier morceau de code : un foreach :
    Si $search est vide, on inverse les clés et les valeurs de tous les MapBC. Appelons MapCB le type du résultat.
    Si $search est non vide alors, pour chaque MapBC, on regarde les valeurs de type C à la fois présentes dans MapBC et $search. On remplace alors le MapBC par un tableau associatif qui à chaque clé de type C associe un numéro. Dans ce tableau associatif, les valeurs vont de 0 au nombre de clés moins 1.
    Si on suppose que le type final des tableaux transformés ne dépend pas que $search soit vide ou non, alors le type B est un nombre. Du coup, MapBC était en fait le type tableau de C. Donc $data était au départ un tableau associatif de type MapAC. Maintenant, il est de type MapAMapCB.

    Deuxième bloc de code : un if si $data n'a qu'un seul élément (de type MapCB) :
    Visiblement, le type A est un type caractère. Si 'a' est une clé de $data, on prend les valeurs C qu'il contient sous forme de tableau de C. Sinon, on retourne directement le MapCB sans réinverser les clés et les valeurs.

    Troisième morceau de code : le else :
    On cherche tous les C qui sont dans un seul des MapCB de $data. On retourne un tableau associatif qui associe, à chacun de ces C, la valeur 0.

    En résumé :
    $data associe à chaque caractère une valeur de type C.
    $search est un filtre optionnel sous la forme d'un tableau avec des valeurs de type C.
    On retourne les valeurs de type C auxquelles est associé un et un seul caractère de $data. Si $search est non vide, on enlève les valeurs de type C qui ne sont pas présentes dans $search.
    Si on n'entre pas dans le if du $data avec un seul élément, on retourne les valeurs de type C sous la forme d'un tableau associatif étrange qui associe à chacune de ces valeurs de type C le nombre 0.
    Si on entre dans le if du $data avec un seul élément, les valeurs de type C sont retournées sous une forme différente qui dépend si le caractère contenu dans $data est 'a'.

    Bilan :
    La conception semble inexistante, l'implémentation est absurde et il y a un problème de nommage des variables : on ne sait pas ce que chaque variable représente.

  15. #115
    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 056
    Points
    32 056
    Par défaut
    Citation Envoyé par badaze Voir le message
    Le premier SI était en ligne 10 et le FIN lui correspondant plus de 1.000 lignes plus loin !!! Bien entendu entre les 1.000 lignes il y avait d'autres conditions du même genre.
    Si c'est du RPG à l'ancienne en positionnel - et donc avec indentation impossible - j'imagine le carnage.

    Perso, j'ai eu un jour 533 lignes entre un IF et un END-IF en COBOL. Pas si impressionnant, sauf que lors d'une maintenance, mon prédécesseur s'est mélangé sur les indentations. Et plus rien n'était en face. J'ai du imprimer le code en petits caractères pour avoir les 533 lignes sons les yeux et tirer des traits jusqu'à comprendre le souci.
    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.

  16. #116
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Bilan :
    La conception semble inexistante, l'implémentation est absurde et il y a un problème de nommage des variables : on ne sait pas ce que chaque variable représente.
    Bienvenue dans mon quotidien.
    L'app sur laquelle je bosse est bourrée de code comme ça, pas toujours aussi obscur mais il faut à chaque analyser le truc en plusieurs étapes pour tester l'avant-après à cause de variables mal nommées ("final", "data", "temp" ...) et même une qu'on a compris ce que le bout de code fait, il faut encore comprendre pourquoi. Au final je me rends compte que deux bons tiers du code servent à reproduire des fonctionnalités pour lesquelles PHP a des fonctions natives : comparer deux tableaux, parser une url ... avec une bonne quantité de répétitions.
    L'auteur étant autiste, il est pratiquement impossible de discuter avec lui car ça lui semble absurde que son code ne soit pas parfaitement lisible par d'autres personnes, d'après lui tous les pros travaillent comme lui.

  17. #117
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    @el_slapper.

    Adelia est un langage algorithmique (en français) qui gènère du RPG. En RPG j'aurai carrément pété les plombs.
    Je me souviens que j'avais un listing de je ne sais plus combien de pages (imprimé sur une grosse matricielle) et que je reproduisais les indentations sur des feuilles avec des carreaux de 5mm.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  18. #118
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut La "GORET ATTITUDE", un peu d'histoire...
    Les programmes écrits dans les années 60-70 en cobol, étaient contraints par les "performances" machine extrêmement limitées .
    Le code source devait être le plus court possible
    Du coup, il n'y avait jamais de commentaire et les noms des variables et des paragraphes étaient les plus courts possibles.
    Pour la même raison, le code pouvait s'altérer lui même un peu comme en assembleur, grâce à (ou plutôt à cause de) l'instruction "ALTER TO PROCEED" dont le but étaient de modifier les instructions de branchement !
    Et enfin, il n'y avait pas de END-IF, seul le point terminait le IF.

    A cette époque, ce genre de code était donc la norme, "va comprendre Charles" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    P1.
        IF A > 12 AND B1 > B2 GO TO P1 ELSE GO TO P2.
        MOVE CX(T, U) TO CZ(T1, U1).
        
    P2.
        IF B1 > B2  ALTER P2 TO PROCEED TO P3.
    Bien évidemment, il n'existait pas de debogeur et l'espace DATA (la working storage) n'était pas balisé, retrouver les valeurs des variables pour expliquer un plantage n'était donc pas chose aisée
    Et, cerise sur le gâteau, comme le temps machine était très couteux, les développeurs n'avaient droit qu'à 1 compilation par jour !

    Une autre époque, heureusement révolue

  19. #119
    Membre à l'essai Avatar de fabzyr
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    Puis on est d'accord tout doit être écrit en français pour être compréhensible par tous.

  20. #120
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par fabzyr Voir le message
    Puis on est d'accord tout doit être écrit en français pour être compréhensible par tous.

    Non, ça dépend de ton environnement de travail et de la dispersion de tes collègues à travers le monde ou de la langue des clients visés.
    Tant qu'à moi, je préfère lire du français à de l'anglais écrit par des Français, qui est souvent ubuesque - et j'ai un niveau de Français , mais qui vit en terre bilingue.
    Dernière modification par Invité ; 09/11/2018 à 22h39.

Discussions similaires

  1. [Tutoriel] 50 conseils en programmation Flash Actionscript 3
    Par Djug dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 09/03/2012, 11h54
  2. Réponses: 5
    Dernier message: 20/09/2011, 18h15
  3. De l'art de programmer en Perl ou Perl Best Practices
    Par JakoJako dans le forum Livres
    Réponses: 14
    Dernier message: 05/06/2009, 13h15

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