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

C++ Discussion :

Règle de codage chez google


Sujet :

C++

  1. #61
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Sans parler de "faire bouger google", en discuter, et critiquer éventuellement, peut avoir comme impact d'éviter que des telles règles soient reconduites dans un environnement où elles seraient encore moins appropriées, simplement parce que "si google fait comme ça, ça doit être bien"
    c'est à dire, dans des endroits où on est susceptibles de travailler

  2. #62
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Sans parler de "faire bouger google", en discuter, et critiquer éventuellement, peut avoir comme impact d'éviter que des telles règles soient reconduites dans un environnement où elles seraient encore moins appropriées, simplement parce que "si google fait comme ça, ça doit être bien"
    Je crois effectivement que c'est ça le plus important: il faut se rendre compte que même les plus grands ne sont pas à l'abri d'une erreur, à tel point qu'un auteur bien connu a fait dire à un de ses héros:
    je suis plus intelligent que les autres, mes erreurs n'en sont que plus graves
    Oui, de grosses boites font des choses qui peuvent ne pas être bonnes, oui de grands noms peuvent proposer des solutions qu'ils ne devraient pas (le coup de la boucle for( ; ; ) ), ...

    Débattre de ces "inepties" (même si le terme est peut être un peu fort, il faut l'avouer) permet de faire évoluer les mentalités à tous les niveaux, et c'est le principal
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #63
    screetch
    Invité(e)
    Par défaut
    ca fait de nombreuses fois que je lis "nivellement par le bas" dans ce genre de discussion et il me semble souvent qu'on crie au loup pour pas grand chose. La vous vous scandalisez (ne niez pas, même que vous vous moquez) et prenez des gens (inconnus...) de haut pour critiquer leurs intentions potentielles. Vos critiques sont en fait remplies d'extrapolations sur un document dont on ne connait ni l'auteur, ni les cibles, ni les conditions d'applications. OK pour debattre, mais au moins sur du concret... la j'avais plutot l'impression que vous ressassez de vieilles rancoeurs en prenant ce document a témoin.

    Et si vous ne travaillez pas a google, pourquoi voulez vous donc qu'ils adoptent vos regles de codage a vous? j'ai du mal a suivre cela...

  4. #64
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par screetch Voir le message
    ca fait de nombreuses fois que je lis "nivellement par le bas" dans ce genre de discussion et il me semble souvent qu'on crie au loup pour pas grand chose. La vous vous scandalisez (ne niez pas, même que vous vous moquez) et prenez des gens (inconnus...) de haut pour critiquer leurs intentions potentielles. Vos critiques sont en fait remplies d'extrapolations sur un document dont on ne connait ni l'auteur, ni les cibles, ni les conditions d'applications.
    Il n'y a aucune extrapolation, juste une constatation de fait:

    Quand on lit que google demande de ne pas utiliser un constructeur mais plutôt une fonction init, c'est un fait.

    Le résultat est un "nivellement vers le bas" qui incite les gens à écrire du C with classes au lieu d'appliquer le principe du RAII, et de tous les avantages qu'il apporte.

    Quand on lit que google demande de ne pas utiliser les exceptions, c'est aussi un fait.

    On ne nie absolument pas qu'une telle décision puisse avoir été justifiée à une certaine époque, mais, maintenant, elle n'a plus lieu d'être, et, encore une fois, elle permet à des développeurs de se passer d'un pan entier des possibilités du langage.

    Encore une fois, il s'agit donc bel et bien... d'un nivellement vers le bas, vu que tout est fait pour que cela permette à tous les développeurs qui sont de se "complaire" dans leur ignorance, sans essayer de s'améliorer.

    Nous avons la chance d'utiliser un langage très riche et permettant énormément de choses.

    Nous sommes conscients (du moins, je le suis personnellement) que cela apporte autant d'avantages que d'inconvénients, ne serait-ce que ce que l'on gagne en souplesse d'utilisation en le perd assez facilement en "risques potentiels" parfois très bien cachés.

    Mais, quand on voit la facilité avec laquelle il est possible de créer des applications au moins aussi merdiques avec les langages qui ne proposent pas ces possibilités, et qu'il est tout à fait possible de trouver (pas forcément chez google, mais dans d'autres boites, petites ou grandes, utilisant principalement ces autres langages) des règles de codages qui "castrent" le développeur un tant soit peu consciencieux, on ne peut s'empêcher d'estimer que leu seul résultat probant de cette "castration" est... de ne surtout pas inciter le développeur à s'améliorer.

    On peut (on devrait) bien sur se poser la question de savoir pourquoi tant de développeurs méconnaissent un langage que beaucoup prétendent pourtant maitriser (et je ne parle, malheureusement, pas seulement de C++), mais une chose est certaine: les règles que l'on critique ne font rien pour arranger les choses.
    OK pour debattre, mais au moins sur du concret... la j'avais plutot l'impression que vous ressassez de vieilles rancoeurs en prenant ce document a témoin.
    Il n'y a pas la moindre rancoeur (du moins dans mon chef) à y voir: il y a une critique de "l'immobilisme" de la politique d'une boite qui a le malheur d'être connue et... de présenter un document critiquable
    Et si vous ne travaillez pas a google, pourquoi voulez vous donc qu'ils adoptent vos regles de codage a vous? j'ai du mal a suivre cela...
    On apprécierait qu'ils adaptent leur règles de codage, simplement parce que c'est un document qui risque de... faire référence sous prétexte que "si google les utilise, elles sont forcément bonnes".

    Or, si on est globalement d'accord avec la plupart, il y en a d'autres qui... démontrent au mieux une connaissance "obsolète", au pire, une méconnaissance du langage de la part de celui qui les a écrite, voir une vaine tentative de permettre à toute personne incompétente de faire du boulot plus ou moins acceptable.

    Plutôt que d'accepter que les gens "passables" se complaisent dans leur état, une telle société (comme toute société d'ailleurs) devrait au contraire tenter de tirer ses collaborateurs vers le haut en les incitant à s'améliorer, quitte à dégraisser ceux qui refusent obstinément de le faire

    Au final, nous arriverions peut-être à redorer le blason du développeur et à faire en sorte que les sociétés ne se basent plus uniquement leur recherche de développeurs parmi les bac +5 ou bac +10 pour un simple "pisseur de code".
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #65
    screetch
    Invité(e)
    Par défaut
    tu extrapoles. tu parles de "google" comme si les secrétaires étaient tenues de réspecter ce style de codage aussi.

  6. #66
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    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 : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Je pensais que plusieurs points de cette convention n'étaient valables que pour les anciennes applications et les applications basées sur ces anciennes applications, par sur les toutes nouvelles applications.

    Il faudrait quelqu'un (plusieurs personnes séparées dans l'idéal) de chez google pour nous dire comment ça se passe concretement au niveau du C++ surtout (si ils ont le droit d'en parler du moins).

  7. #67
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    tu extrapoles. tu parles de "google" comme si les secrétaires étaient tenues de réspecter ce style de codage aussi.
    Moi je lis ça :


    C++ is the main development language used by many of Google's open-source projects. As every C++ programmer knows, the language has many powerful features, but this power brings with it complexity, which in turn can make code more bug-prone and harder to read and maintain.

    The goal of this guide is to manage this complexity by describing in detail the dos and don'ts of writing C++ code. These rules exist to keep the code base manageable while still allowing coders to use C++ language features productively.
    Another issue this guide addresses is that of C++ feature bloat. C++ is a huge language with many advanced features. In some cases we constrain, or even ban, use of certain features. We do this to keep code simple and to avoid the various common errors and problems that these features can cause. This guide lists these features and explains why their use is restricted.
    Non, clairement, le type qui a écrit ce document n'aime pas le c++ moderne

  8. #68
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Il n'y a aucune extrapolation, juste une constatation de fait:

    Quand on lit que google demande de ne pas utiliser un constructeur mais plutôt une fonction init, c'est un fait.

    Le résultat est un "nivellement vers le bas" qui incite les gens à écrire du C with classes au lieu d'appliquer le principe du RAII, et de tous les avantages qu'il apporte.

    Quand on lit que google demande de ne pas utiliser les exceptions, c'est aussi un fait.
    Je suis d'accord cependant cela peut-être discutable

    -les exceptions n'interceptent pas toujours les "plantages" notamment s'il y a un effet de bord
    -cela risque de ralentir les performances ( notamment pour un jeu vidéo comme l'ont précisé mes prédecesseurs)
    -par contre niveau lisibilité et code constructif/hiérarchisé c'est mieux


    Pour le constructeur d'une classe/méthode init() c'est vrai que c'est un peu faire du C wih classes
    Le petit avantage d'une méthode init c'est que c'est plus lisible.
    Et puis le gros inconvénient du méchanisme d'appel du constructeur c'est qu'il est appelé quand on n'en a pas envie...
    par exemple si je déclare une classe "sur la pile" dans une fonction, le constructeur de la classe va être appelé obligatoirement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void FonctionQuelconque()
    {
    MaClasse classe;//<- appel implicite du constructeur. Et si on ne veut pas ?
     
    }

  9. #69
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    A mon avis avant de critiquer ces regles de codage , il faut au moins récupérer un code source d'un projet de google et voir la qualité du code et le résultat de l'application de ces regles.

    si par exemple vous scruter le code source du browser chrome, le constat est que le code est clean , trés clair, bcp de design pattern sont utilisés et pour le RAII ils ont un mécanisme plus poussé pour gérer la mémoire qui apporte plus de clarté et augmentation de perf, et je trouve d'ailleurs dommage qu'on ne peut pas isoler leur system de GC dans une dll a part pour l'utiliser dans d'autres projets.

    et pour moi le nivellement vers le bas c'est lorsqu'on fixe la barre très haut et que personne n'arrive a sa hauteur sauf peut etre un guru ou 2 dans l'équipe ce qui engendre un code quasiment illisible.

  10. #70
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    par exemple si je déclare une classe "sur la pile" dans une fonction, le constructeur de la classe va être appelé obligatoirement
    C'est, en effet, le but du constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void FonctionQuelconque()
    {
    MaClasse classe;//<- appel implicite du constructeur. Et si on ne veut pas ?
     
    }
    Prenons le cas contraire: une classe pour laquelle un constructeur ne prenant pas d'argument n'a aucun sens:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Person
    {
        public:
            /* pas de constructeur défini... un constructeur est ajouté par défaut
             * ... il est tout à fait normal d'avoir un personne dont 
             * le nom et le prénom prennent la valeur de... "", n'est-ce pas ?
             */
            void init(std::string const & n, std::string const & f)
            {
                /* Pour éviter d'en arriver à renommer Jean Dupont en
                 * Jules Durant, on est maintenant obligé... de tester
                 * la cohérence de la tentative d'initialisation :-P
                 */
                if(name_=="" && firstname_="")
                {
                    name_=n;
                    firstname_=f;
                }
                else
                {
                    throw allreadyInisalized(); // mince, c'est vrai... 
                                                // pas d'exceptions
                }
            }
        private:
            std::string name_;
            std::string firstname_;
    };
    Il est clair que la fonction init simplifie tout, hein
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  11. #71
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    si par exemple vous scruter le code source du browser chrome, le constat est que le code est clean , trés clair, bcp de design pattern sont utilisés et pour le RAII ils ont un mécanisme plus poussé pour gérer la mémoire qui apporte plus de clarté et augmentation de perf, et je trouve d'ailleurs dommage qu'on ne peut pas isoler leur system de GC dans une dll a part pour l'utiliser dans d'autres projets.
    Si leur "mécanisme plus poussé" est un GC comme tu as l'air de dire alors ... sa va juste faire couler encore plus d'encre :').
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  12. #72
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par DesignFirst Voir le message
    et pour moi le nivellement vers le bas c'est lorsqu'on fixe la barre très haut et que personne n'arrive a sa hauteur sauf peut etre un guru ou 2 dans l'équipe ce qui engendre un code quasiment illisible.
    Justement, ca c'est l'effet inverse: un nivellement (tout aussi honteux que l'autre, d'ailleurs) vers le haut... surtout s'il est dans la politique de la maison de virer systématiquement toute personne incapable de s'adapter dans un délais donné

    Le nivellement vers le bas, ca consiste à permettre à des gens qui ne sont réellement pas compétents (quelle que soit l'origine de leur incompétence) de croire qu'ils sont capables d'écrire un code correct et "bullets proof", même si la seule expérience du langage qu'ils ont est le fait d'avoir suivi un cours ou un tuto (dont il faut avouer que la qualité moyenne est plutôt basse, même si on en rencontre quelques bons, parfois, presque par hasard ).

    Si tu n'incite pas les gens à s'initier à des techniques trop rarement vues en cours, et trop rarement correctement expliquées dans les tutos que l'on peut trouver, comment veux tu avoir la moindre chance de les faire évoluer
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  13. #73
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Goten Voir le message
    Si leur "mécanisme plus poussé" est un GC comme tu as l'air de dire alors ... sa va juste faire couler encore plus d'encre :').
    C'est pas moi qui le dis cherche juste V8 GC et tu trouveras plus de détail sur le sujet. c'est parmi les facteurs que google met en avant pour expliquer la rapidité et la robustesse de leur moteur JavaScript.

    et t'a raison on va pas entrer dans un debat de GC , ca se terminera jamais
    mais c'était juste pour dire qu'ils ont un mécanisme qui gere la memoire qui marche trés bien et on va pas les reprocher un nivellement vers le bas parce qu'ils n'utilisent pas RAII.

  14. #74
    screetch
    Invité(e)
    Par défaut
    Si chrome a un code C++ moderne, c'est bien que les regles de codage citées plus haut:
    - soit n'entrave pas la qualité de codage
    - soit ne sont simplement pas appliquées
    c'est un peu ce que je critique: on fait beaucoup de bruit ici sur un document dont on ne connait rien.

    Je vois mal les gens prendre ce document en exemple car il est franchement difficile d'accès; c'est pas le premier pequenot venu qui va aller le trouver sur le net.

    j'ai l'impression que ce fil de discussion se bat contre des moulins a vent...

  15. #75
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par screetch Voir le message
    c'est un peu ce que je critique: on fait beaucoup de bruit ici sur un document dont on ne connait rien.

    j'ai l'impression que ce fil de discussion se bat contre des moulins a vent...
    c'est, de manière générale, le cas d'à peu près tous les débats qui se déroulent sans qu'une personne ayant autorité pour répondre ne prenne part à la disucssion (et, de manière quasi systématique lorsqu'il s'agit de confronter des idées dans le domaine de l'informatique )

    Mais, si ce débat permet à ne serait-ce qu'une personne de se faire un avis sur les règles qu'il devrait (faire) appliquer dans son équipe, ce sera déjà ca de gagné
    Si chrome a un code C++ moderne, c'est bien que les regles de codage citées plus haut:
    - soit n'entrave pas la qualité de codage
    Il serait déjà possible de se "friter" rien que sur cette phrase...

    Qu'appelle tu "qualité de codage"

    Est-ce, simplement, la facilité avec laquelle "les autres" arriveront à relire un code qu'ils n'ont pas écrit, ou insères tu dans ce critère de qualité la facilité (ou le niveau de difficulté) que l'on rencontre pour obtenir un résultat rendu difficile par les règles de codages

    Dans le premier cas, les seules règles de "mise en forme" suffisent, dans l'autre, je serais tenté de dire que, justement ces règles nuisent à la qualité de codage
    - soit ne sont simplement pas appliquées
    J'ai le sentiment très net que, chez google, ils seraient tout à fait capables de "tirer à vue" sur tout document qui ne les respecte pas
    Je vois mal les gens prendre ce document en exemple car il est franchement difficile d'accès; c'est pas le premier pequenot venu qui va aller le trouver sur le net.
    Tu serais bien surpris

    Il n'est pas particulièrement difficile à trouver, et tu peux compter sur pas mal de gens pour suivre le raisonnement contre lequel je mets en garde plus haut:
    c'est forcément le mieux en la matière, vu que c'est google qui les a mises au point
    car, comme je l'ai déjà dit, même les plus grands sont capables de dire des bêtises
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  16. #76
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    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 : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Il n'est pas particulièrement difficile à trouver
    En fait, il a même été mis en avant au moins deux fois via des news sur Slashdot et autres relais d'informations "geek" et programmation.

  17. #77
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par DesignFirst Voir le message
    C'est pas moi qui le dis cherche juste V8 GC et tu trouveras plus de détail sur le sujet. c'est parmi les facteurs que google met en avant pour expliquer la rapidité et la robustesse de leur moteur JavaScript.
    Pour moi, c'était plus le fait que tout le code javascript soit compilé en natif (jit) qui expliquait les performances de V8.

    et t'a raison on va pas entrer dans un debat de GC , ca se terminera jamais
    mais c'était juste pour dire qu'ils ont un mécanisme qui gere la memoire qui marche trés bien et on va pas les reprocher un nivellement vers le bas parce qu'ils n'utilisent pas RAII.
    Javascript (le langage) impose un GC (aucun moyen de faire autrement). Donc c'est logique que V8 contienne un GC. Ca ne veut pas dire que tous les objets utilisés dans le code de Chrome soient garbage collectés, et qu'il faut se passer de RAII.

    Pour le reste, je n'ai pas l'impression que Chrome soit au-dessus des autres en terme de stabilité/robustesse/nombre de bugs (ce qui, à mon avis, serait un des meilleurs arguments en faveur de ces règles de codage).

    Enfin, j'ai parcouru rapidement le code de chromium, peut-être que ce que j'y ai vu n'est pas représentatif, mais j'y trouve les mêmes écueils que dans tout le code que je vois d'habitude :
    - aucun contrats
    - noms de fonction parfois stupide (par exemple, Order pour une fonction de compariason)

    En revanche, il m'a l'air relativement bien documenté (plus que toutes les règles de codage, c'est probablement ça qui fait qu'il est clair et accessible).

  18. #78
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Non, clairement, le type qui a écrit ce document n'aime pas le c++ moderne
    Perso j'en fais parti...
    Après ça vient certainement du fait que je fais du calcul scientifique et qu'il faut avoir une limite très ferme à l'OO. A trop en mettre on perd la lisibilité des equations, de la problématique qu'on traite (et surtout l'optimisation). A ne pas en mettre on perd de la flexibilité. Il faut placer un curseur.

    Par contre là où les règles de prog de google préconisent de ne pas utiliser alloca, ben moi j'en ai super besoin...

    Mais comme je disais dans mon premier message: ces règles ne me choquent pas tant qu'elles sont consistantes entre elles.

    Pour finir je pense que:
    Ce n'est pas parce que tu as une voiture qui peut rouler à 200km/h que tu dois rouler en toutes circonstances à 200km/h.
    Sauf si tu es tout seul sur autoroute. Mais dans le cas cité (développement en équipe) il faut donc des règles pour que tout le monde circule sans danger, et arrive sein et sauf. (130km/h c'est bien).

  19. #79
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    ah non, pas consistantes, cohérentes

    Bah ce qu'on essaye juste de dire c'est que à faire des normes de codages sévères, on s'empêche d'aller à 200 km/h quand on en a besoin..

  20. #80
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Après ça vient certainement du fait que je fais du calcul scientifique et qu'il faut avoir une limite très ferme à l'OO.
    C++ modern ne veut pas dire OO (j'ai même envie de dire, au contraire).
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2008, 14h24
  2. Règles de codage PHP
    Par muslem dans le forum Langage
    Réponses: 5
    Dernier message: 18/09/2007, 18h08
  3. Les règles de codages
    Par gege2061 dans le forum gtksdl
    Réponses: 0
    Dernier message: 17/06/2007, 21h46
  4. Outil pour règles de codage C/C++
    Par pofet dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 05/06/2007, 08h46
  5. [Question]Règle de codage pascal dfm et class?
    Par QAYS dans le forum Delphi
    Réponses: 2
    Dernier message: 18/04/2007, 11h00

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