Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Spaghetti Code

Uno stile di programmazione trasandato e l'uso dell'OOP come 'optional' producono codice impossibile da riutilizzare
Uno stile di programmazione trasandato e l'uso dell'OOP come 'optional' producono codice impossibile da riutilizzare
Link copiato negli appunti

L'antipattern Spaghetti Code ("codice a spaghetti") è un problema legato ad un cattivo "stile" di programmazione, in assoluto il più frequente nel caso in cui abbiamo una produzione di codice che, dopo notevoli modifiche, risulta essere di difficile comprensione.

Un'espressione tipica di chi sta per introdurre questo antipattern è: «Lo stile è una perdita di tempo, meglio concentrarci sulla produzione di codice».

Contesto

Ogni progetto concluso necessiterà presto o tardi di modifiche, aggiornamenti o integrazioni, queste
operazioni dovrebbero essere effettuate in modo professionale, cioè, seguendo delle linee guida ben
precise, non improvvisate o lasciate al caso. Sono operazioni molto comuni e frequenti, proprio per
questo possono avere un fortissimo impatto sulla qualità del codice.

In molti casi tali interventi vengono fatti in maniera confusionaria e veloce, il risultato è più simile ad un "piatto di spaghetti" che ad una struttura chiara ed ordinata. In altre parole otteniamo codice disordinato, confuso, illeggibile, impossibile da documentare e riutilizzare.

Purtroppo la mancanza di "stile" è il peggior nemico per un codice di qualità. Ogni operazione sul codice dovrebbe prevedere un'adeguata fase di pianificazione, cercando di rispettare quelle che sono le basi della programmazione OO, ed attenersi, sempre, ad un chiaro e corretto "stile".

Cause

Le cause alla base di questo antipattern sono:

  • Assenza di una corretta pianificazione prima dell'implementazione
  • Mancanza di adeguate conoscenze dell'Object-Oriented
  • Assenza di un efficace revisione del codice
  • Mancanza o scarsa comunicazione tra gli sviluppatori
  • Improvvisare "interventi" pensando di risparmiare tempo

Sintomi

Gli elementi che permettono d'individuare questo antipattern sono:

  • Metodi orientati ai processi
  • Presenza di metodi lunghi e senza parametri
  • Uso di variabili globali
  • Uso del GO TO
  • Le iterazioni tra gli oggetti sono minime
  • Nessun ricorso al polimorfismo ed ereditarietà

Conseguenze

Le conseguenze di tale antipattern sono:

  • Sviluppo di un sistema difficile da mantenere ed estendere
  • Difficile e in alcuni casi impossibile il riuso del codice
  • Classi difficili da comprendere e testare
  • Difficile produrre un'adeguata documentazione
  • Difficile apportare ulteriori modifiche e integrazioni
  • In casi estremi si arriva a dover implementare nuovamente la classe

Soluzione

Per evitare d'incorrere in questo antipattern si possono adottare degli accorgimenti:

  • Analizzare accuratamente la documentazione disponibile
  • Raggruppare il codice prodotto in partizioni di facile comprensione
  • Eliminare tutte quelle porzioni di codice inaccessibili
  • Convertire frammenti di codice in più opportuni metodi
  • Ogni porzione di codice deve possedere un'adeguata e rigorosa progettazione Object-Oriented

Ti consigliamo anche