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 :

Pourquoi le C++ est un langage plus adapté pour les débutants que le C ? [Tutoriel]


Sujet :

C++

  1. #121
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    (HS @Neckara Pour explicit, à lire : C++11 - Les opérateurs de conversion explicites)

  2. #122
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Points : 3 892
    Points
    3 892
    Par défaut
    Oui, je comprends ce point de vue...

    Moi aussi, je cherches désespérément un outil qui transforme mes diagrammes uml en code, me prépare le café et me l'apporte avec un petit gateau et un sourire

    Mais, si on oublie le café, le gâteau et le sourire, bouml est pas si mal dans son genre
    C'est l'uml qui ne me convient pas, il est bien plus limité que ne l'est le C++11.
    Et si une machine doit coder à ma place, où est le plaisir , sachant qu'il y a fort à parier que le code en sortie soit totalement en opposition avec mon style.

    Pourtant, si tu t'y prends correctement, la conception (de tes classes comme de tes algorithmes) devrait pouvoir être de "traduction automatique"...

    Peut être t'y prends tu simplement pas "correctement"
    Même chose. L'uml est limité.

    Mais il y a des décision de conceptions qui ne sont pas forcément opportunes et que le compilateur ne pourra pas vérifier (cf la discussion sur LSP que j'ai déjà citée )
    Il n'y a que deux solutions en sortie de mon approche (c'est à dire en appliquant les principes dont j'ai parlé) : ça compile donc le code est robuste, ça ne compile pas donc il est faible. Les seules erreurs restantes sont les erreurs de logiques (toujours pour éviter le HS : on ne peut pas en dire autant du C :-°).

    Je ne fais pas d'abord la conception ensuite le code, je fais le code par remodelages successifs. C'est une approche comme une autre, critiquable certes ^^, mais qui a l'avantage d'exploiter réellement le multi-paradigme et les outils du C++ voire même d'en faire un art (oui, la beauté du code ça se travaille par remodelage).

    Rien n'est figé dans le code.

  3. #123
    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
    Citation Envoyé par iolco51 Voir le message
    N
    En revanche je pense qu'un bon programmeur doit apprendre à des débutants à écrire des bons tests, pas toi?

    Je pense que des debutants doivent apprendre a exprimer ce qu'ils ont besoin d'exprimer avant d'aprendre a tester ce qu'ils ont fait.
    Autrement dit, pas au tout debut, mais plutot quand on leur a appris a designer des interfaces (de code j'entends).


    Concernant l'article dont tu as mis le lien, tu noteras que les remarques de Carmack ne vont pas dans ton sens...

    Citation Envoyé par John Carmack
    I do think "good C++" is better than "good C" from a readability standpoint, all other things being equal.
    Mais cela dis il ne parlait pas exactement du sujet dont il est question ici donc je trouve que ce lien n'apporte pas grand chose a la discussion a part pointer que l'auteur de l'article (et donc de Dayad) n'a pas eu une education ideale des languages C++ et C.......

  4. #124
    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 germinolegrand Voir le message
    Je ne fais pas d'abord la conception ensuite le code, je fais le code par remodelages successifs. C'est une approche comme une autre, critiquable certes ^^, mais qui a l'avantage d'exploiter réellement le multi-paradigme et les outils du C++ voire même d'en faire un art (oui, la beauté du code ça se travaille par remodelage).

    Rien n'est figé dans le code.
    J’ai un peu la même approche itérative sur la réalisation du code. Néanmoins, tu te rends compte que ce sont bien les principes acquis que tu appliques : à chaque fois que tu fais une itération / refactorisation, c’est parce que dans ton code, le respect de certains principes laissait à désirer, et qu’au fur et à mesure il devient bon de nettoyer et réorganiser tout ça. Il faut aussi savoir être modéré : je ne mets pas sur le même plan une violation du LSP (pendu en place publique !) à une petite violation du SRP (ce sera 100 lignes et on en parle plus). C’est d’ailleurs le reproche principal que je pourrai faire à SOLID : à vouloir faire un acronyme qui fait classe, on met sur le même plan, sans notion d’ordre, des principes qui ne sont pas tous égaux en terme de conséquences. Pas sûr que ce soit si productif que ça.

    Au final, avec l’expérience, le respect des principes est bon dès le départ, et les itérations extrêmement limitées. Et ce sans formaliser forcément la conception du code (ça ne veut pas dire qu’elle n’a pas eu lieu, avant le codage vient toujours une grosse réflexion).

    Et je te rejoins parfaitement sur les limites d’uml et l’inadéquation de l’outil. Au final, ça va aussi vite d’écrire un bon vieux .h pour décrire l’interface (et doxygen a la gentillesse de me générer de l’uml avec ça pour les collègues qui y tiennent ).

  5. #125
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Points : 3 892
    Points
    3 892
    Par défaut
    à chaque fois que tu fais une itération / refactorisation, c’est parce que dans ton code, le respect de certains principes laissait à désirer
    hum, c'est le seul point sur lequel je diffère peut-être sachant que si je refais du code c'est parce ça m'empêche de coder aisément la suite, j'essaie toujours de respecter l'intégralité de mes principes dès le début (oui, ça c'est inapplicable avec les principes de conception, c'est pour ça que mes principes directeurs sont des principes techniques applicable en codant et non en analysant).

    Et le LSP, bah... instinctivement je tend plus à respecter et intégrer le SRP (dont je vois bien l'intérêt même dans mon approche) que le LSP qui m'intéresse finalement assez peu.

  6. #126
    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 germinolegrand Voir le message
    Et le LSP, bah... instinctivement je tend plus à respecter et intégrer le SRP (dont je vois bien l'intérêt même dans mon approche) que le LSP qui m'intéresse finalement assez peu.
    Je ne sais pas comment tu fais pour faire de l’héritage correct si tu ne te soucies pas de LSP.

    Note que tu n’es pas tout seul : les libs y compris standard java et .net sont truffées de cas de rupture de LSP (les langages eux-mêmes en ont !), mais ça engendre inévitablement des problèmes, parfois pénibles à corriger .

  7. #127
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Points : 3 892
    Points
    3 892
    Par défaut
    Comme déjà dit... ça n'empêche pas le LSP d'être vérifié au final, c'est juste que je ne m'en préoccupe pas quand je code .

  8. #128
    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 nickyla Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public setIngredientPrincipal(Ingredient ingredientPrincipal)
    {
      this.ingredientPrincipal = ingredientPrincipal / 2;
    }
    Et ça ne te pose pas de problème d’avoir une fonction menteuse ? (le nom dit une chose, le code en fait une autre).

    Moi, si…

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut
    Citation Envoyé par germinolegrand Voir le message
    C'est l'uml qui ne me convient pas, il est bien plus limité que ne l'est le C++11.
    L'UML n'est jamais qu'un moyen de permettre aux gens de se passer l'information

    C'est perfectible, mais il ne faut pas non plus essayer de lui faire faire des choses pour lesquelles il n'est pas prévu

    Personnellement, j'utilise volontiers la méthode qui consiste à décrire très précisément ce que je veux, en expliquant chaque terme qui mérite de l'être en plus d'un nom ou d'un verbe.

    A partir de là, je pars du principe qu'un nom est un type et un verbe est une fonction

Discussions similaires

  1. Le langage Java est-il adapté pour les jeux vidéo ?
    Par Invité dans le forum Développement 2D, 3D et Jeux
    Réponses: 637
    Dernier message: 05/02/2021, 22h38
  2. Quel langage est le plus adapté pour faire ce script ?
    Par koKoTis dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 15/08/2006, 19h00
  3. Langage le plus adapté pour une application SGBD multiplateforme ?
    Par diarbenn dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 27/07/2006, 11h19
  4. langage le + adapté pour XML ?
    Par heleneh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 07/09/2005, 18h08

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