19 708 Pages

Code Spaghetti
Une plaque de spaghetti est inextricablement liée, d'où le nom code spaghetti.

Code Spaghetti Il est un terme péjoratif pour code source de ceux programmes pour ordinateur qui ont un la structure de contrôle du flux complexe et / ou incompréhensible, avec une utilisation exagérée et incorrecte de aller à, exceptions, fil et d'autres constructions branchement (Les circuits de contrôle non structurées).[1][2]

Son nom dérive du fait que ces types de code ont tendance à ressembler à une assiette de spaghetti, ou un tas de fils tordus et nouées.

le code spaghetti est un exemple de anti-modèle.

exemple

Le programme suivant est un exemple trivial de code spaghetti en BASIC. Elle imprime à l'écran la suite des nombres de 1 à 10 et à leur place. Remarquez comment les instructions de "GOTO« Introduire une dépendance sur les numéros de ligne de programme, et comment le flux d'exécution des sauts d'une zone imprévisiblement à l'autre. Dans la pratique, les programmes réels événements de code spaghetti sont plus complexes et peuvent augmenter considérablement les coûts de le maintien d'un programme.

  10 faible la
  20 la = 0
  30 la = la + 1
  40 si la <= 10 puis goto 70
  50 imprimer « Programme a pris fin. »
  60 fin
  70 imprimer la  "Squared ="  la * la
  80 goto 30

Voici un code équivalent échantillon écrit avec un style de programmation structurée:

 fonction carré(la)
     carré = la * la
 fin fonction  
 faible la
 pour la = 1 à 10
     imprimer la  "Squared ="  carré(la)
 suivant
 imprimer « Programme a pris fin. »

Ce programme effectue également des sauts, mais dans ce cas, il est prévisible et formalisées bonds. En effet, le cycle pour et fonctions définir structure de contrôle standardisés, alors que les instructions goto encourager l'utilisation de flux de contrôle arbitraires.

notes

  1. ^ (FR) Quel est le code spaghetti?, stackoverflow.com, 28 octobre 2010. Récupéré le 28 Septembre 2016.
  2. ^ (FR) spaghetti code, gnu.org, Avril / mai 1992. Récupéré le 28 Septembre 2016.

Articles connexes

liens externes

fiber_smart_record Activités Wiki:
Aidez-nous à améliorer Wikipedia!
aller