Code spaghetti

Code spaghetti

Programmation spaghetti

La programmation spaghetti ou code spaghetti sont des termes péjoratifs utilisés en programmation. Ils qualifient des programmes dont le code n'est pas clair et qui font un usage excessif de sauts inconditionnels (voir goto), d'exceptions en tous sens, de gestion des événements complexes et de threads divers. En fait, la programmation spaghetti qualifie tout ce qui ne permet pas de déterminer le qui, le quoi et le comment d'une prise de contrôle par une portion de programme (incompréhension du flux de contrôle).

Cette notion s'applique aussi au niveau du flux de données, c'est-à-dire, à tout ce qui ne permet pas de déterminer le qui, le quoi et le comment d’une modification de données. Cette situation est causée par un usage excessif de couplage fort.

La programmation spaghetti est un exemple d'anti-patron.

Exemple de flux de contrôle spaghetti

L'instruction goto (ou ses équivalents) est souvent responsable de la production de code spaghetti. Elle est souvent utilisée dans les langages comme le BASIC ou l'assembleur (dans ce dernier cas les branchements inconditionnels sont cependant inévitables). L'exemple suivant, qui affiche la liste des entiers compris entre 1 et 10 ainsi que leur carré, est un exemple de code spaghetti en BASIC :

10 i = 0
20 i = i + 1
30 IF i <> 11 THEN GOTO 80
40 IF i = 11 THEN GOTO 60
50 GOTO 20
60 PRINT "Programme terminé."
70 END
80 PRINT i & " au carré = " & i * i
90 GOTO 20

Le même résultat est obtenu par le programme suivant, plus respectueux des principes de la programmation structurée :

10 FOR i = 1 TO 10
20 PRINT i & " au carré = " & i * i
30 NEXT i
40 PRINT "Programme terminé."
50 END

Exemple de flux de données spaghetti

10 in:INTEGER
20 out:INTEGER
30
40 PROCEDURE Square
50    out = in * in
60 END PROCEDURE

Le même résultat est obtenu par le programme suivant, plus respectueux des principes de la programmation structurée :

10 FUNCTION Square( in:INTEGER ):INTEGER 
30    Square = in * in
20 END FUNCTION 

Cas des développements web

Dans les développements web des années 2000 on atteint le paroxysme de la programmation spaghetti : plusieurs langages, plusieurs logiques de flux, mélange des règles de gestion et de la programmation de l'IHM, le tout dans un même programme. Par exemple pour une page web ASP ou ASPX on a:

  • Jusqu'à 5 langages (JavaScript + ASP Script + VBScript pour la programmation et HTML + CSS pour la description)
  • Deux logiques de déroulement du programme (séquentielle et événementielle).
  • Mélange complet de la programmation des règles de gestion du métier et des règles techniques de gestion de l'IHM.

L'impact sur la maintenabilité des programmes est négatif.

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Programmation spaghetti ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Code spaghetti de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Spaghetti code — is a pejorative term for source code which has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other unstructured branching constructs. It is named such because program flow tends to look like a… …   Wikipedia

  • spaghetti — ● n. péj. ►ARGOT Dans l expression code spaghetti , code à la structure complexe et entremêlées, due à une trop grande utilisation de goto et d exceptions. Le code kangourou existe aussi, car il contient beaucoup de sauts. Le développement al… …   Dictionnaire d'informatique francophone

  • Spaghetti (disambiguation) — Spaghetti may refer to:* Spaghetti, a long thin form of pasta * Spaghetti (film), a 1916 film starring Oliver Hardy * Spaghetti tree, a famous BBC 1957 parody stating spaghetti grew on trees * Spaghetti squash * Spaghetti code, a term used to… …   Wikipedia

  • Spaghetti — is a long, thin, cylindrical pasta of Italian origin. [spaghetti. Dictionary.com. Dictionary.com Unabridged (v 1.1). Random House, Inc. http://dictionary.reference.com/browse/spaghetti (accessed: June 03, 2008).] A variety of pasta dishes are… …   Wikipedia

  • Code Impénétrable — Le code impénétrable d un programme informatique est un code dont la compréhension est très difficile pour un humain tout en restant parfaitement compilable par un ordinateur. Appelé aussi assombrissement ou obfuscation, cette technique de… …   Wikipédia en Français

  • Code impenetrable — Code impénétrable Le code impénétrable d un programme informatique est un code dont la compréhension est très difficile pour un humain tout en restant parfaitement compilable par un ordinateur. Appelé aussi assombrissement ou obfuscation, cette… …   Wikipédia en Français

  • Code impénetrable — Code impénétrable Le code impénétrable d un programme informatique est un code dont la compréhension est très difficile pour un humain tout en restant parfaitement compilable par un ordinateur. Appelé aussi assombrissement ou obfuscation, cette… …   Wikipédia en Français

  • Code Red (DVD Company) — Code Red Type DVD Distribution Company Industry Home video Products DVD Website …   Wikipedia

  • Spaghetti strap — Bridesmaid dress with spaghetti straps A spaghetti strap (also called noodle strap) is a very thin shoulder strap used in clothing, such as camisoles, crop tops, cocktail dresses, and evening gowns, so named for its resemblance to the thin pasta… …   Wikipedia

  • Spaghetti with meatballs (programming) — In computer science, spaghetti with meatballs is a pejorative term used to describe a loosely constructed Object oriented system. Much like traditional spaghetti code, the term spaghetti with meatballs is a description of poor coding, usually by… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”