Shell, programmation spaghetti ?

Salut,

peut-on considéré la programmation shell comme de la programmation spaghetti? ou je suis complètement dans le champs.

[quote=“deby”]Salut,

peut-on considéré la programmation shell comme de la programmation spaghetti? ou je suis complètement dans le champs.[/quote]

En bash, on peut faire des fonctions, localiser des variables etc… donc, si je ne me trompe sur le qualificatif, se passer de spaghetti.

Ceci dit, en tant que pastafarien, je tiens à dénoncer cet usage péjoratif et limite malveillant de la métaphore nouillesque! nah ! (Vendredi)

[quote=“josephtux”]Ceci dit, en tant que pastafarien, je tiens à dénoncer cet usage péjoratif et limite malveillant de la métaphore nouillesque! nah ! (Vendredi)[/quote]Pas de prosélytisme on a dit!!! :005 :whistle: :005

:006

[quote=“josephtux”][quote=“deby”]Salut,

peut-on considéré la programmation shell comme de la programmation spaghetti? ou je suis complètement dans le champs.[/quote]

En bash, on peut faire des fonctions, localiser des variables etc… donc, si je ne me trompe sur le qualificatif, se passer de spaghetti.

Ceci dit, en tant que pastafarien, je tiens à dénoncer cet usage péjoratif et limite malveillant de la métaphore nouillesque! nah ! (Vendredi)[/quote]

ha,ha! C’était une question naïve, je croyais que la distinction était importante entre structuré et spagh. Je comprends un peu ce que vous voulez dire, faut pas faire de discrimination ou encore, oui, de prosélytisme ou d’élitisme parce que derrière tout ces terme technique, il y a des humains. Mais, tout de même, je connais pas assez ça pour pouvoir faire ma propre critique, comme vous vous semblez le faire.

[quote=“deby”]Salut,

peut-on considéré la programmation shell comme de la programmation spaghetti? ou je suis complètement dans le champs.[/quote]

Oui complètement dans le champs, la programmation spaghetti n’est pas réservé à un ou plusieurs langages :

fr.wikipedia.org/wiki/Programmation_spaghetti

Même si certains langage peuvent faciliter cela, chose que je n’ai jamais vue pour l’heure en ada ou en pascal qui en générale applique une certaine rigueur.

De ce que je comprend, c’est qu’il y a une façon de faire du code structuré, avec des règlements préétablies et qu’aussi tôt qu’on s’en éloigne on se rapproche du code spaghetti?

Donc, que le code spaghetti c’est plus un résultat qu’une méthode particulière de codage?

[quote=“deby”]Donc, que le code spaghetti c’est plus un résultat qu’une méthode particulière de codage?[/quote]C’est plutôt le résultat d’une méthode de codage… :think: :whistle: :think:
(tout dépend du langage… des fois on peut pas faire autrement… mais bon…)

Au fait… tout ce que vous codez… au final… une fois “converti” en “code machine”, ça ressemble à une grosse orgie de spaghetti… nan? :005 :whistle: :005
(bon… on va dire que c’est dredi très tard hein… :005 :016 :005 )

:006

[/quote]C’est plutôt le résultat d’une méthode de codage…[/quote]

D’une méthode de codage qui s’éloigne de ça méthode structuré? :think:

Sur wiki ils disent un style d’écriture qui favorise l’apparition du syndrome du plat spaghetti(on auras tout entendu)dois-je en déduire que c’est un choix volontaire d’écrire du code de cette façon, dans un objectif précis. mélanger tout l’monde?

sinon, c’est quoi l’intérêt?

Bonne fin de semaine bande de nouilles :laughing: :016

Le code spaghetti c’est de mon point de vue le résultat d’un développement non-réfléchi et réactif. Un truc bricolé par plusieurs personnes, avec de la réparation de bug à l’arrach’ sans prendre le temps d’analyser, de l’ajout de fonctionnalité non moins à l’arrach’, mène à un système de plus en plus difficile à appréhender et à structurer. À la fin ça devient une boite noire quasi-impossible à faire évoluer sans casser quelque chose.

Le lien en bas de page de fr.wikipedia.org/wiki/Programmation_spaghetti est sympa et explique pas mal l’environnement qui peut mener de tels symptômes.
fr.wikipedia.org/wiki/Grande_boule_de_boue

J’ai été amené à travailler sur un bout de code comme ça en perl de 5000 lignes avec 2000+ lignes mortes (je ne sais plus s’il y avait des fonctions), où il fallait rajouter des bouts pour tester la validité de fichiers obtenus par une autre méthode. Le code d’origine avait été écrit par un stagiaire dans un but d’automatisation, il a été ensuite sabré à la va-vite pour faire de la vérification, pas des non-professionnels du développement logiciel (comme la plupart des bricoleurs dans mon ancienne boite). Bien entendu il fallait faire ça très vite, du fait de délais de livraison, et tout le monde se foutait éperdument du comment pourvu qu’il n’y ait pas d’erreur. Ça m’a occupé 6 mois, sur le coup ça m’avait plu d’essayer de comprendre la « logique » du truc pour rajouter des bouts, pas forcément très beaux. Perl a tellement de petits trucs pour coder vite que ça dérape très vite et que le code devient illisible : du coup il faut prendre du recul, comprendre le principe et les grandes étapes, savoir où gratter pour améliorer le truc, tout en essayant d’en garder un minimum le contrôle. Ensuite je suis parti en mission (j’étais content aussi :smiley:).

Bonjour,

A propos de goto, une recherche de "goto\ " (sans les guillemets mais avec l’échappement et l’espace) sur Debian Code Search renvoit 8254 paquets sources concernés soit 35% des paquets sources actuellement dans sid.

Par exemple, un seul goto dans apt (uniquement la version 1.2) pour un test mais plusieurs goto dans dpkg (bas niveau). Un seul type de goto dans synaptic (uniquement la version 0.83) mais plusieurs goto dans gnome-software (haut niveau)…
goto.txt (93.9 KB)