OOP

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

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

  • I Design Pattern

    _Logo I Design Pattern sono una soluzione progettuale a problemi comuni che si ripetono continuamente. Essi non definiscono una specifica implementazione ad un problema ma offrono le linee guida per delineare, capire ed affrontare il problema. Si parla di soluzione ben documentata ed espressa con un linguaggio ben definito. Continua a leggere...