Liskov Substitution Principle

Parlare dei principi S.O.L.I.D. significa parlare del modo corretto di sviluppare software.
Iniziamo da uno dei più importanti e più discussi principi.
Esattamente quello che sta nel mezzo.

Cosa significa SOLID ?

Riprendendo fedelmente quanto presente anche su Wikipedia possiamo dire che i concetti SOLID sono:

  1. Il Principio della Singola Responsabilità:
    “Non ci dovrebbe mai essere più di una ragione per cambiare una classe”.
  2. Il Principio Aperto-Chiuso:
    “Le entità software … dovrebbero essere aperte per l’estensione, ma chiuse per la modifica
  3. Il Principio di Sostituzione di Liskov:
    “Le funzioni che utilizzano puntatori o riferimenti a classi base devono essere in grado di utilizzare oggetti di classi senza saperlo”.
  4. Il principio di Segregazione dell’Interfaccia:
    “Molte interfacce specifiche sono migliori di un’interfaccia generica.”
  5. Il principio di Inversione delle Dipendenze:
    “Dipendere dalle astrazioni, non dalle classi concrete”.

L’acronimo SOLID è stato introdotto più tardi, intorno al 2004, da Michael Feathers.
Sebbene i principi SOLID si applichino a qualsiasi progettazione orientata agli oggetti, possono anche formare una filosofia fondamentale per metodologie come lo sviluppo agile o lo sviluppo di software adattivo.[3]

Cos’è il Liskov Substitution Principle e perché è importante?

Riprendo la definizione da Wikipedia:
“La sostituibilità è un principio dell’informatica che asserisce che, se S è un sottotipo di T, allora oggetti dichiarati di tipo T in un programma possono essere sostituiti con oggetti di tipo S (detto in forma equivalente, oggetti di tipo S possono essere “sostituti” per oggetti di tipo T), senza modificare alcuna delle funzionalità richieste al programma (correttezza dei risultati prodotti, compiti svolti, ecc)”

È senza ombra di dubbio un principio che approccia l’estendibilità e la sostituibilità, mantenendo un forte legame con i principi cardine del “buon programmare”.
Programmare in modo corretto significa, prima di tutto, garantire che il codice sia manutenibile e non aggiunga instabilità generali.

Barbara Liskov, colei che ha enunciato per prima il principio, ha ammesso che ci sono limiti che a volte possono essere superati se c’è una reale coscienza di cosa si sta facendo.

In un’intervista nel 2016, la stessa Liskov spiega che ciò che ha presentato nel suo discorso era una “regola informale”, successivamente Jeannette Wing ha portato alla pubblicazione congiunta definendo il principio come una “sottotipizzazione comportamentale”.
Durante l’intervista la Liskov, non usa la terminologia di sostituzione per discutere i concetti, questo a dimostrazione che il principio si presta a revisioni ed estensioni oltre alla semplice sostituibilità.

Personalmente ritengo il Liskov Substitution Principle un ottimo principio per imparare a lavorare correttamente in un gruppo di sviluppo.
Grazie a principi come il Liskov Substitution Principle è sempre possibile garantire la stabilità del codice nel tempo.
Allo stesso tempo le giovani risorse cresceranno con basi solide e facilmente riproducibili.

La video lezione

Per capire a fondo il Liskov e la sua importanza secondo me è necessario sporcarsi le mani con il codice.

Ho creato una breve introduzione SOLID – Liskov – Italiano – YouTube
facente parte di in una nuova serie di video denominata “La Programmazione in 3 minuti“.

L’idea alla base di questa serie di video è di esporre ogni concetto con al massimo 3 minuti di presentazione video.
Spero sia utile a quante più persone vogliono approcciare una programmazione più strutturata.

Tutto il codice sorgente è disponibile su GitHub:
https://github.com/nbiada/solid-ita

Buona visione

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.