SOLID

  • Pochi principi, tanti vantaggi

    _Logo In questo periodo, tra le altre cose, sto lavorando al refactoring di codice molto vecchio ed è quasi imbarazzante vedere uno dopo l’altro i tipici errori descritti in letteratura come anti-qualcosa. Sarebbe un ottimo esercizio per nuovi programmatori, se non fosse necessario lavorare in fretta e a colpo sicuro. Continua a leggere...

  • DIP, Dependency Inversion Principle

    _Logo Dal punto di vista formale è apparentemente il più complesso dei principi SOLID e nello stesso tempo uno dei più utili. Si tratta di applicare una tecnica di disaccoppiamento dei moduli per gestire al meglio le dipendenze, che limitano la testabilità e la manutenibilità del codice. Continua a leggere...

  • ISP, Interface Segregation Principle

    _Logo ISP è un semplice ma importante principio che porta ad organizzare meglio il proprio codice creando piccole e specifiche interfacce. Queste permettono ai client di dipendere dal minor numero di funzionalità esposte dalle astrazione che utilizzano. E’ utile il concetto di ruolo: ogni specifica interfaccia rappresenta un ruolo. Continua a leggere...

  • LSP, The Liskov Substitution Principle

    _Logo Introdotto nel lontano 1988 da Barbara Liskov afferma che un oggetto di un certo tipo A deve poter essere sostituito da un oggetto di tipo B, quando B è un sottotipo di A. Il vincolo di tale sostituibilità è legato alla non violazione degli invarianti della classe base, quindi dei presupposti che i gli utilizzatori di tali classi si aspettano essere validi. Continua a leggere...

  • OCP, Open-Closed principle

    _Logo Il principio Open/Closed (OCP) può essere sintetizzato definendo che per estendere un'applicazione non deve essere necessario modificarne il codice. Formalmente di parla di apertura all'estensione e chiusura alle modifiche. Un principio che se seguito offre al proprio codice importanti benefeci di manutenibilità ed estendibilità. Continua a leggere...