• [^] # Re: tout lu mais

    Posté par (site web personnel) . En réponse au journal 50 mauvais conseils de codage pour développeur C++. Évalué à 4.

    Je trouve pas gênant le fait de proscrire le goto. Ça pousse à ne s'en servir que dans des cas où tu en a réellement besoin.

    Je pourrais être d'accord si les goto étaient encore utilisé comme ils l'étaient dans les années 60s, c'est à dire par des personnes venant de l'asm qui utilisaient goto, comme on utilise les jmp en assembleur. pour exprimer le code flow du programme.

    le truck, c'est que goto a déjà une mauvaise réputation, et je voie vraiment pas quelqu'un faire un goto, la ou il pourrait faire un if, ou une boucle.
    Avec un langages moderne (C++90, ou GNU C) on peu utiliser des mécanisme de RAII/defer ou autre, ce qui rend goto encore moins utile même pour gérer des erreurs.

    Mais a coté de ça, j'ai vu plein de gents faire de la gestion d'erreur catastrophique en C, par peur des goto.
    Je trouve aussi que le goto again a aussi un coté plus "code auto-documenté" qu'un do while() quand on veut exprimer des retry dans un programme.

    Donc au final proscrire les goto, je trouve que ça protège pas vraiment des utilisation "sale" de goto, mais en empêche ces utilisation "légitime".

    Les try-catch offrent bien moins de possibilités pour avoir un code spaghetti que des goto.

    ce que je trouve bizarre avec les exceptions, c'est qu'elle évite les pire cotés du goto, elle permettent pas de remonter le flow du programme.

    mais elle ont aussi un des coté spaghettisant que goto n'a pas, car C a évacué ça dans setjmp/longjmp, c'est la possibilité de sauter d'une fonction à une autre.