Teoria

  • Le basi dell’OOP e i vasi di Pandora

    _Logo Alle volte ci si ritrova a perdere molto tempo per implementare una funzionalità all’apparenza banale ma che se inserita in un codice privo di architettura può provocare diversi mal di pancia. È come aprire un vaso di Pandora: tutto e il contrario di tutto rendono ogni modifica instabile come quelle che l’hanno preceduta. Continua a leggere...

  • Elogio al TDD

    _Logo Il TDD è una pratica molto affascinate perché permette agli sviluppatori, propensi più a scrivere codice che a valutarne gli effetti, di fare quello che preferiscono: scrivere codice, appunto. Il TDD coinvolge tanti concetti in un unico e continuo processo di sviluppo... Un'esplosione di creatività, insomma. Continua a leggere...

  • Abstract Factory Pattern

    _Logo Un importante pattern introdotto dalla Gang of Four per affrontare il problema della creazione degli oggetti è l’Abstract Factory Pattern. Il problema obbliga un client a conoscere a priori le classi che andrà a creare limitando l'estendibilità e creando un accoppiamento forte tra classi, soprattutto quando si parla di famiglie di oggetti. Continua a leggere...

  • Facade Pattern

    _Logo E' forse il pattern più comune tanto che il suo utilizzo passa inosservato. Riguarda la semplificazione di un insieme di interfacce, chiamato subsystem, tramite un’unica interfaccia. Sostanzialmente parliamo di definire un wrapper affinché l'utilizzo di un codice sia semplice ed immediato. Lo scopo è nascondere la complessità. Continua a leggere...

  • 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...

  • Base or not Base?

    _Logo Una classica convenzione che ho utilizzato negli anni riguarda il prefisso Base per le classi astratte. In realtà non è una buona pratica ed infatti per i nuovi progetti non la utilizzo più, in linea col principio che un tipo rappresenta un qualcosa che ha già un nome significativo: il suo ruolo. Il prefisso I resiste, ma senza solidi motivi. 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...